
コマンドバーからフォントの一覧を取得します。
コマンドバーの情報を取得するには、以下のように指定します。
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 Sub
オンの時は、-1、オフの時は0が返ってきます。
0 件のコメント:
コメントを投稿