HOME > 即効テクニック > Excel VBA > その他関連のテクニック > エクセルユーザのOffice 2000 Developer−VBA開発支援Comアドイン

即効テクニック

その他関連のテクニック

エクセルユーザのOffice 2000 Developer−VBA開発支援Comアドイン

(Excel 2000)
Office2000 Developer ではエクセル上で動作するアプリケーションとしてのComアドインだけでなくVisual Basic Editor用のComアドインを作成することも可能です。
以下のサンプルではVBEを用いて頻繁に使用するコードをテキストファイルに保存しておいて、これをVBEのメニューから現在選択されているモジュールに挿入するアドインを作成します。

(準備)
テクニック集:”エクセルユーザのOffice 2000 Developer−Comアドインの開発”と同様の手順でプロジェクトを追加し、アドインデザイナの”アプリケーション”選択リストボックスで”Visual Basic For Applications IDE”を選択。ここでは”既定のロード方法”はNoneを指定し、ユーザが手動でVBEのメニューからアドインをロードするように指定。参照設定から”Visual Basic For Applications Extensibility”と”Office 9.0 Object Library(コマンドバー用)”を設定。
※他のオフィスアプリケーションのVBEのアドインマネージャにも表示されます。

(サンプルコード)
Private X As VBIDE.VBE
Private 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'変数XにVBEのインスタンスを格納

Call RegCBar 'コマンドバー登録プロシージャ呼び出し

End Sub

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

’VBEで現在選択中のモジュールにテキストファイルから読み込み
X.SelectedVBComponent.CodeModule.AddFromFile "C:\TEST.txt"

End Sub

Private Sub RegCBar()

Dim CPop As Office.CommandBarPopup
Set CPop = X.CommandBars(1).Controls.Add(msoControlPopup)
CPop.Caption = "開発支援"
Set Ctrl = CPop.Controls.Add(msoControlButton)
Ctrl.Caption = "雛形の挿入"

End Sub
※VBE開発支援用Comアドインの修正、再コンパイル、DLLの作成を行う時、既に作成したDLLを上書きするには現在ロードされているDLLをアンロードする必要があります。VBEのメニューから”アドイン”−”アドインマネージャ”で”ロード”のチェックをはずしてからDLLを再度作成するようにしてください。