ワードマクロで、表のフォントサイズを変更するVBAコードをご紹介します。
このページのマクロコードは、コピペで使えます。
ぜひお試しください😉
全ての表のフォントサイズ変更
以下のWordVBAを実行すると、すべての表のフォントサイズを「10pt」に設定します。
Sub 表のフォントサイズを変更1()
Dim i As Long
Dim TblCnt As Long
'ファイル内にある表をカウント
TblCnt = ActiveDocument.Tables.Count
'全ての表をループ
For i = 1 To TblCnt
With ActiveDocument.Tables(i)
'フォントサイズを「10pt」に設定
.Range.Font.Size = 10
End With
Next i
End Sub
マクロ実行前
フォントサイズ:13pt
マクロ実行後
フォントサイズ:10pt
ファイル内にあるすべての表のフォントサイズを「10pt」に変更します。
VBAコードの解説
[TblCnt = ActiveDocument.Tables.Count]は、
表の総数を取得し、[TblCnt]に格納します。
(例)ワードファイル内に表が10個ある場合、[TblCnt]に「10」を格納します。
[For i = 1 To TblCnt]~[Next i]は、
ワードファイル内にある表の総数分ループします。
(例)ワードファイル内に表が10個ある場合、「10」回ループします。
[ActiveDocument.Tables(i)]は、
ワードファイル内の上から何個目にある表なのかを示します。
(例)「i=1」の時は、ワードファイル内の1番上にある表を示します。
[.Range.Font.Size = 10]は、
処理対象の表内の文字列について、フォントサイズを「10pt」に設定します。
(例)「i=1」の時は、ワードファイル内の1番上にある表内のフォントサイズを全て「10pt」に設定します。
特定の表のフォントサイズ変更
以下のWordVBAを実行すると、1番上にある表のフォントサイズを「12pt」に設定します。
Sub 表のフォントサイズを変更2()
Dim i As Long
Dim TblCnt As Long
'ファイル内にある表をカウント
TblCnt = ActiveDocument.Tables.Count
'全ての表をループ
For i = 1 To TblCnt
If i = 1 Then
With ActiveDocument.Tables(i)
'フォントサイズを「12pt」に設定
.Range.Font.Size = 12
End With
Else
Exit Sub
End If
Next i
End Sub
マクロ実行前
フォントサイズ:15pt
マクロ実行後
フォントサイズ:12pt
ワードファイルの1番上にある表のフォントサイズのみ「12pt」変更され、
それ以外の表についてはフォントサイズは「15pt」のまま変更されません。
VBAコードの解説
[For~Next]の中に[If i = 1 Then] を入れることで、
「ワードファイル内にある1番上にある表」を指定することできます。
「i=1」以外の場合は、[Else]に進み[Exit Sub]によりサブプロシージャを終了します。
表の特定の列のフォントサイズ変更
以下のWordVBAを実行すると、全ての表の1列目のフォントサイズを「15.5pt」に設定します。
Sub 表のフォントサイズを変更3()
Dim i As Long
Dim Q As Long
Dim Tbl_Cnt As Long
Dim Tbl_Row_Cnt
'ファイル内にある表をカウント
Tbl_Cnt = ActiveDocument.Tables.Count
For i = 1 To Tbl_Cnt
'表の行数をカウント
Tbl_Row_Cnt = ActiveDocument.Tables.Item(i).Rows.Count
For Q = 1 To Tbl_Row_Cnt
With ActiveDocument.Tables(i)
'フォントサイズを「15.5pt」に設定
.Columns(1).Cells(Q).Range.Font.Size = 15.5
End With
Next Q
Next i
End Sub
マクロ実行前
表の1列目のフォントサイズ:12pt
マクロ実行後
表の1列目のフォントサイズ:15.5pt
ワードファイルにある表の1列目のフォントサイズのみ「15.5pt」変更され、
それ以外の表の列についてはフォントサイズは「12pt」のまま変更されません。
VBAコードの解説
[Tbl_Row_Cnt = ActiveDocument.Tables.Item(i).Rows.Count]は、
処理対象の表の行数をカウントし、[Tbl_Row_Cnt]に格納します。
(例)「i=1」の場合、ワードファイル内の1番上にある表の行数をカウントし、
その数値を[Tbl_Row_Cnt]に格納します。
[For Q = 1 To Tbl_Row_Cnt]~[Next Q]は、
処理対象の表の行数分をループします。
[.Columns(1).Cells(Q).Range.Font.Size = 15.5]は、
[Q]=1の場合、処理対象の表について「1列目・1行目」のセルのフォントサイズを
「15.5pt」に設定します。
[Q]=2の場合、処理対象の表について「1列目・2行目」のセルのフォントサイズを
「15.5pt」に設定します。
対象の表について行数分ループした後は、次の表へ処理が移ります。
この記事がお役に立ちますと幸いです🍀
・【ワードマクロ】表の処理を自動化の使用例まとめ
「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説