【Word VBA】選択範囲を好きな蛍光ペン色で着色するWordマクロ

2012年10月5日

前回のマクロ(【コード】選択範囲を蛍光ペンで着色するWordマクロ)に少し工夫をしてみました。

蛍光ペンの色をいろいろ用意するとボタンが増えるので、簡単に複数の色を呼び出せるようにしてみました。

このマクロでできること

選択されている部分を蛍光ペンで着色します。

実行すると、以下のようなダイアログボックスが表示されます。

ここで色に対応する数字を入力して実行すると、選択されている部分が着色されます。

マクロの解説

Do-Loopステートメント(20行目~23行目)で、数字が入力されるまでインプットボックスを表示し続けています。

ひらがなやアルファベットを入力しないようにする制御例です。

ここでは半角数字でも全角数字でもどちらでも入力してかまいません。

Select Caseステートメント(26行目~45行目)にて、入力された数字に対応する蛍光ペンの色を設定しています。

マクロ


Sub 蛍光ペンで着色_色を選択できる()

 Dim myColor As String
 Dim myColorIndex As String
 Dim myMessage As String
 
 'インプットボックスで表示するメッセージ
 myMessage = "蛍光ペンの色を選んでください。" & vbCr & vbCr & _
       "1:黄色" & vbCr & _
       "2:明るい緑" & vbCr & _
       "3:水色" & vbCr & _
       "4:ピンク" & vbCr & _
       "5:赤色" & vbCr & _
       "6:25%灰色" & vbCr & _
       "7:50%灰色" & vbCr & _
       "8:選択中の色" & vbCr & _
       "9:蛍光ペンなし" & vbCr
 
 '数字を入力するまで実行
 Do
  myColor = InputBox(myMessage, "選択範囲を蛍光着色します!", 1)
  If myColor = vbNullString Then End
 Loop While IsNumeric(myColor) = False
 
 '選択した色を設定
 Select Case CInt(myColor)
  Case 1
   myColorIndex = wdYellow
  Case 2
   myColorIndex = wdBrightGreen
  Case 3
   myColorIndex = wdTurquoise
  Case 4
   myColorIndex = wdPink
  Case 5
   myColorIndex = wdRed
  Case 6
   myColorIndex = wdGray25
  Case 7
   myColorIndex = wdGray50
  Case 8
   myColorIndex = wdNoHighlight
  Case 9
   myColorIndex = Options.DefaultHighlightColorIndex
 End Select
 
 '選択範囲を蛍光ペンで着色
 Selection.Range.HighlightColorIndex = myColorIndex

End Sub

-コード
-,