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