200ページほどのWord文書を編集していて、その文書内で使われているフォントの名前とフォントサイズを確認したくなりました。
以前、Scripting.Dictionaryを使ったフォント名だけを出力するマクロをご紹介しましたが、もう少しシンプルでいいように感じDictionaryオブジェクトを使わないWordマクロを作りましたのでご紹介しておきます。
使われているフォントの名前とサイズを出力するサンプルマクロ
以下のWordマクロを実行すると、アクティブ文書の本文で使われているフォント名とフォントサイズがイミディエイトウィンドウに出力されます。
Dim fon_list As String
Dim fon As String
Dim rng As Range
For Each rng In ActiveDocument.Characters
fon = rng.Font.Name & "; " & rng.Font.Size
If InStr(fon_list, fon) = 0 Then
fon_list = fon_list & fon & vbCrLf
End If
Next
Debug.Print fon_list
出力時には、フォント名とフォントサイズの間に「;」セミコロンが入りますから、最近のExcelにコピペすると、まあまあの確率でフォント名とフォントサイズが別のセルになった状態で貼り付けられるんじゃないかと思います。
サンプルマクロで行っている処理
拙著『Excel VBAユーザーのためのWord VBA入門(1): Document・Range・Selectionの基本編』の[3-6. Characters経由でRangeを取得する]で、Word文書の本文を一文字ずつ処理するFor Each~Nextループを解説しています。
そのFor Each~Nextループを使ったWordマクロです。
Dim fon_list As String Dim fon As String Dim rng As Range For Each rng In ActiveDocument.Characters fon = rng.Font.Name & "; " & rng.Font.Size If InStr(fon_list, fon) = 0 Then fon_list = fon_list & fon & vbCrLf End If Debug.Print fon_list
最初に宣言しているのは、フォントの名前とサイズを格納する変数です。
Dim fon_list As String
この変数fon_listを、最後に出力しています。
Debug.Print fon_list
For Each~Nextループ内では、まず、変数fonにフォント名とフォントサイズを代入しています。
fon = rng.Font.Name & "; " & rng.Font.Size
そのフォント名とフォントサイズが、変数fon_listに見つからなかったときにのみ、fon_listの末尾に追加しています。
If InStr(fon_list, fon) = 0 Then fon_list = fon_list & fon & vbCrLf
最終更新日時:2024-05-23 09:48
- Newer:段落罫線の設定されている段落を選択するWordマクロ
- Older:段落罫線を削除するWordマクロ
Home » ワードマクロ・Word VBAの使い方 » フォント » Word文書で使われているフォントの名前とサイズを出力するマクロ