特定キーワード使用一覧の作成(VB.NET)

数多いプロジェクトを含むソリューションで共通記述項目に変更がある場合などで便利です。
「ソリューション全体」で検索しても良いのですが.... 既存プロジェクトからコピーを作って新しいプロジェクトにすることは多いと思いますが、コピー利用で多くのプロジェクトを作成してしまってから、全体に及ぶような変更を行ないたいということもあり得ることです。 そうでなくても、あるキーワードでソリューション全体を検索するようなことは何度も行なうと思います。 Visual BasicIDEの中でも検索機能は搭載されているのですが、これがどのモジュールのどのプロシージャにあって全部で何件あるのかなどが一覧になって出力できたら便利ではないですか?
インストーラ付き専用ソフトを作成しました!   VB.NETキーワード使用一覧(Grepツール)を作成しました。
こちらはインストーラが付いた.NETアプリケーションで同様にExcelシートに出力されるものですが、 検索除外フォルダの指定や検索キーワードを複数登録してAndOrを行なったり、デザイナ定義を検索する機能も持たせてあります。



このページの方法では複数キーワードの処理ができない上、プロシージャ名の判定が完璧ではありません。 記述サンプルとして残しますが、実用には向かないのでぜひVB.NETキーワード使用一覧(Grepツール)をご利用下さい。



内容的には指定されたルートフォルダから、配下の全サブフォルダを順に探索して、.VBの拡張子を持つ各ソースコードファイルを順次開いて1行ごとに指定されたキーワードがあるかを調べて一覧に表示させる処理です。

ブックを開くと、まず、指定フォームが表示されます。



キーワード探索の指定画面
(この画像をクリックすると、このページのサンプルがダウンロードができます。)
このフォームで検索するルートフォルダ(最上位のフォルダ)とキーワードを指定します。

ルートフォルダは「参照」ボタンで参照して指定できます。



フォルダの参照
ルートフォルダの指定はこの「フォルダの参照」で行なうか、フォルダウィンドウのアドレスバーから貼り付けるなどで行ないます。
ルートフォルダはソリューション全体の親フォルダを指定します。

次に、キーワード等の指定を行ないます。



キーワード探索の指定画面
探索するキーワードの指定を行ないます。本処理では複数キーワードの複合検索には対応していません。
「コメント行を無視する」は、コメント行('」で始まる行)を検索から除外する場合にチェックを入れて下さい。

「処理開始」をクリックすると、検索動作が開始されます。



キーワード探索の処理結果
条件の数やフォルダ数、コンピュータのスペックで違いますが、最近のコンピュータであればサンプルの10プロジェクト程度の検索は数秒です。 終了すると、このように完了メッセージが表示されます。

検索結果が一覧で表示されます。



キーワード探索の処理結果(右列)
下記の内容の一覧が作成されます。
見出し 内容
A フォルダ名 フォルダ名は指定したルートフォルダから下の部分です。
B ファイル名 発見したファイル名です。
C コードページ内の行位置です。「ジャンプ」でこの値を入力するとその行へ移動できます。
D プロシージャ名 発見したテキストが所属するプロシージャ名です。
E 内容 発見したテキストを含むその行の内容です。(折り返しの対応はありません。)
※私のところでは、「Visual Basic 2005」を途中から「Visual Basic 2010」に切り替えていますが、 この時、各ソースコードのファイル(*.VB)の文字コードが一時、Ascii(Shift-JIS)のものとUTF-8のものが混在していました。 おそらく、「Visual Basic 2005」で作成したものがAscii(Shift-JIS)、「Visual Basic 2008」以降で作成したものがUTF-8ということなのだろうと思います。 今回の「特定キーワード使用一覧の作成(VB.NET)」はどちらの文字コードにも対応させてあります。

ダウンロードはこちら。

FindKeywordVB.zip
      (62KB)