【VBA】エクセルで使用できるフォントの一覧を取得する

Excelで資料を作成することは
多々あります!

資料の作成には
 ・フォント選びが大切
です!

しかしExcelで使用可能なフォントは
パッとは分かりません…。

そこでこの記事では
 ・VBAで
 ・エクセルで使用できるフォントの一覧を取得
する方法を記載します!

フォントの一覧を取得して
Excelで使用できるフォントを
把握しましょう!
※なおエクセルで使用できるフォントは275種類です(2021/4/30時点)。

PR

VBAコード

ここでは例として、
 ・エクセルで使用できるフォントの一覧を
 ・シート「sample」へ出力
します。

Option Explicit

Sub sample()
    
    '出力する開始行を指定
    Const START_ROW As Long = 2
    
    Dim tempBar As CommandBar
    Dim fontList As CommandBarControl
    Dim sheet As Worksheet
    Dim i As Long
    Dim row As Long
    Dim fontName As String
    
    'フォント一覧を取得
    Set tempBar = Application.CommandBars.Add
    Set fontList = tempBar.Controls.Add(ID:=1728)
    
    'シートを指定
    Set sheet = Worksheets("sample")
    
    row = START_ROW
    
    'フォントの数だけ繰り返し
    For i = 1 To fontList.ListCount - 1
        'フォント名を取得
        fontName = fontList.List(i)
        'フォント名をセルに設定
        sheet.Cells(row, 2) = fontName
        'セルにフォントを指定
        sheet.Cells(row, 2).Font.Name = fontName
        '出力する行をインクリメント
        row = row + 1
    Next
    
    '後片付け
    fontList.Delete
    tempBar.Delete
    Set fontList = Nothing
    Set tempBar = Nothing

End Sub

「Applicationオブジェクト」の「CommandBars」プロパティにより、「CommandBarsオブジェクト」を取得します(16行目)。

「CommandBarsオブジェクト」の「Add」メソッドにより、「CommandBarオブジェクト」を取得します(16行目)。

「CommandBarオブジェクト」の「Controls」プロパティにより、「CommandBarControlsオブジェクト」を取得します(17行目)。

「CommandBarControlsオブジェクト」の「Add」メソッドに「ID:=1728」を指定することで、「フォント一覧のコレクション」を取得できます(17行目)。

取得した「フォント一覧のコレクション」を使用して、繰り返し処理により「エクセルで使用できるフォント」を出力しています(25~34行目)。

PR

実行結果

エクセルで使用できるフォントの一覧を取得できました。

実行結果①
実行結果①
実行結果②
実行結果②
PR

参考

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●「Applicationオブジェクト」の「CommandBars」プロパティ


●「CommandBarsオブジェクト」の「Add」メソッド


●「CommandBarオブジェクト」の「Controls」プロパティ


●「CommandBarControlsオブジェクト」の「Add」メソッド


●「CommandBarControl」の「Delete」メソッド


●「CommandBarオブジェクト」の「Delete」メソッド

タイトルとURLをコピーしました