【ワードマクロ】文字色を一括で変更:4つの使用例を紹介するよ

ワードマクロ文字色を変更するアイキャッチ ワードマクロで効率化する

ワードマクロで、文字色を変更する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」をクリックします。

 

文字によって色分け

以下のWordVBAを実行すると、
ダイヤログボックスに入力したキーワードによって、文字色を色分けします。


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ファイル内の複数ページについて、一括処理が可能です。


 
この記事がお役に立ちますと幸いです。
 

【ワードマクロ】特定の文字を蛍光ペンで着色する超具体的な使用例
...