(Wordマクロ)フォントの種類、スタイル、サイズの設定

フォントの種類、スタイル、サイズの設定をマクロで制御します。

このページで解説する項目は次の通りです。上から順番に解説します。




①フォントの種類

プロパティについて

フォントの種類を指定するには、FontNameプロパティ、NameAsciiプロパティ、NameOtherプロパティを設定します。

使用例

Public Sub フォントの種類を指定する()

With Selection.Font
    .Name = "メイリオ"
    .NameAscii = "メイリオ"
    .NameOther = "メイリオ"
End With

End Sub

Nameプロパティ

FontメソッドのNameプロパティは、日本語用のフォント種類を指定します。

Public Sub 日本語用フォントの種類を指定する()
Selection.Font.Name = "メイリオ"
End Sub

NameAscii・NameOtherプロパティ

FontメソッドのNameAsciiプロパティは、文字コード0~127(主に英数字)のフォント種類を指定します。
FontメソッドのNameOtherプロパティは、文字コード128~254(主に英数字以外の特殊文字)のフォント種類を指定します。
2つのプロパティで同じフォント種類を指定した場合は英数字用のフォントとして認識されますが、2つのプロパティで別々のフォント種類を指定した場合は英数字用のフォントが空欄で表示されます。
文字コードについては、VBScript関数リファレンスの「ASCII 文字セット」を参照してください。

<2つのプロパティで別々のフォント種類を指定した場合>

基本的にNameAsciiプロパティとNameOtherプロパティには同じフォント種類を指定することを推奨します。

Public Sub 英数字用フォントの種類を指定する()

With Selection.Font
    .NameAscii = "メイリオ"
    .NameOther = "メイリオ"
End With

End Sub

②フォントのスタイル

プロパティについて

フォントの種類によって、スタイルの表記が変わります(標準がレギュラーになっている等)が、どのような表記になっていても画面上の表示は同じものとなります。
斜体(イタリック)はItalicプロパティで、太字(ボールド)はBoldプロパティで指定します。

使用例

Public Sub フォントのスタイルを指定する()

With Selection.Font
    .Italic = True '斜体
    .bold = True '太字
End With

End Sub

Trueを指定するとそのスタイルが適用され、Falseを指定するとそのスタイルが解除されます。

補足

フォントのスタイルには、ItalicBiプロパティとBoldBiプロパティが存在します。これらは、右から左へ記述する言語に対して用いるプロパティ(アラビア語やヘブライ語など)です。

③フォントのサイズ

プロパティについて

フォントのサイズは、Sizeプロパティで指定します。フォントのサイズは0.5刻みで指定することができ、1~1638の間で指定します。1より小さい値または1638より大きい値を指定するとエラーとなりますので注意してください。

使用例

Public Sub フォントのサイズを指定する()
 Selection.Font.Size = 14
End Sub

補足

フォントのサイズには、SizeBiプロパティが存在します。これは、フォントのスタイルと同様に右から左へ記述する言語に対して用いるプロパティ(アラビア語やヘブライ語など)です。




④全体の使用例

上記で説明した書式、スタイル、サイズを組み合わせた複合例と、より実践的な応用例を紹介します。

複合例

以下の例では、選択範囲について、日本語用のフォントをメイリオ、英数字用のフォントをCenturyにし、フォントのスタイルを標準、フォントサイズを12に設定します。

Public Sub フォントの書式を指定する()
With Selection.Font
    .Name = "メイリオ"
    .NameAscii = "Century"
    .NameOther = "Century"
    .Italic = False
    .Bold = False
    .Size = 12
End With
End Sub

応用例(フォントの種類に応じてスタイルを設定する)

以下の例では、文書全体について、フォントの種類がメイリオの場合は太字に、Centuryの場合は斜体にします。

Option Explicit

Public Sub フォントの種類に応じてスタイルを設定する()

'大量の文字を処理する場合は画面描写停止処理を入れる
'Application.ScreenUpdating = False

'変数定義-------------------
Dim Position(1 To 3) As Long

'表示モードの変更-------------------
ActiveWindow.View.Type = wdPrintView

'文書の最後の位置を取得---------------------------------
With Selection
.EndKey unit:=wdStory, Extend:=False
Position(1) = .Information(wdActiveEndPageNumber) 'ページ番号
Position(2) = .Information(wdFirstCharacterLineNumber) '行
Position(3) = .Information(wdFirstCharacterColumnNumber) '列(縦)
End With

'文書の最初へ移動----------------
ActiveDocument.Range(0, 0).Select

'本処理------------------------------------------------------
Do
'1つ右の文字を拡張選択---------------------------------------
Selection.MoveRight unit:=wdCharacter, Count:=1, Extend:=True
'フォントの種類に応じて処理分岐--------------------------
With Selection.Font
    Select Case .Name
        Case "メイリオ" 'メイリオの場合、ボールドをかける
            .Italic = False
            .Bold = True
        Case "Century" 'Centuryの場合、斜体にする
            .Italic = True
            .Bold = False
    End Select
End With

With Selection
'拡張を解除し、1つ右に移動する------------
.Move unit:=wdCharacter, Count:=1

'文書の最後へ移動した場合はループ処理を抜ける---------------------------------
If _
.Information(wdActiveEndPageNumber) = Position(1) And _
.Information(wdFirstCharacterLineNumber) = Position(2) And _
.Information(wdFirstCharacterColumnNumber) = Position(3) Then Exit Do
End With
Loop


'画面描写再開----------------------
'Application.ScreenUpdating = True

MsgBox "処理が実行されました", vbInformation + vbOKOnly

End Sub

<実行結果>

おすすめ

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください