Excelのフォント一覧をVBAで取得して設定【ExcelVBA】
CommandBarsプロパティでリボンの各機能を参照し一覧を出す
そしてその後その中からFormatting(フォント等の機能があるコマンドバーの箇所)を指定し
そのControlsの中からフォントを探すためにCaptionプロパティでラベルテキストを取得する
ラベルテキストを取得したところControls(1)がフォントだった為
CommandBars(14).Controls(1)がコマンドバーのフォントの箇所でありそのリストをListプロパティで取得する
CommandBars(14).Controls(1).ListCountでリストの数を取得しその数分繰り返して順番にセルの値に入れる形で実践
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
実際に使用したサンプルコード
例① コマンドバーの名前を順番にセルに入れていく
Public Sub samp()
Dim x As Long
For x = 1 To Application.CommandBars.Count
Cells(x, 1).Value = Application.CommandBars(x).Name
Next
End Sub
例② コントロールを順番に指定しながらラベルテキストを取得
Dim x As Long
For x = 1 To Application.CommandBars(14).Controls.Count
Cells(x, 2).Value = Application.CommandBars(14).Controls(x).Caption
Next
例③ コントロールを順番に指定しながら表示されるテキストを取得
Dim x As Long
x = 1
For x = 1 To Application.CommandBars(14).Controls(1).ListCount
Cells(x, 3).Value = Application.CommandBars(14).Controls(1).List(x)
Next
例④ フォントの名前を取得してそのセルに設定する
Dim i As Long
For i = 1 To 277
Cells(i, 3).Font.Name = Cells(i, 3).Value
Next
例⑤ コマンドバーの名前("Formatting")で指定してフォントの一覧を取得する
Dim x As Long
x = 1
For x = 1 To Application.CommandBars("Formatting").Controls(1).ListCount
Cells(x, 3).Value = Application.CommandBars(”Formatting”).Controls(1).List(x)
Next