【Word VBA】ワイルドカードを使って半角数字を赤い太文字に変換するWordマクロ

2011年7月8日

先日のPC Online での連載記事「単純作業の繰り返しこそ自動化せよ 」では、最初のページでワイルドカードを使った検索マクロを紹介いたしました。

いくつかポイントありましたね。説明しきれなかったので、この連載記事で紹介したワイルドカードのマクロのフォローをさせていただきます。

以下、連載記事に書いていない新しいマクロで説明します。

このマクロでできること

半角数字を赤文字、かつ太文字に変換するマクロです。

実用性はさておき(笑)、どうやって自分の用途にあったマクロに改造するのかをご紹介します。

数値を比較するお仕事をされている方には少しは役に立つと思いますよ。

マクロの解説

単純作業の繰り返しこそ自動化せよ 」でも書きましたが、このワイルドカードを使った変換マクロ(置換マクロではない)は、改造するポイントが2つありました。

まず、「検索する文字列」の条件を設定すること
そして、「変換方法」を設定すること

この2点です。

それぞれ色を付けましたので、下記のマクロと比較をしてみてください。

Rangeオブジェクトをつかって、文字列を指定しております。このあたりは、意味を理解しなくていっこうにかまいません。

意味を理解して改造するのは赤文字と青文字の部分だけです。

さて、赤文字で指定した処理では、ワイルドカードを使っています。

今回の検索対象は、「半角数字」です。

この半角数字を1文字指定する場合には、[0-9]または[0-9]{1}です。

半角数字を任意の桁数(1以上の文字数)で指定する場合には、[0-9]{1,}です。

これは公式みたいなものなので、紙に書いてパソコンの隣に置いておくことができます。

実際には、コピペをして使うのが一番楽なので、紙に書くよりはパソコン上でメモ書きにしておく方がいいですね。

さらには、ATOKやIMEの辞書に登録すると便利ですね。

思い出したり、考え出したりする必要はありません。

いろいろなパターンを知りたい方は、名古屋の第4回勉強会で配布した資料 に掲載してありますので、ご覧ください。

あと、7月31日(日)に開催される第4回ワードマクロ勉強会 in 大阪 で、もっと詳しく使い方をご説明しますので、ご参加ください。

青文字で指定した処理で文字を赤くして、太字に設定しております。

下線を引いたり、斜体にしたり、それぞれを組み合わせたりできます。

この書き方は、VBE のヘルプを見たり、ポップアップで候補を出しながら自分で探してみるのです。慣れてくると、案外簡単に欲しい書式変換が見つかりますよ。

このあたりの方法は、勉強会でじっくり体験しながら学んでいただくところです。文章で書くのは難しいので省いてしまってすみません。

マクロ


Sub 半角数字を赤太文字に一括変換()
  Dim myRange As Range
  Set myRange = ActiveDocument.Range(0, 0)
  With myRange.Find
    .Text = "[0-9]{1,}"
    .MatchWildcards = True
    Do While .Execute = True
      myRange.Font.ColorIndex = wdRed
      myRange.Font.Bold = True
      myRange.Collapse wdCollapseEnd
    Loop
  End With
  Set myRange = Nothing
End Sub

-コード
-