【ワードマクロ】表のフォントサイズを変更する:コピペで使えるマクロコード

ワードマクロで表のフォントサイズを変更するアイキャッチ ワードマクロで効率化する

ワードマクロで、表のフォントサイズを変更するVBAコードをご紹介します。

以下のような作業でお困りはありませんか?

・表のフォントサイズを一括で変えたい
・ファイルを数人で作成したら、表のフォントサイズがバラバラ・・統一したい!
・表の1列目だけ、フォントサイズを変えたい

 

このページのマクロコードは、コピペで使えます。
ぜひ、お試しください!

全ての表のフォントサイズを変更する

以下の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」に設定します。

対象の表について行数分ループした後は、次の表へ処理が移ります。

 

【ワードマクロ】表の文字列を中央揃え:時間短縮のコツを教えるよ
ワードファイル内にある「表中の文字列をセンタリングする」WordVBAコードの組み方を記載しています。図解つきで説明しています。「すべての表の文字を中央揃えにする」「全ての表の1列目のみを中央寄せにする」「全ての表の1列目のみを中央ぞろえにする」結合したCellについてもセル内で中央揃えに設定されます。