Automation API
VBAから階層化フォームを呼び出す
階層化フォームは、Excelのリボン操作だけでなく、VBA側からAutomation APIとして呼び出すこともできます。 イミディエイトウィンドウで即席検索したり、自分のマクロに検索・再解析・外部参照整理を組み込めます。
サンプルコード
次のサンプル `.bas` をVBEへインポートすると、`?ks("検索語")` のような短い呼び出しで検索できます。
IkiKaiso_VBA_Sample.bas をダウンロード使い始め方
- VBEで「ファイル」から `IkiKaiso_VBA_Sample.bas` をインポートします。
- イミディエイトウィンドウを開きます。
- `?ks("ArrayCopy")` のように入力して検索を試します。
よく使うラッパー
| 呼び出し | 用途 |
|---|---|
| ?ks("検索語") | プロシージャを本文込みで検索 |
| ?ks("検索語", False) | プロシージャ名のみ検索 |
| ?ksd("検索語") | 宣言メンバーを検索 |
| ?ksa("検索語") | プロシージャと宣言メンバーをまとめて検索 |
| OpenKaiso | アドインウィンドウを開いて再解析 |
| TidyExternalReferences | 外部参照を一括コピーし、関連Class / Formを取り込み |
公開メソッド
Reanalyze()
読み込み / 更新相当の再解析を実行
ShowWindow()
階層化フォームのウィンドウを表示
ShowWindowAndLoad()
表示してから再解析
HideWindow()
ウィンドウを隠す
SearchProcedures(query, includeBody)
プロシージャを検索
SearchDeclarations(query)
宣言メンバーを検索
SearchAll(query, includeBody)
プロシージャと宣言メンバーをまとめて検索
GetExternalReferenceCopyText(targetProject)
外部参照コードをコピー用文字列として取得
ImportRelatedFormClassModules(targetProject)
関連Class / UserFormモジュールを取り込み
ショートカット割り当て例
ブックの `ThisWorkbook` に次のように書くと、Ctrl+Shift+Kで階層化フォームを開けます。
ThisWorkbook
vba
Private Sub Workbook_Open()
Application.OnKey "^+k", "'OpenKaiso'"
End Sub