ドキュメントフォントリストの作成(Microsoft Word)
Wordでは、使用しているシステムにインストールされているフォントを使用できます。フォントはWindows内にインストールされるため、Wordだけでなく、システムにインストールされているすべてのプログラムで使用できます。
システムでドキュメントを作成するとき、使用されているフォントを簡単に知ることができます。フォントのリストは、システムで使用可能なフォントに限定されています。ただし、別の人からドキュメントを受け取った場合、他の人のシステムにインストールされているフォントがあなたとは異なる場合があります。つまり、Word文書は、システムにないフォントでフォーマットされる可能性があります。
(システムで使用可能なフォントのリストではなく)ドキュメント内で使用されるフォントのリストを生成する場合は、いくつかの選択肢があります。まず、テキストエディタでWord文書を開いて、Wordでは通常表示されない文書の部分を確認できます。ファイルの終わり近くに、ドキュメントで使用されているフォントのリストが表示されます。ただし、これを行う場合は、テキストエディタで開いているときにWord文書に変更を加えないように十分に注意する必要があります。これを行うと、ドキュメントがWordで使用できなくなる可能性があります。
Wordベースのソリューションは、ドキュメント内の各文字を調べて、文字のフォーマットに使用されているフォントを確認することです。各文字は異なるフォントでフォーマットされる可能性があり、VBAではドキュメント自体に関連するフォントコレクションにアクセスできないため、文字ごとのアプローチが必要です。そのようなコレクションは維持されていないようです。したがって、最も安全な(そして最も遅い)
方法は、各文字をステップスルーして独自のリストを作成することです。次のVBAマクロはタスクを実行します:
Public Sub ListFontsInDoc() Dim FontList(199) As String Dim FontCount As Integer Dim FontName As String Dim J As Integer, K As Integer, L As Integer Dim X As Long, Y As Long Dim FoundFont As Boolean Dim rngChar As Range Dim strFontList As String FontCount = 0 X = ActiveDocument.Characters.Count Y = 0 ' For-Next loop through every character For Each rngChar In ActiveDocument.Characters Y = Y + 1 FontName = rngChar.Font.Name StatusBar = Y & ":" & X ' check if font used for this char already in list FoundFont = False For J = 1 To FontCount If FontList(J) = FontName Then FoundFont = True Next J If Not FoundFont Then FontCount = FontCount + 1 FontList(FontCount) = FontName End If Next rngChar ' sort the list StatusBar = "Sorting Font List" For J = 1 To FontCount - 1 L = J For K = J + 1 To FontCount If FontList(L) > FontList(K) Then L = K Next K If J <> L Then FontName = FontList(J) FontList(J) = FontList(L) FontList(L) = FontName End If Next J StatusBar = "" ' put in new document Documents.Add Selection.TypeText Text:="There are " & _ FontCount & " fonts used in the document, as follows:" Selection.TypeParagraph Selection.TypeParagraph For J = 1 To FontCount Selection.TypeText Text:=FontList(J) Selection.TypeParagraph Next J End Sub
明らかに、ドキュメントが長いほど、マクロが終了するまでの時間が長くなります。 (1,100ページのドキュメントでマクロを実行したところ、約46分かかりました。5ページのドキュメントでは1分もかかりませんでした。)完了すると、マクロは、使用されているフォントの並べ替えられたリストを含む新しいドキュメントを作成します。
注:
このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。
(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(13313)は、Microsoft Word 2007、2010、および2013に適用されます。
Wordの古いメニューインターフェイスに関するこのヒントのバージョンは、次の場所にあります:
linkドキュメントフォントリストの作成。