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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です