そのときに、Wordマクロの例として、教育現場で使われそうなマクロを考えました。
教育現場といえば、ひとまずテストだと思いまして、答案用紙を作成するマクロです。
▼このマクロでできること
答案用紙に青文字で書いた回答部分を白文字にして、回答箇所が印刷されないようにするマクロです。
青文字を白文字で一括置換するだけですが、便利かもしれません。
白文字を青文字に戻す機能もあります。
![みんなのワードマクロ](https://stat.ameba.jp/user_images/20121230/08/gidgeerock/1e/c3/p/t02200029_0680008912353522783.png?caw=800)
↑ ↓
![みんなのワードマクロ](https://stat.ameba.jp/user_images/20121230/08/gidgeerock/ae/29/p/t02200029_0682009012353522781.png?caw=800)
また、回答を記入時に文字色を青にしたり、また文字色を自動に戻すことも重要です。
それぞれキーボードに割り付ければ、回答作成という業務の流れの中にマクロを組み込めるかもしれません。
▼マクロの解説
作業フローにのっとり、4つのマクロがあります。
前半の2つは、選択範囲の文字色を変えるマクロです。
文字列が選択されていない場合には、次に入力する文字色が変わります。
後半の2つは文字の色を一括で置換するマクロです。
赤色部分で、検索する文字列と置換後の文字列の色の設定をしています
青色部分で、「検索と置換」ダイアログボックスでの文字列の色の設定を解除します。
Selection.Findオブジェクトを利用すると「検索と置換」ダイアログボックスに設定が反映されるので、その後使わない書式に対しては解除処理までしておくと便利です。
ちなみに、解除処理をしない場合には、以下のように色の設定が残ってしまいます。
![みんなのワードマクロ](https://stat.ameba.jp/user_images/20121230/08/gidgeerock/bc/a5/p/t02200084_0800030412353522782.png?caw=800)
青文字は白黒印刷では、黒文字に対して微妙に薄く印刷されますが、それほど問題にならないと思います。
画面では確認しやすいため、処理対象として他の文字列と明示的に区別する場合に便利だと思います。
▼マクロ
Sub 文字色を青()
Selection.Font.ColorIndex = wdBlue
End Sub
Sub 文字色を自動()
Selection.Font.ColorIndex = wdAuto
End Sub
Sub 青から白()
'一括置換
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = ""
.Font.ColorIndex = wdBlue
.Replacement.Text = ""
.Replacement.Font.ColorIndex = wdWhite
.Format = True
.Forward = True
.Wrap = wdFindContinue
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
.MatchByte = False
.Execute Replace:=wdReplaceAll
End With
'書式を解除
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
End With
End Sub
Sub 白から青()
'一括置換
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = ""
.Font.ColorIndex = wdWhite
.Replacement.Text = ""
.Replacement.Font.ColorIndex = wdBlue
.Format = True
.Forward = True
.Wrap = wdFindContinue
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
.MatchByte = False
.Execute Replace:=wdReplaceAll
End With
'書式を解除
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
End With
End Sub
▼関連記事
プログラミング文を登録して使う方法
Wordマクロの便利な使い方一覧(1)
Wordマクロの便利な使い方一覧(2)
Wordマクロの便利な機能一覧(1)
Wordマクロの便利な機能一覧(2)