Softex CelwareTech Blog

Automation API

VBAから階層化フォームを呼び出す

階層化フォームは、Excelのリボン操作だけでなく、VBA側からAutomation APIとして呼び出すこともできます。 イミディエイトウィンドウで即席検索したり、自分のマクロに検索・再解析・外部参照整理を組み込めます。

サンプルコード

次のサンプル `.bas` をVBEへインポートすると、`?ks("検索語")` のような短い呼び出しで検索できます。

IkiKaiso_VBA_Sample.bas をダウンロード

使い始め方

  1. VBEで「ファイル」から `IkiKaiso_VBA_Sample.bas` をインポートします。
  2. イミディエイトウィンドウを開きます。
  3. `?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