- 締切済み
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
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- enunokokoro
- ベストアンサー率74% (3543/4732)
こちら↓と同じ質問ですよね? http://okwave.jp/qa/q5875212.html 内容的にはほとんど変更していないみたいですが。 私はWordのマクロについて解説できるほどのスキルがないので、 基本的には回答しないようにしています。 特にWord2007以降については検証できないので、回答するのは サイト上に情報があり、確証があるものだけにしています。 今回のことも Wendy02 さんの回答があるので、その回答内容を 最大限尊重したいと思っています。 今回、私なりに解る範囲でアドバイスします。 Sub SelectedFontChangedMSMincho10_5TimesNewRoman12() Dim myRng As Range '選択部分以後を対象 With ActiveDocument Set myRng = .Range(Selection.Range.Start, .Range.End) End With 'フォントを統一 With myRng.Font .NameFarEast = "MS 明朝" .NameAscii = "Times New Roman" .NameOther = "Times New Roman" .Size = 10.5 End With '半角文字を検索してフォントサイズを指定 With myRng.Find .Text = "[^32-~]{1,}" '範囲は? .Forward = True .MatchWildcards = True With myRng Do While .Find.Execute = True myRng.Font.Size = 12 .SetRange .End, .End Loop End With End With End Sub 上記のマクロはWindowXPのWord2002で動くことは確認しています。 必要ない部分をカットしていますので、必要に応じ検索条件など 追加してください。 これで動かないのなら、[検索]の[ワイルドカード]部分が正しく なっているか確認するために、一般機能としての検索で検索範囲 を指定して、[見つかったすべてのその項目を強調表示する]への チェックを付けて[すべて検索]します。結果を確認してフォント のサイズを12ptにすることでマクロと同じ結果になります。 一般機能で問題があれば、マクロでも動作しないと思います。 マクロよりも先に一般機能の検索や置換を試してみてください。 一般機能で問題がなければ、以下のことを試してみてください。 私が紹介したマクロの「'フォントを統一」部分だけを実行して、 正しく変更されるのかを確認します。そこが正しく動作していて 検索内容を「'半角文字を検索してフォントサイズを指定」をする 部分以降を実行して正しく動くか確認します。 実行する範囲を限定することで、どこが問題なのか確認できます。 Word2007で動かい部分に変更があるのかは、私は検証できません。 ですのでWord2007の仕様変更部分があると、動作しない場合かも。 http://msdn.microsoft.com/en-us/library/bb257590(v=office.12).aspx なお、個人教授があるのかどうかは私は知りません。 講習会も、私が知る範囲ではこちら↓の方が行っています。 http://ameblo.jp/gidgeerock/entry-10832022443.html ただし、新規の参加は難しいようです。 私は参加したことがないので、内容についてはサイト情報だけで 知るだけですので、質問者個人で調べてみてください。 サイト上では書籍や関連情報などが紹介されていますので、今後 勉強するうえで参考になると思います。
補足
enunokokoro 様 有り難うございました。 はい、約一年前のものと本質的には同じ質問/依頼です。前回は問題を解決できませんでした。回答が悪いのではなく、私の知識不足が問題であると思います。対象マクロは自分で書いたのではなく、インターネットで提供されたものを継ぎ合わせたのです。VisualBasic の知識がない男が、手探りでやったのです。 今回も enunokokoro 様が書いて下さったので、恐縮しております。これをどのようにワードに記憶できるか、頑張ってみますが、あまり自信がないのです。仕事の合間にやりますので、日にちが掛かるでしょう。 私としては、デッバッグを押して、黄色い行が出たので、この行を修正すれば、うまく行くかなと考えていたのです。 以上中間報告とお礼です。