ワードマクロで、文字色を変更するVBAコードをご紹介します。
このページのマクロコードは、コピペで使えます。
ぜひお試しください😉
1つの特定文字の文字色を変更
以下のWordVBAを実行すると、指定したキーワードの文字色を変更します。
Sub 文字色を変更1()
Dim Target As String
'文書の先頭を選択
ActiveDocument.Range(0, 0).Select
'対象文字列を変数に格納
Target = "会員"
'文字色を変更
With Selection.Find
.Text = Target
.Replacement.Text = ""
.Replacement.Font.Color = wdColorRed
.Forward = True
.Wrap = wdFindStop
.MatchCase = True
.Execute Replace:=wdReplaceAll
End With
End Sub
マクロ実行前
マクロ実行後
「会員」という文字の色を、赤文字に変更しました。
VBAコードの解説
[Target]は、
文字色を変更したいキーワードを入力します。
[.Replacement.Font.Color = wdColorRed]は、
[Target] に入力したキーワードの文字色を「赤」に指定します。
複数の特定文字の文字色を変更
以下のWordVBAを実行すると、指定したキーワードの文字色を変更します。
Sub 文字色を変更2()
Dim Target(3) As String
Dim i As Long
'文書の先頭を選択
ActiveDocument.Range(0, 0).Select
'対象文字列を変数に格納
Target(1) = "会員"
Target(2) = "一般"
Target(3) = "ゴールド"
'文字色を変更
For i = 1 To 3
With Selection.Find
.Text = Target(i)
.Replacement.Text = ""
.Replacement.Font.Color = wdColorBlue
.Forward = True
.Wrap = wdFindStop
.MatchCase = True
.Execute Replace:=wdReplaceAll
End With
Next i
Erase Target
End Sub
マクロ実行前
マクロ実行後
「会員」、「一般」、「ゴールド」の文字列の色を、青文字に変更しました。
ダイヤログボックスで文字を指定
以下のWordVBAを実行すると、ダイヤログボックスに入力したキーワードの文字色を変更します。
Sub 文字色を変更2()
Dim GetKW As String
Dim InputKW As String
'文書の先頭を選択
ActiveDocument.Range(0, 0).Select
InputKW = "文字を入力してください"
'ダイヤログボックスに対象文字を入力
GetKW = InputBox(InputKW)
If GetKW = "" Then
Exit Sub
Else
'文字色を変更
With Selection.Find
.Text = GetKW
.Replacement.Text = ""
.Replacement.Font.Color = wdColorRed
.Forward = True
.Wrap = wdFindStop
.MatchCase = True
.Execute Replace:=wdReplaceAll
End With
End If
End Sub
マクロ実行前
マクロ実行後
ダイヤログボックスに入力した「ゴールド」という文字の色を、赤文字に変更しました。
VBAコードの解説
[GetKW = InputBox(InputKW)]では、
下図のようにダイヤログボックスが表示されるので、
文字色を変更したいキーワードを手入力し、「OK」をクリックします。
文字によって色分け
ダイヤログボックスに入力したキーワードによって、文字色を色分けします。
Sub 文字色を変更3()
Dim GetKW As String
Dim InputKW As String
'文書の先頭を選択
ActiveDocument.Range(0, 0).Select
InputKW = "文字を入力してください"
'ダイヤログボックスに対象文字を入力
GetKW = InputBox(InputKW)
If GetKW = "" Then
Exit Sub
Else
'文字色を変更
With Selection.Find
Select Case GetKW
Case "ゴールド"
'文字色を赤色に指定
.Replacement.Font.Color = wdColorRed
Case "プラチナ"
'文字色を青色に指定
.Replacement.Font.Color = wdColorBlue
Case Else
'文字色を緑色に指定
.Replacement.Font.Color = wdColorGreen
End Select
.Text = GetKW
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.MatchCase = True
.Execute Replace:=wdReplaceAll
End With
End If
End Sub
マクロ実行前
マクロ実行後
ダイヤログボックスに入力した「ゴールド」「プラチナ」「一般」という文字の色を、
それぞれ指定した色に変更しました。
VBAコードの解説
[Select Case]にて、複数の条件分岐を設定します。
[Case “ゴールド”]は、ダイヤログボックスに入力した文字が「ゴールド」の場合、
「ゴールド」の文字色を赤文字に変更します。
[Case “プラチナ”]は、ダイヤログボックスに入力した文字が「プラチナ」の場合、
「プラチナ」の文字色を青文字に変更します。
[Case Else]は、ダイヤログボックスに入力した文字が「ゴールド」、「プラチナ」以外の場合、
文字色を緑文字に変更します。
文字によって色分け(複数文字)
以下のWordVBAを実行すると、キーワードによって文字色を色分けします。
Sub 文字色を変更4()
Dim Target(3) As Variant
Dim i As Long
Dim j As Long
'文書の先頭を選択
ActiveDocument.Range(0, 0).Select
'対象文字を格納
Target(1) = Array("りんご", "いちご", "さくらんぼ", "いちじく")
Target(2) = Array("ぶどう", "きうい", "めろん")
Target(3) = Array("ばなな", "ぱぱいや")
For j = 1 To 3
For i = 0 To UBound(Target(j))
'文字色を変更
With Selection.Find
Select Case j
Case 1
'文字色を赤色に指定
.Replacement.Font.Color = wdColorRed
Case 2
'文字色を緑色に指定
.Replacement.Font.Color = wdColorGreen
Case 3
'文字色を青色に指定
.Replacement.Font.Color = wdColorBlue
End Select
.Text = Target(j)(i)
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.MatchCase = True
.Execute Replace:=wdReplaceAll
End With
Next i
Next j
End Sub
マクロ実行前
マクロ実行後
以下のように文字を色分けします。
・Target(1) → 赤文字
・Target(2) → 緑文字
・Target(3) → 青文字
[Array] で指定する文字の個数は、増減しても上記コードで処理可能です。
1ファイル内の複数ページについて、一括処理が可能です。
この記事がお役に立ちますと幸いです。
「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説