今日は、Visual Basic 6 で、VBA IDE の Add-In を書いてます。新しいプロジェクトで「アドイン」を選んで、Connect.dsr を Visual Basic for Application IDE にして、Excel の VBA IDE の Code Window の右クリックに自分の WithEvents Office.CommandBarButton を追加しました。
これの Click イベントハンドラで、その場所の VBA が属している Workbook(ThisWorkbook)への参照を得るにはどうしたらよいのでしょうか?
No.3ベストアンサー
- 回答日時:
実際に作ってみました。
その結果、
構造上、
Excelと
VBEはそれぞれで独立した
アプリケーションだということが判明しました。
つまり
VBE上に表示されている、
Workbookは、
コードペインオブジェクト
だということです。
というわけで、
別プロセスの
アドイン(EXCEL用)を
作成したほうが
早いと思いますよ。
ありがとうございます。たいへん参考になりました。
言われてみれば、この Add-In は(機能は VBE に付くのだけれども)Excel の VBE 専用になるので、それが美しいような気がしてきました。今のままだと Word VBA にも入っちゃってるし…。
次の日曜日に VBE Add-In はやめて Excel COM Add-In に挑戦してみます。
No.2
- 回答日時:
逆に質問なんですけど、
VBAアドインって
Workbook単位でインスタンスを作成しないんですか?
1Workbookに対して1アドインだったと思いますが。
この回答への補足
たぶん、1つの VBE に1つです。初めて VBE が現れるときに生成されます。本体の Excel が終了するときに破壊されます。同じ Excel で新しいブックを作成しても、Add-In は生成されません。Excel をもう1つ起動して VBE を起動すると、新しい Add-In が生成されます。
CommandBarButton.Click ハンドラにブレークポイントを置いて、ここで OnConnection の時に保存しておいた Application As VBE をデバッグのローカルウィンドウで見てみると、.SelectedVBComponent.Name が "ThisWorkbook" なのですが、これは As VBComponent で、
Dim a As Excel.Workbook
Set a = .SelectedVBComponent
は失敗します。
No.1
- 回答日時:
あまり詳しくありませんが…
Add-In側で、
WorkBookオブジェクトを
WithEvents で宣言し、
IDE側で
set a = ThisWorkbook
ってすればいいんじゃないんでしょうか?
そういうことじゃない?
この回答への補足
> IDE側で
> set a = ThisWorkbook
>
VBA から代入するのではなく、Add-In 側から探したいです。複数のブックを開いてるときに「どのブックでクリックされたのか」を知りたいです。例えば、そのブックのプロパティを取り出したいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでArrayListを使う為の「mscorlib.tlb」の参照設定について 3 2022/03/23 19:45
- Visual Basic(VBA) Access VBAから使用したExcelプロセスを閉じる方法について 4 2022/06/08 17:50
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:02
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) chromedriverのver-upで動作不安定となった 3 2022/07/07 11:32
- その他(Microsoft Office) エクセル VBAについて 2 2022/09/21 22:21
- Excel(エクセル) エクセルシート中の全角英数字を半角に変換したい 4 2022/07/07 13:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba SelStart、SelLen教えてく...
-
【VBA】マクロの入ったファイル...
-
A列に記載されているフォルダ...
-
VBA listBoxから
-
ExcelVBA シート名を複数セルか...
-
現在のブックを閉じないで、マ...
-
Outlookの「受信日時」「送信者...
-
ユーザーフォームに別シートか...
-
VBAコンボボックスで選択した値...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
Outlookの「受信日時」「件名」...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
Excelのマクロでワードのテキス...
-
【ExcelVBA】インデックスが有...
-
VBA 別ブックからコピペしたい...
-
VBA実行後に元のセルに戻りたい
-
VBAに詳しい方教えてください。
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのコード隠蔽について
-
webサイト図鑑作成について
-
日本地図のクリッカマップ
-
move_uploaded_fileについて
-
CSS ストライプの三角
-
ホームページのHTMLサイトマッ...
-
チェックボックスにチェックし...
-
ApacheのBasic認証のログの取り方
-
ブログやホームページを毎日更...
-
JANコードを検索出来るサイト
-
SEOの検索順位について 例えば...
-
グーグルで検索順位が上がると...
-
デスクトップにある画像のパス...
-
VBのPictureBoxで画像をドラッ...
-
google.co.jpはホスト名ですか?
-
シンプルなSNMP Managerを探し...
-
HTTPのBasic認証に自動ログイン...
-
ikeyとは何ですか?
-
Basic認証のパスワードをユーザ...
-
外部の別ホストからのPOST送信...
おすすめ情報