
コマンドバーからフォントの一覧を取得します。
コマンドバーの情報を取得するには、以下のように指定します。
Application.CommandBars.FindControl(ID:=「取得したコントロールの番号」)
フォントのリストは、ID:1728となっています。
Option Explicit
Sub SampleCode()
Dim i As Long
With Application.CommandBars.FindControl(ID:=1728)
For i = 1 To .ListCount 'フォントの数分ループを回す
Debug.Print .List(i) 'リストの要素にアクセスする
Next
End With
End Subただし、「オブジェクトの選択」が選択されているとエラーとなってしまいます。
↑オブジェクトの選択:選択状態

エラー画面
よって、オブジェクトの状態をチェックし、
必要に応じてオフにしてから実行する必要があります。
もちろん終了したら元に戻す必要があります。
尚、「オブジェクトの選択」はID:182です。
Option Explicit
Sub SampleCode()
Dim StateSelectObjectButton As Integer
StateSelectObjectButton = Application.CommandBars.FindControl(ID:=182).State
'ボタンを実行する(オンならオフ、オフならオンになる)
If StateSelectObjectButton = -1 Then _
Application.CommandBars.FindControl(ID:=182).Execute
Dim i As Long
With Application.CommandBars.FindControl(ID:=1728)
For i = 1 To .ListCount
Debug.Print .List(i)
Next
End With
'元の状態に戻す
'ボタンを実行する(オンならオフ、オフならオンになる)
If StateSelectObjectButton = -1 Then _
Application.CommandBars.FindControl(ID:=182).Execute
End SubApplication.CommandBars.FindControl(ID:=182).Stateは、オンの時は、-1、オフの時は0が返ってきます。
0 件のコメント:
コメントを投稿