フォームグループ「階層化フォーム(全体)」の解説
- yuji fukami
- 10月16日
- 読了時間: 8分
概要
書籍「Excel VBA開発を超効率化するプログラミングテクニック」の特典であるIkiKaiso2.xlamのリボン登録マクロの解説のための特設ページです。
出版社の書籍のページ⇒https://gihyo.jp/book/2024/978-4-297-14023-6
リボン登録マクロ全体解説ページ⇒https://www.softex-celware.com/post/ikikaiso2
本ページではIkiKaiso2.xlamの「フォーム」グループの「階層化フォーム(全体)」ボタンの使い方を解説します。

解説
用途
階層化フォームを起動して、起動中の全ブックのコードを処理対象とする
階層化フォームによって次のようなことが可能です。
ブック内のVBAコードの全体把握、依存関係調査
外部参照プロシージャの一括コピー
特定プロシージャの子プロシージャも含めた全体コードの取得
特定のモジュールの関連コードを含めたエクスポート
使い方(起動)
リボン「階層化フォーム(全体)」をクリックすると、ユーザーフォーム(階層化フォーム)が起動します。起動完了までに少し時間がかかりますが進行状況をフォーム上に表示しています。この起動時間はVBAコードの規模や、起動しているマクロ付ブックの数が大きいほど時間がかかります。
起動が完了すると自動的に画面全体表示に切り替わります。
使い方(フォーム構成)
「階層化フォーム」の構成は次のようになっています。
まず起動中のプロジェクト(ブック)一覧が「プロジェクト一覧」に表示され、「プロジェクト一覧」にて選択したプロジェクトにおけるモジュールを「モジュール一覧」に表示されます。
「モジュール一覧」で選択したモジュール内の宣言メンバー、プロシージャを「宣言メンバー一覧」「プロシージャ一覧」に表示します。ここでの「宣言メンバー」とはプロシージャ以外でモジュール冒頭に記述する「Enum(列挙体)」「WindowsAPI」「Public,Private変数などのグローバル変数」「Type(ユーザー定義型)」の総称としています。
「宣言メンバー一覧」または「プロシージャ一覧」で選択した宣言メンバーやプロシージャ一覧のコードを右半分のリストボックスに表示します。選択している宣言メンバーまたはプロシージャの親ブック名(プロジェクト名)、モジュール名も表示します。

下側のテキストボックスには先ほど説明した「起動時の進行状況の表示」以外に、洗濯しているコントロールの説明の表示機能も兼ねています。各コントロールの使い方が分からなくなった時に活用してください。
右上には「文字サイズ」の表示と◀▶ボタンでの文字サイズの変更が可能です。
「検索」ボタンの右のテキストボックスはコード検索の入力機能としています。

「階層&コード」ボタンを押すと、選択プロシージャまたは宣言メンバーの子プロシージャの階層構造が表示されます。この際「階層&コード」は「階層表示」とキャプションが変わります。特定のプロシージャや宣言メンバーの依存関係の把握に活用できます。

「階層&コード」ボタンからキャプションが変わった「階層表示」ボタンをクリックすると、コード表示のコントロールは非表示になって階層構造表示のコントロールのみが表示されます。
初期状態で「階層&コード」ボタンは「階層&コード」→「階層表示」→「コード表示」とキャプションが切り替わり、次にクリックした後の表示モードをキャプションで示しています。

ちなみに階層表示の階層の閉じる、開くは「◀▶」カーソルキーで切替が出来るようになっています。
階層構造の表示は「親」⇄「子」ボタンで子プロシージャの階層構造、親プロシージャの階層構造の表示モードを切り替えできます。

使い方(リストボックスの操作)
モジュール一覧、宣言メンバー一覧、プロシージャ一覧などのコントロールはリストボックスを利用していますが、下記の方法で操作が可能です。
右クリック+⇅ドラッグでスクロール
ヘッダークリックで並び替え
ヘッダーの切替位置右クリック+⇄ドラッグでヘッダー幅変更
使い方(コード表示)
プロシージャ一覧で表示されているプロシージャをダブルクリックすると、VBEが起動してそのプロシージャのコードが表示されます。これですぐに中身確認や変更作業へ移ることができます。
この機能は「宣言メンバー一覧」「階層構造表示」にも備わっています。

使い方(コード表示)
特定ワードでプロシージャを検索できます。検索ワードがコード内で含まれていたものが対象となります。
作ったけど忘れてしまった汎用プロシージャの検索などに利用してください。

使い方(色変更)
次の操作で階層化フォームの色設定を変更できます。
①:「色」ボタンクリックで設定シート表示
②:色の設定セルの塗潰し色を変更
③:「階層化フォームの色設定反映」で設定反映
④:「設定画面閉じる」でシートを非表示にする
⑤:色の設定が反映されている
自分好みの色に設定したい時に利用してください。

使い方(フォント変更)
「フォント」ボタンで階層化フォームで使用しているフォントを変更できます。デフォルトでは等幅フォントの「BIZ UDゴシック」を使用しています。

使い方(外部参照一括コピー)
「外部参照一括コピー」の機能を使用する場面として、下記画像の様にマクロ付ブック「例:開発用.xlsm」にて「IkiKaiso2.xlam」を参照して「IkiKaiso2.xlam」内の汎用プロシージャを使用している場合です。
このままだと「開発用.xlsm」は「IkiKaiso2.xlam」を参照していないと動作しません。そのため「単独ファイルでは使えない」となり「他者へ渡しづらい」状態となります。

「開発用.xlsm」を単独ファイルで使えるようにするには、使用している「IkiKaiso2.xlam」内のプロシージャや宣言メンバーを「開発用.xlsm」内に記述して「IkiKaiso2.xlam」への参照を解除する必要があります。
このようなマクロ付ブックの単独化を数秒で出来るようにするのが「外部参照一括コピー」の機能となります。
具体的な使い方は下記の通りです。
①:階層化フォームを起動して「プロジェクト一覧」にて「開発用.xlsm」を選択します。
②:「外部参照リスト表示」ボタンをクリック
③:外部参照しているプロシージャを一覧で表示する(宣言メンバーも含まれていたら一覧で表示されます)
④:「コードコピー」で一覧で表示しているプロシージャ(宣言メンバー)のコードをまとめてコピー(クリップボードに格納)する。同時に詳細もメッセージで表示されます。
⑤:コピーされたコードを「開発用.xlsm」の標準モジュール(例:Mod99_アドインから)に貼り付ける
⑥:リボン登録マクロ「参照解除」で「IkiKaiso2.xlam」への参照を解除
⑦:参照は解除され「開発用.xlam」は単独で使えるようになる

使い方(モジュールの出力)
「モジュール一覧」のラベルをクリックすると「単体出力」ボタンが「関連出力」→「全体出力」→「単体出力」ボタンのキャプションと色が切り替わります。

3つの切り替わるボタンは総称して「モジュールの出力」ボタンですが、こちらは「モジュール一覧」において選択したモジュールをエクスポートデータとして出力する機能です。
「単体出力」はVBEのプロジェクトエクスプローラーで「エクスポート」する機能と同じです。
「関連出力」は選択モジュールが別モジュールで使用しているプロシージャ(宣言メンバー)があった場合に、それらプロシージャ(宣言メンバー)をまとめてエクスポートします。
「全体出力」は「関連出力」同様に選択モジュールが別モジュールで使用しているプロシージャ(宣言メンバー)があった場合に、それらプロシージャ(宣言メンバー)と、選択モジュールの中身をまとめて1つのデータとしてエクスポートする機能です。
全体を図示すると次のようになります。

この機能の用途として特に「全体出力」をよく使いますが、特定のユーザーフォームやクラスモジュールを単独で動作する形で出力するために利用したりします。出力したファイルはVBEにインポートして単独して動作するようになります。
使い方(プロシージャの出力)
「プロシージャ一覧」ラベルの右側には「プ出力」のボタンがあります。このボタンは「プロシージャ出力」の略名ですが、機能は「選択しているプロシージャを標準モジュールとしてエクスポートする」ものです。
使い方の手順は画像も参照しつつ次のようになります。
①:対象のプロシージャを選択
②:出力先のフォルダを選択
③:標準モジュールのエクスポートデータとして出力される
④:プロジェクトエクスプローラーにクリック&ドラッグでインポート
⑤:選択プロシージャが別ブックで使えるようになる

用途として、特定のプロシージャをインポートすることですぐに特定のブック内で使用できるように準備しておくなどで利用できます。
使い方(プロシージャのコードコピー)
階層化フォームの右上に「コードコピー」「全コードコピー」のボタンがあります。
このボタンは「プロシージャ一覧」にて選択しているプロシージャのコードをクリップボードに格納する機能で、
「コードコピー」は「プロシージャのコード単体のコピー」
「全コードコピー」は「プロシージャの子プロシージャも含めた全体コードのコピー」
です。
「全コードコピー」は「プロシージャの出力(プ出力)」ボタンと似ていますが、コードをクリップボードに格納して好きなところに貼り付けたりするのに利用できます。

使い方(その他機能)
「階層化フォーム」右上の「い」ボタンは「コード表示」リストボックスに階層化フォームのバージョン情報を表示します。

「階層化フォーム」右上の「ー▢×」ボタンは拡大縮小表示の切り替えに使用する「
ー▢×」を表示するためのボタンです。通常は階層化フォームを起動した時点で「ー▢×」は表示されるのですが、これがたまに失敗するのでこの「ー▢×」ボタンで再設定が出来るようになっています。



コメント