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を再度作成するようにしてください。