コマンドバー機能一覧を作成する
 コマンドバーをVBAから操作するとき、時としてある機能が属する
コマンドバーの名前が知りたいときなどがあります。そんな時に一覧
があると役にたちます。

 サンプルでは全コマンドバーの名称及びその各種属性、及びその
コマンドバーに属する機能の一覧を作成します。

Sub GetCmdBarList()

    Dim MyCtrl As CommandBarButton
    
    For i = 1 To CommandBars.Count
    
        With CommandBars(i)
        'コマンドバーの属性をシートに書き込み
        Cells(1, i).Value = .Name
        Cells(2, i).Value = .NameLocal
        Cells(3, i).Value = .AdaptiveMenu '97はこの行をコメントアウト
        Cells(4, i).Value = .BuiltIn
        Cells(5, i).Value = .Context
        Cells(6, i).Value = .Index
        Cells(7, i).Value = .Position
        Cells(8, i).Value = .Protection
        Cells(9, i).Value = .RowIndex
        Cells(10, i).Value = .Type
        Cells(11, i).Value = .Top
        
            For x = 1 To .Controls.Count
            
                With .Controls(x)
                    '各ボタンの属性をセルに書き込み
                    Cells((x - 1) * 4 + 12 + 1, i).Value = .Caption
                    Cells((x - 1) * 4 + 12 + 2, i).Value = .ID
                    Cells((x - 1) * 4 + 12 + 3, i).Value = .Type
                    'Typeプロパティーの値により、FaceIDを取得して貼り付け
                    If .Type = msoControlButton Then
                        Set MyCtrl = CommandBars(i).Controls(x)
                        MyCtrl.CopyFace
                        Cells((x - 1) * 4 + 12 + 4, i).Select
                        ActiveSheet.Paste
                        Set MyCtrl = Nothing
                    End If
                
                End With
            Next x
        End With
    Next i

End Sub

 このサンプルにより作成された表の利用は、例えばシート上にあるワードアート
の再編集のためにテキスト編集画面を自動起動したいとすると、シート上で”
ワードアートの編集”と検索します。すると、該当のコマンドバーが見つかります
ので、オブジェクトを選択した上でExecuteメソッドで実行します。

(ワードアート選択、テキスト編集画面表示サンプル)

Private Sub CommandButton1_Click()

    Dim Cmd As CommandBar
    Set Cmd = CommandBars("WordArt")

    ActiveSheet.Shapes("ワードアート 1").Select

    Cmd.Visible = True  'VisibleにしなくてもOK
    Cmd.Controls("テキストの編集(&X)...").Execute

End Sub

※実際にはワードアートのダブルクリックで編集画面を開くことが出来ます。

Excel97,2000



戻る


Excel Word Access VBA! モーグ