前回のマクロ(【コード】選択範囲を蛍光ペンで着色する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