ワードマクロで、表のセル・行・列に色をつけるVBAコードをご紹介します。
このページのマクロコードは、コピペで使えます。
ぜひお試しください😉
表の列に色付け
以下のWordVBAを実行すると、すべての表の1列目と最終列に色を塗ります。
Sub 表の特定の列に色を付ける()
Dim i As Long
Dim j As Long
Dim TblCnt As Long
Dim TblColumnCnt As Long
Dim CellCnt As Long
'ファイル内にある表をカウント
TblCnt = ActiveDocument.Tables.Count
'全ての表をループ
For i = 1 To TblCnt
With ActiveDocument.Tables(i)
TblColumnCnt = .Columns.Count
CellCnt = .Range.Cells.Count
For j = 1 To CellCnt
'表の1列目の背景色をグレーに変更
If .Range.Cells.Item(j).ColumnIndex = 1 Then
.Range.Cells.Item(j).Range.Cells. _
Shading.BackgroundPatternColorIndex = wdGray25
End If
'表の最終列の背景色を黄色に変更
If .Range.Cells.Item(j).ColumnIndex = TblColumnCnt Then
.Range.Cells.Item(j).Range.Cells. _
Shading.BackgroundPatternColorIndex = wdYellow
End If
Next j
End With
Next i
End Sub
マクロ実行前
マクロ実行後
表の1列目をグレーにして、最終列を黄色にしました。
表の行に色付け(カーソルがある行)
以下のWordVBAを実行すると、カーソルがある表の行に色を塗ります。
Sub 表の行に色を付ける()
'カーソルがある表の行を選択
Selection.SelectRow
'行に色付け(黄色)
Selection.Shading.BackgroundPatternColor = wdColorYellow
End Sub
マクロ実行後
カーソルがある表の行に色付けをしました。
表の行に色付け(任意の行)
以下のWordVBAを実行すると、任意の表の行に色を塗ります。
Sub 表の行に色を付ける()
Dim i As Long
Dim j As Long
Dim TblCnt As Long
Dim TblRowCnt As Long
Dim CellCnt As Long
'ファイル内にある表をカウント
TblCnt = ActiveDocument.Tables.Count
'全ての表をループ
For i = 1 To TblCnt
With ActiveDocument.Tables(i)
TblRowCnt = .Rows.Count
CellCnt = .Range.Cells.Count
For j = 1 To CellCnt
'1行目の背景色を青に変更
If .Range.Cells.Item(j).RowIndex = 1 Then
.Range.Cells.Item(j).Range.Cells. _
Shading.BackgroundPatternColorIndex = wdBlue
End If
'最終行の背景色をピンクに変更
If .Range.Cells.Item(j).RowIndex = TblRowCnt Then
.Range.Cells.Item(j).Range.Cells. _
Shading.BackgroundPatternColorIndex = wdPink
End If
Next j
End With
Next i
End Sub
マクロ実行前
マクロ実行後
表の1行目と最終行に色付けをしました。
・1行目は [RowIndex = 1] で指定します。
・最終行は [RowIndex = TblRowCnt] で指定します。
表のセルに色付け
以下のWordVBAを実行すると、すべての表について特定文字を含む表のセルを着色します。
Sub 特定文字を含むセルを着色()
Dim i As Long
Dim j As Long
Dim Q As Long
Dim TblCnt As Long
Dim CellCnt As Long
Dim Target(3) As String
'ファイル内にある表をカウント
TblCnt = ActiveDocument.Tables.Count
'対象文字列を配列に格納
Target(1) = "一般"
Target(2) = "ゴールド"
Target(3) = "種別"
'全ての表をループ
For i = 1 To TblCnt
With ActiveDocument.Tables(i)
CellCnt = .Range.Cells.Count
'表の全てのセルをループ
For j = 1 To CellCnt
'配列をループ
For Q = 1 To 3
'対象文字を含むセルの背景色を着色
If InStr(.Range.Cells.Item(j).Range.Cells. _
Item(1).Range.Text, Target(Q)) >= 1 Then
.Range.Cells.Item(j).Range.Cells.Item(1).Range.Cells. _
Shading.BackgroundPatternColorIndex = wdBrightGreen
End If
Next Q
Next j
End With
Next i
End Sub
マクロ実行前
マクロ実行後
配列 [Target] で指定した文字を含むセルを、緑に色付けします。
結合されているセルに対象文字が含まれている場合も、着色します。
この記事がお役に立ちますと幸いです🍀
・【ワードマクロ】表の処理を自動化の使用例まとめ
【ワードマクロ】表の処理を自動化:超便利7選
...
「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説
リンク