コマンドバーのコントロールを指定して実行
コマンドバーに配置されたコントロールはExecuteメソッドで実行可能です。
マクロの機能として用意されているものをExecuteメソッドで実行する意味は
ありませんが、対応する機能がVBAのメソッドなどで公開されていない場合、
あるいはどうしても対応するVBAのコマンドが分からない場合、などがありま
す。

サンプルではシート上の空白セルを選択して”標準”コマンドバーのオートSum
を実行します。(例えば数値データが入力されたシートがあり、数行おきの空白
に一括でワークシートSum関数を入力して集計を行いたいとき・・・)

    Sub ExecuteControl()

        Dim C As CommandBarControl
        Dim Rng As Range

        Set C = CommandBars("Standard").Controls("オート SUM(&A)")
        '97では”オート”は半角
        Set Rng = ActiveSheet.UsedRange

        Union( _
            Rng.SpecialCells(xlCellTypeBlanks), _
            Rng.Offset(Rng.Rows.Count).Resize(1) _
            ).Select
            '※最下行の一行下を選択するためUnionを使用

        C.Execute

    End Sub

また、コントロールのIDが分かっている場合にはFindControlメソッドを使用するこ
とも出来ます。次のサンプルでは新規作成(ID=18)を実行します。

    Sub ExecControl()

        Dim Ctrl As CommandBarControl
        Set Ctrl = CommandBars.FindControl(ID:=18)
        Ctrl.Execute

    End Sub

※(参考)
テクニック集:コマンドバー機能一覧を作成する
テクニック集:Visual Basic Editor コマンドバー機能一覧
テクニック集:メニューバーへのコントロール追加と処理の分岐
テクニック集:ワークシートメニューバーの機能一覧
テクニック集:特定のコントロールを指定してIDを調べるには

Excel97,2000



戻る


Excel Word Access VBA! モーグ