Word VBA/マクロ 備忘録

作業効率化のため作成したマクロをバックアップ代わりにアップしていきます。

【Word VBA/マクロ】ヘッダー・フッターのフォント変更

サンプルコードでできること

ヘッダー・フッターのフォントをMSゴシック+Arialに変更します。

コードの説明

  Dim hdr As HeaderFooter, ftr As HeaderFooter

ヘッダーとフッターの変数は、As 以下が同じです。
そのため「Dim hdr_ftr As HeaderFooter」のように1つの変数で済むのですが、分かりやすいように別の変数を使用しています。

    jFont = "MS ゴシック"
    eFont = "Arial"

日本語フォントと英数字フォントを変数に格納します。

    For Each sec In ActiveDocument.Sections
        For Each hdr In sec.Headers
            '省略
        Next
        For Each ftr In sec.Footers
            '省略
        Next
    Next

For Eachを用いてセクション毎に、セクション内のヘッダー・フッターもFor Eachで一つずつフォントを変更していきます。

Sub ヘッダーとフッターのフォント変更()
    Dim jFont As String, eFont As String
    Dim sec As Section
    Dim hdr As HeaderFooter, ftr As HeaderFooter
    
    jFont = "MS ゴシック"
    eFont = "Arial"
    
    For Each sec In ActiveDocument.Sections
        For Each hdr In sec.Headers
            With hdr.Range.Font
                .NameFarEast = jFont
                .Name = eFont
            End With
        Next
        For Each ftr In sec.Footers
            With ftr.Range.Font
                .NameFarEast = jFont
                .Name = eFont
            End With
        Next
    Next
End Sub


オートシェイプを処理対象に含めるとき、次の記事の「ヘッダーフッターの図形処理の基本構文」を参照してください。
(今回の記事と違い、ヘッダーとフッターの変数は同じです)
rapoppo.hatenadiary.jp