■ crcvb -- コーディングチェッカー for Visual Basic

■概要

VBのコーディングをチェックするソフトです。VB5とVB6を対象にしています。
ずいぶん前に作りかけていたのですが、作っている最中に VB.NET の発表があり、文法が大きく変わっているのを見てがっくり。 ずっと放置してました。
機能的には全くもって不十分なのですが、見栄えだけ修正してベータ版扱いで置いてます。

■ダウンロード

crcvb010.zip

■インストール

圧縮ファイルの中身をそのままの形でフォルダに展開し、crcvb.exe を実行してください。
なお、終了時に実行ファイルと同じ位置に crc.ini というファイルを書き出すので、専用フォルダを作っておいた方がアンインストールが楽です。

■アンインストール

展開したディレクトリを削除してください。レジストリは使用していません。

■使い方と詳細

1.「VBプロジェクト」にVBのプロジェクトファイルを指定
2.「全てチェック」をクリック
3.「チェック」をクリック

これで結果ウィンドウにチェックの結果が表示されます。
結果ウィンドウへの出力は秀丸のタグジャンプに対応した形式になっています。設定でエディタ登録すると便利です。

チェック項目は以下の通りです。少ない……。

項目 説明
未使用のローカル変数 未使用のローカル変数をチェックします。引数は含まれません。
未使用の引数 未使用の引数をチェックします。
設定により、以下の例外を登録することが出来ます。
・イベントプロシージャの引数を除く
・指定の変数名を除く
ただし、イベントプロシージャの判定は手抜きで「プロシージャ名に "_"(アンダースコア)が含まれるかどうか」です。
暗黙のPublic宣言を禁止 暗黙的にPublic宣言されているプロシージャをチェックします。
設定により、以下の例外を設定することが出来ます。
・Sub Mainを除く
一行の長さ制限 行の長さが指定した文字数を超えていないかどうかをチェックします。
ファイル命名規則 ファイルの種類毎に命名規則パターンに従っているかどうかをチェックします。
パターンの判定には Delphi の MatchesMask 関数を使用しています。以下、ヘルプの抜粋です。
各リテラル文字は文字列内の 1 文字と一致しなければなりません。
リテラル文字との照合では,大文字と小文字は区別されません。 各集合は左大カッコ([)で始まり右大カッコ(])で終わります。 左右の大カッコの間には集合の要素が入ります。 各要素はリテラル文字または範囲です。 範囲は,開始値,ダッシュ(-),および終了値で指定します。 スペースやカンマを使って集合の要素を区切ることはできません。 集合は文字列内の 1 文字と一致しなければなりません。 文字列内の文字が集合のいずれかのリテラル文字と一致する場合,または文字が集合のいずれかの範囲内にある場合には,文字列の文字と集合が一致したことになります。 文字が範囲の開始値または終了値と一致する場合や,この 2 つの値の間にある場合には,文字は範囲内にあることになります。 集合と文字列の照合では,常に大文字と小文字は区別されません。 また,集合の左大カッコの直後に感嘆符(!)が指定されている場合には,集合は集合にはない文字と一致することになります。
ワイルドカードはアスタリスク(*)または疑問符(?)で指定します。アスタリスクは不特定の文字数に対応します。疑問符は任意の 1 文字に対応します。
例えば、「プロジェクト(*.vbp)」に記述するパターンとその意味は、
パターン 意味
A[XYZ][0-9][0-9][0-9]?.vbp 最初がA、2文字目がX,Y,Z(x,y,z)のどれか、3〜5文字目は数字、6文字目は任意の1文字
B*[!0-9].vbp 2文字以上で、最初がB(b)、最後が数字以外
といった感じになります。
Option Explicit 必須 Option Explicit が書かれているかどうかをチェックします。
バージョン番号の自動インクリメント必須 バージョン番号の自動インクリメントをチェックします。
設定により、「有効であるべき」か「無効であるべき」かを指定します。
コメント統計 ファイル毎に「総行数」「実行行数」「空行数」「コメント行数」を調べます。
結果はプロジェクトウィンドウの「統計」ボタンで参照できます。
例外ファイル設定 全てのチェック項目に対して優先します。ここに登録したファイルはチェックされません。 メーカー提供のファイル等を指定してください。
ファイル名のみ、またはフルパスで指定します。大文字・小文字が区別されるので注意して下さい。

■今後の予定

1年以上ほったらかしだったため、今になってソースを見ても理解できなかったりします。 それに、「VB5 や VB6 ってまだ現役なの?」という疑問もあって、今ひとつモチベーションがありません。 需要があれば考えますが……。
要望や感想がありましたらトップページに書いてあるアドレスまでメールください。それがモチベーションになるかも??です。