エクセルユーザのOffice 2000 Developer−Comアドイン機能のコマンドバーへの登録

作成したComアドインの機能をエクセルのコマンドバーから起動するには、
コマンドバーコントロールののクリックイベントを用いることが可能です。

サンプルでは起動時に作成したComアドインをロードする設定で、起動時に
ワークシートメニューバーにメニューを追加し、WithEventsキーワードを
用いてメニューのクリックイベントを取得しています。また、エクセルの
Applicationレベルでのイベントの例として、ブックオープン時のイベントを
取得して、既存のブックが開かれたときにブック名をメッセージボックスで
確認しています。

※ Office 9.0 Object Library、Excel 9.0 Object Libraryを参照設定

Public WithEvents X As Excel.Application
Public CBar As Office.CommandBar
Public CPop As Office.CommandBarPopup
Public WithEvents Ctrl As Office.CommandBarButton

Private Sub AddinInstance_OnConnection _
    (ByVal Application As Object, _
    ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _
    ByVal AddInInst As Object, custom() As Variant)
    
    Set X = Application 'Applicationインスタンスをオブジェクト変数に格納

    'ワークシートメニューバーにメニューを登録
    Set CBar = X.CommandBars(1)
    CBar.Reset
    Set CPop = CBar.Controls.Add(msoControlPopup)
    CPop.Caption = "ComAddinのテスト"
    Set Ctrl = CPop.Controls.Add(msoControlButton)
    Ctrl.Caption = "テストメニュー"

End Sub

Private Sub AddinInstance_OnDisconnection _
    (ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, _
    custom() As Variant)

    CPop.Delete '登録したControlPopuppの削除
    CBar.Reset 'ワークシートメニューバーのリセット
    Set X = Nothing
End Sub

Private Sub Ctrl_Click(ByVal Ctrl As Office.CommandBarButton, _
    CancelDefault As Boolean)

    'コマンドバーButtonのクリックイベント
    MsgBox Ctrl.Caption & _
       "から呼び出されたコマンドバーボタンのクリックイベントです。" & vbCrLf _
       & "現在のアクティブブック名は" & X.ActiveWorkbook.Name & "ですね"

End Sub

Private Sub X_WorkbookOpen(ByVal Wb As Workbook)

    MsgBox Wb.Name & "を開きましたね"
    
End Sub


(参考)
テクニック集:エクセルユーザのOffice 2000 Developer−Comアドインの開発

Excel2000



戻る


Excel Word Access VBA! モーグ