- ベストアンサー
Windows7, MSWord2007でマクロを使用する際のエラーについて
- Windows7, MSWord2007でマクロを使用していますが、以前は正常に動作していたのに、今日はエラーが発生して停止してしまいます。他の人からいただいたマクロであり、自分では修正できません。ご協力いただけると助かります。
- マクロを使用すると、指定した文字列のパターンマッチングが正しくないというエラーメッセージが表示されます。マクロの目的は、日本語文字をMS明朝10.5ポイントに、半角アルファベットをTimes New Roman 12ポイントに統一することです。
- マクロの全文は、SelectedFontChangedMSMincho10_5TimesNewRoman12という名前で定義されています。マクロは、選択した範囲の文字列のフォントを設定するために使用されます。また、半角スペースからチルダまでの文字列を検索して、フォントサイズを12ポイントに設定する機能も備えています。
- みんなの回答 (4)
- 専門家の回答
関連するQ&A
- MSWord のマクロ修正のお願い
ワード文章中の文字フォントを自動的に統一するマクロがあります。 エラーが出て困っております。修正にご助力いただけませんか。 エクセルなどに比べ、ワードのためのマクロ解説は見当たりません。 しかし使ってみるとものすごく役立ちます。 私が使っているマクロの一つは、長い文章の中にまちまちのフォントで書かれた文字を希望のフォントに統一する物です。日本字はMS明朝大きさ10.5 、英字数字はTimes New Roman 大きさ12に直す物です。 現在連絡が取れない友人から貰ったもので、私には修正が出来ないのです。 Windows7, MSWord 2007 で使用しております。実行すると、 『実行時エラー 5560: [検索する文字列]に指定したパータン マッチングが正しくありません』という表示が出て、止まってしまいます。 WindowsXP ではうまく機能しましたし、Windows7 で動いたことも 時にはあるのです。デバッグボタンを押したところ、(部分表示ですが) With myRng.Find .ClearFormatting .Text = "[0-9A-Za-z,.\\\!\?""'/$\%\&\#\(\)\=\-\+\<\>]{1,}" '半角スペース~チルダ .Forward = True .Wrap = wdFindStop .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True .MatchFuzzy = False With .Replacement .ClearFormatting .Text = "" .Font.Size = 12 End With .Execute Replace:=wdReplaceAll End With と表示され 、下から二行目[Execute Replace:=wdReplaceAll] が黄色く色付けされました。 原因を解説できる方はおられないでしょうか。修正していただければ有り難いのです。 又、ワード用マクロの個人教授、講習会をご存じありませんか。 投稿日時 - 2011-04-01 10:26:02
- 締切済み
- その他MS Office製品
- macroコードを短縮できるでしょうか。
下記のコードで、実行できます。大部分はマクロを記憶し、同じ処理を重ねただけのものです。 目的は、ワードで選択した文字列の中から数字を削除します。 ただし、下記のような場合は削除しません。 【請求項1】、項2、ないし3、いずれか1、【0019】、第3の、 この処理を行うために、差別化しました。 まず、数字を赤字で太字にしました。 次に、上記の、削除しては具合が悪い数字については、明朝で標準に戻すようにしてから、赤字で太字の数字を削除しました。 2000文字を超えるので、途中大幅にカットしました。 以下は、コードです。 ~~~~~~~~~~~~~~~~~~~~~~~~ Private Sub 符号削除() Selection.Find.ClearFormatting Selection.Find.Font.Bold = True Selection.Find.Replacement.ClearFormatting With Selection.Range.Find .ClearFormatting .Text = "第1" .Replacement.Text = "" .Replacement.Font.Color = 1 .Replacement.Font.Bold = False .Execute Replace:=wdReplaceAll End With Selection.Find.ClearFormatting Selection.Find.Font.Bold = True Selection.Find.Replacement.ClearFormatting With Selection.Range.Find .ClearFormatting .Text = "第2" .Replacement.Text = "" .Replacement.Font.Color = 1 .Replacement.Font.Bold = False .Execute Replace:=wdReplaceAll End With Selection.Find.ClearFormatting Selection.Find.Font.Bold = True Selection.Find.Replacement.ClearFormatting With Selection.Range.Find .ClearFormatting .Text = "又は2" .Replacement.Text = "" .Replacement.Font.Color = 1 .Replacement.Font.Bold = False .Execute Replace:=wdReplaceAll End With ↓以下、20まで繰り返し Selection.Find.ClearFormatting Selection.Find.Font.Bold = True Selection.Find.Replacement.ClearFormatting With Selection.Range.Find .ClearFormatting .Text = "乃至20" .Replacement.Text = "" .Replacement.Font.Color = 1 .Replacement.Font.Bold = False .Execute Replace:=wdReplaceAll End With Selection.Find.ClearFormatting Selection.Find.Font.Bold = True Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "1" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = False End With Selection.Find.Execute Replace:=wdReplaceAll ↓以下、9,0まで繰り返し Selection.Find.ClearFormatting Selection.Find.Font.Bold = True Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "9" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Font.Bold = True Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "0" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = False End With Selection.Find.Execute Replace:=wdReplaceAll End Sub ~~同じ繰返しを短くする部分の正規表現の使い方やloopを指南していただけたら幸甚です。
- 締切済み
- オフィス系ソフト
- Wordマクロ
Wordでワイルドカードを使った置換マクロを作ったのですが、 「MatchWildcardsとMatchSoundsLike、MatchAllWordForms、MatchFuzzyは、同時にTrueに設定することはできません。」 というエラーが出てしまいます。 MatchSoundsLike、MatchAllWordForms、MatchFuzzyは、 ソースに書いてないしTrueにもしていません。 どこが悪いのでしょうか? 以下がソースファイルです、よろしくお願いいたします。 Sub substitute() ' Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "[!a-f]{1,}" .Replacement.Text = "@" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True .MatchFuzzy = False End With Selection.Find.Execute Replace:=wdReplaceAll End Sub
- ベストアンサー
- オフィス系ソフト
- ワードで選択範囲だけの改行を削除するマクロ
こんにちは いつもお世話になっています ワード2010で、選択範囲だけの部分の改行を削除するマクロを記録マクロで作ったのですが、選択部以外もすべて改行してしまいます。どこがいけないのでしょうか。あるいは、操作の仕方でしょうか。以前は使えていたと思うのですが、仕様が変わったのでしょうか。 任意の範囲を選択しておいて、記録を開始しました。 よろしくお願いします。 Sub Macro1() ' ' Macro1 Macro ' ' Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^p" .Replacement.Text = "" .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = False End With Selection.Find.Execute Replace:=wdReplaceAll End Sub ネット上で見つけた以下のマクロでもすべての改行が削除されます。 http://okwave.jp/qa/q960285.html Sub Macro14() Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^p" .Replacement.Text = " " End With Selection.Find.Execute Replace:=wdReplaceAll End Sub
- ベストアンサー
- オフィス系ソフト
- 特定の色のマーキングだけを解除するマクロ
Wordのマクロについての質問です 複数の色でマーキングしている文書があり、 特定の色のマーキングだけを解除するマクロを 作成していますが、マーキングの色の指定の仕方がわかりません。 マーキングの色の指定はどのよう(どこ)にすれば、よいのですか。 Sub マーキングなし() ' Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Highlight = False With Selection.Find .ClearFormatting .Highlight = True .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True End With Selection.Find.Execute Replace:=wdReplaceAll end sub
- ベストアンサー
- オフィス系ソフト
- Word2010特定の名前を置き換えるマクロ
例えば、Wordの文章で「田中」とあるものを「山田」に変えたい場合は、置き換えの機能を使ってマクロの記録ができると思います。 しかし、こうするとテキストボックスやヘッダフッタに記載された文字は変更できないように思います。 どうすれば、これらの文字も含めて置換の対象とすることができるか教えてください。 Sub Macro() Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "山田" .Replacement.Text = "田中" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = True End With Selection.Find.Execute Replace:=wdReplaceAll End Sub
- ベストアンサー
- Word(ワード)
- マクロを教えてください。
ワードでマクロがうまくいきません。 マクロの知識はほとんどないのですが、「マクロの記録」の機能を使い、ワードで試しています。 今回は、 「{}の括弧でかこまれた単語を探し出し、その単語を括弧ごと消去する」 というのをしたいのです。 例えば、 ------------------------------- あいうえお{事実}ということ ↓ あいうえおということ ------------------------------ にしたいのです。 自分は ---------------------------------------- -置換-で、「検索する文字列」に「{*}」 「置換後の文字列」になにも書かない で、「置換」をクリック -------------------- マクロの記録を選択した後、上のように作業しました。 そしてマクロの記録をとめました。 が、なにもおこりません。 (*はワイルドカードのつもりなのですが、間違っていますでしょうか。) なにか変な操作をしたのか、と五度くらい試したのですが、 やはり動きません。 中身は、↓のようでした。 -------------------- Sub Macro1() ' ' Macro1 Macro ' Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "{*}" .Replacement.Text = "" .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = True End With Selection.Find.Execute Replace:=wdReplaceAll End Sub -------------------- どうしてうまく動かないのでしょうか。 教えていただけるとありがたいです。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- word2007 マクロ
下記マクロは蛍光ペン部分を消して、その文字数分にアンダーラインを引くマクロになります これを改造して、赤文字を消して、その文字数分を空欄にしたいのです。 ですが、wdColorRedの入れ方が分かりません。ご教授お願いします。 Sub Problem() '蛍光ペン部分を消して、アンダーラインを引く Selection.Find.ClearFormatting Selection.Find.Highlight = True Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Highlight = False With Selection.Find.Replacement.Font .Underline = wdUnderlineSingle .StrikeThrough = False .DoubleStrikeThrough = False .Outline = False .Shadow = False .Hidden = False .AllCaps = False .Superscript = False .Subscript = False End With With Selection.Find .Text = "*" .Replacement.Text = " ^z" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchFuzzy = False .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll End Sub
- ベストアンサー
- オフィス系ソフト
- ワードでマクロがうまくいきません。
よろしくお願いします。 マクロの知識はほとんどないのですが、 「マクロの記録」の機能を使い、ワードで 「スペースを探し出し、そのスペースにアンダーラインを引く。」 ために、 -------------------- 編集ー置換ー 検索する文字列にスペースをタイプ、 置換後の文字列にスペースをタイプ、 オプションの書式で、フォント、下線、一重下線 すべて置換 -------------------- マクロの記録を選択した後、上のように作業しました。 そしてマクロの記録をとめました。 マクロの記録中の操作では、思い通りに置換されるのですが、 次にそのマクロを作動させると、なにもおこりません。 なにか変な操作をしたのか、と五度くらい試したのですが、 やはり動きません。 中身は、↓のようでした。 -------------------- Sub Macro2() ' Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = " " .Replacement.Text = " " .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = True End With Selection.Find.Execute Replace:=wdReplaceAll End Sub -------------------- どうしてうまく動かないのでしょうか。 教えていただけるとありがたいです。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- MicrosoftWordのページ指定置換マクロ
お世話になります。 MicrosoftWordの文章の中の『SYSTEMS』と単語を XXXXXXXに置換するマクロを作ってみましたが これですとWordの文章ファイルの 全てページの『SYSTEMS』とゆう単語を置換してしまいます。 Wordの文章ファイルの1ページ目だけの全ての『SYSTEMS』 とゆう単語を置換するマクロはどのようにすればよいでしょうか? Sub Macro2() ' ' Macro2 Macro ' ' Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "SYSTEMS" .Replacement.Text = "XXXXXXX" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = True End With Selection.Find.Execute Replace:=wdReplaceAll End Sub
- ベストアンサー
- Word(ワード)
お礼
有り難うございました。
補足
お返事が遅れました。いただいたご提案はうまく動作いたしました。 ただ一点、希望を申し上げれば、変換後のフォントは、MS明朝とTimes New Roman でなくては困るのです。 よろしく。