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