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

エクセルには275種類のフォントが
あります!

この記事ではVBAで
 ・エクセルで使用できるフォントの一覧を取得
する方法を記載します!
※「フォントの一覧を取得したい」と思うことはほぼ無いですが。
※「こういったこともできますよ!」というご紹介です。

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オブジェクト」を取得します。

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

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

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

PR

実行結果

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

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

参考

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

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


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


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


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


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


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

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