Visual Basic 6のスキャンルール
Contrast Scanでは、Visual Basic 6に対して以下のルールをサポートしています。
深刻度 | Contrastルール | エンジンルールID | 説明 |
---|---|---|---|
重大 | B I T N | OPT.VB6.VBCC.BITN | BITN:入れ子になったif...then文を許可しない |
重大 | R A D L | OPT.VB6.VBDS.RADL | RADL:ライブラリ定義における絶対パスの回避 |
重大 | O E R N | OPT.VB6.VBEH.OERN | OERN:「On Error Resume Next」の使用 |
重大 | K C R A | OPT.VB6.VBFA.KCRA | KCRA:「Kill」コマンドにおける絶対パスの禁止 |
重大 | O C R A | OPT.VB6.VBFA.OCRA | OCRA:「Open」コマンドにおける絶対パスの禁止 |
重大 | S C R A | OPT.VB6.VBFA.SCRA | SCRA:「Shell」コマンドにおける絶対パスの禁止 |
重大 | N C P F | OPT.VB6.VBFD.NCPF | NCPF:フォームごとのコントロールの最大数 |
重大 | F A O E | OPT.VB6.VBSF.FAOE | FAOE:全てのソースコードファイルに「Option Explicit」宣言が必要 |
重大 | F R D P | OPT.VB6.VBSF.FRDP | FRDP:ソースファイルはプロジェクトファイル(.vpbファイル)と同じディレクトリに配置することが必要 |
重大 | E U F P | OPT.VB6.VBUK.EUFP | EUFP:ポインタ関数の使用の回避 |
重大 | V N U C | OPT.VB6.VBVD.VNUC | VNUC:クラスモジュールにおけるバプリック変数の使用の禁止 |
高 | A N E M | OPT.VB6.VBCC.ANEM | ANEM:メソッド内の引数の数の確認 |
高 | C P C L | OPT.VB6.VBCC.CPCL | CPCL:VB6プロシージャの循環的複雑度の低減 |
高 | D E V L | OPT.VB6.VBCC.DEVL | DEVL:過剰なローカル変数の回避 |
高 | E U V G | OPT.VB6.VBCC.EUVG | EUVG:グローバル変数の使用の回避(「WithEvents」を使用する場合を除く) |
高 | S S D O | OPT.VB6.VBCC.SSDO | SSDO:入れ子になったCase文の禁止 |
高 | A C G E | OPT.VB6.VBCD.ACGE | ACGE:グローバル定数はPrivateとして宣言することが必要 |
高 | E C M N | OPT.VB6.VBCD.ECMN | ECMN:同じ名前の定数の回避 |
高 | N C C F | OPT.VB6.VBCD.NCCF | NCCF:定数は命名規則に従うことが必要 |
高 | D C A V | OPT.VB6.VBCL.DCAV | DCAV:定数宣言は変数宣言の前に配置することが必要 |
高 | D V C P | OPT.VB6.VBCL.DVCP | DVCP:変数宣言はプロシージャのヘッダに含めることが必要 |
高 | E D L C | OPT.VB6.VBCL.EDLC | EDLC:コード行数が200行を超える関数やプロシージャの回避 |
高 | F P V D | OPT.VB6.VBCL.FPVD | FPVD:空の関数またはプロシージャの検出 |
高 | N E C F | OPT.VB6.VBCL.NECF | NECF:行ラベル名は適切な形式であることが必要 |
高 | P E M L | OPT.VB6.VBCL.PEML | PEML:PROPERTYプロシージャのコード行数が一定の行数を超過することを禁止 |
高 | U L I T | OPT.VB6.VBCL.ULIT | ULIT:インラインのIf...Then文の禁止 |
高 | C G N U | OPT.VB6.VBDC.CGNU | CGNU:未使用のグローバル定数の回避 |
高 | V G N U | OPT.VB6.VBDC.VGNU | VGNU:未使用のグローバル変数の回避 |
高 | V L S U | OPT.VB6.VBDC.VLSU | VLSU:未使用のローカル変数の回避 |
高 | S D A P | OPT.VB6.VBDS.SDAP | SDAP:宣言文は「Private」スコープで宣言することが必要 |
高 | D E D E | OPT.VB6.VBED.DEDE | DEDE:「Enum」宣言のスコープは「Public」か「Private」であることが必要 |
高 | U E C T | OPT.VB6.VBEH.UECT | UECT:「Class_Terminate」イベントでの「On Error Resume Next」の使用 |
高 | U O E H | OPT.VB6.VBEH.UOEH | UOEH:エラー処理ルーチンの使用 |
高 | Number used to describe files (Close) | OPT.VB6.VBFA.CUNF | CUNF:「Close」コマンドでのファイルの記述における番号の使用の禁止 |
高 | Number used to describe files (EOF) | OPT.VB6.VBFA.EUNF | EUNF:「EOF」コマンドでのファイルの記述における番号の使用の禁止 |
高 | Number used to describe files (LOF) | OPT.VB6.VBFA.LUNF | LUNF:「LOF」コマンドでのファイルの記述における番号の使用の禁止 |
高 | Number used to describe files (File Access) | OPT.VB6.VBFA.NCAF | NCAF:ファイルアクセスコマンドでのファイルの記述における番号の使用の禁止 |
高 | Close command used, without file number | OPT.VB6.VBFA.NCSF | NCSF:ファイル番号なしでの「Close」コマンドの使用の禁止 |
高 | Number used to describe files (Open) | OPT.VB6.VBFA.OUNF | OUNF:「Open」コマンドでのファイルの記述における番号の使用の禁止 |
高 | B B I T | OPT.VB6.VBFD.BBIT | BBIT:「ブラウザ」ボタン(...)や画像のみのボタンにおける「ToolTipText」プロパティの設定と有効化 |
高 | F C C B | OPT.VB6.VBFD.FCCB | FCCB:フォームに「ControlBox」があることが必要 |
高 | F I E U | OPT.VB6.VBFD.FIEU | FIEU:フォームに「Unload」イベントを実装することが必要 |
高 | F T F P | OPT.VB6.VBFD.FTFP | FTFP:フォームのフォントタイプは同じであることが必要 |
高 | T B M L | OPT.VB6.VBFD.TBML | TBML:MaxLenghtプロパティが指定されていることが必要 |
高 | I E O M | OPT.VB6.VBOU.IEOM | IEOM:「Mid()」コマンドに組み込まれた「InStr()」コマンドの使用の回避 |
高 | U O C C | OPT.VB6.VBP.UOCC | UOCC:文字列の連結における「+」演算子の使用の回避 |
高 | A D P E | OPT.VB6.VBPD.ADPE | ADPE:プロシージャの宣言時に常にスコープを指定することが必要 |
高 | A D T A | OPT.VB6.VBPD.ADTA | ADTA:仮引数の型を必ず指定することが必要 |
高 | A E V R | OPT.VB6.VBPD.AEVR | AEVR:仮引数は「ByVal」か「ByRef」として指定することが必要 |
高 | M U P S | OPT.VB6.VBPD.MUPS | MUPS:メソッドには単一の出口ポイントがあることが必要 |
高 | N A C F | OPT.VB6.VBPD.NACF | NACF:仮引数名は適切な形式であることが必要 |
高 | O A D V | OPT.VB6.VBPD.OADV | OADV:オプションの仮引数にデフォルト値があることが必要 |
高 | N M C P | OPT.VB6.VBSF.NMCP | NMCP:モジュール名(.basファイル)にはプレフィックス(接頭辞)が必要 |
高 | P C N M | OPT.VB6.VBSF.PCNM | PCNM:クラスモジュール名(.clsファイル)にはプレフィックス(接頭辞)が必要 |
高 | P F M D | OPT.VB6.VBSF.PFMD | PFMD:MDIフォームにはプレフィックス(接頭辞)が必要 |
高 | P F N M | OPT.VB6.VBSF.PFNM | PFNM:MDIフォームにはプレフィックス(接頭辞)が不要 |
高 | P N D F | OPT.VB6.VBSF.PNDF | PNDF:デザイナーファイル名(.dsrファイル)にはプレフィックス(接頭辞)が必要 |
高 | P N P P | OPT.VB6.VBSF.PNPP | PNPP:プロパティページファイル名(.pagファイル)にはプレフィックス(接頭辞)が必要 |
高 | P N U C | OPT.VB6.VBSF.PNUC | PNUC:ユーザコントロールファイル名(.ctlファイル)にはプレフィックス(接頭辞)が必要 |
高 | P N U D | OPT.VB6.VBSF.PNUD | PNUD:ユーザドキュメントファイル名(.dobファイル)にはプレフィックス(接頭辞)が必要 |
高 | E T C N | OPT.VB6.VBTU.ETCN | ETCN:型の要素名は適切な形式であることが必要 |
高 | N T C D | OPT.VB6.VBTU.NTCD | NTCD:型名は命名規則に従うことが必要 |
高 | E S O B | OPT.VB6.VBUK.ESOB | ESOB:「Option Base」文の禁止 |
高 | E U F I | OPT.VB6.VBUK.EUFI | EUFI:「IsMissing()」関数の使用の回避 |
高 | E V M N | OPT.VB6.VBVD.EVMN | EVMN:同じ名前の変数の回避 |
高 | N V C F | OPT.VB6.VBVD.NVCF | NVCF:パブリック変数は命名規則に従うことが必要 |
高 | N V L F | OPT.VB6.VBVD.NVLF | NVLF:ローカル変数の名前は命名規則に従うことが必要 |
高 | N V S F | OPT.VB6.VBVD.NVSF | NVSF:静的(共有)変数は命名規則に従うことが必要 |
高 | N V W F | OPT.VB6.VBVD.NVWF | NVWF:「WithEvents」変数の名前は適切な形式であることが必要 |
高 | V O L D | OPT.VB6.VBVD.VOLD | VOLD:ローカルオブジェクト変数の破棄が必要 |
情報 | O E G0 | OPT.VB6.VBEH.OEG0 | OEG0:「On Error GoTo 0」の使用 |
情報 | U P A A | OPT.VB6.VBPD.UPAA | UPAA:仮引数における「ParamArray」使用の回避 |
低 | M C P L | OPT.VB6.VBCL.MCPL | MCPL:1行あたりの最大文字数 |
低 | A O L E | OPT.VB6.VBEH.AOLE | AOLE:「On Local Error」の使用の回避 |
低 | C T F P | OPT.VB6.VBFD.CTFP | CTFP:コントロールのフォントタイプは同じであることが必要 |
低 | N C C P | OPT.VB6.VBFD.NCCP | NCCP:フォームコントロール名は適切な形式であることが必要 |
低 | A IV N | OPT.VB6.VBPP.AIVN | AIVN:バージョン番号の自動インクリメントの無効化が必要 |
低 | V I C N | OPT.VB6.VBPP.VICN | VICN:「VersionCompanyName」の定義が必要 |
低 | V I F D | OPT.VB6.VBPP.VIFD | VIFD:「VersionFileDescription」の定義が必要 |
低 | V I L C | OPT.VB6.VBPP.VILC | VILC:「VersionLegalCopyright」の定義が必要 |
低 | V IP N | OPT.VB6.VBPP.VIPN | VIPN:「VersionProductName」の定義が必要 |
低 | U D M L | OPT.VB6.VBVD.UDML | UDML:グローバル変数宣言における「Dim」の使用の回避 |
中 | T C D A | OPT.VB6.VBCD.TCDA | TCDA:定数の型定義の必須化 |
中 | A G L S | OPT.VB6.VBCL.AGLS | AGLS:プロパティのLet/Get/Setアクセサをまとめて配置 |
中 | E S D F | OPT.VB6.VBCL.ESDF | ESDF:宣言のみを含むモジュールの回避 |
中 | C S U | OPT.VB6.VBDC.CSU | CSU:ローカル定数の使用不可 |
中 | P S U | OPT.VB6.VBDC.PSU | PSU:使用されない引数 |
中 | E E N P | OPT.VB6.VBED.EENP | EENP:Enumステートメントの要素名は命名規則に従うことが必要 |
中 | V N E E | OPT.VB6.VBED.VNEE | VNEE:「Enum」要素への数値の割り当て |
中 | T B N E | OPT.VB6.VBFD.TBNE | TBNE:コマンドボタンのサイズは標準であることが必要 |
中 | A N S C | OPT.VB6.VBP.ANSC | ANSC:空の文字列またはNull文字列との文字列比較の回避 |
中 | A V D V | OPT.VB6.VBP.AVDV | AVDV:バリアント型変数の回避 |
中 | E T R E | OPT.VB6.VBP.ETRE | ETRE:関数での戻り値の型の指定 |
中 | U I S C | OPT.VB6.VBP.UISC | UISC:「Chr$()」関数と「Chr()」関数の代わりに文字列定数を使用 |
中 | U S C F | OPT.VB6.VBP.USCF | USCF:バリアント型変数にはChr()の代わりにChr$()を使用 |
中 | U S D F | OPT.VB6.VBP.USDF | USDF: 「CurDir()」および「Dir()」の代わりに「CurDir$()」と「Dir$()」関数を使用 |
中 | U S E F | OPT.VB6.VBP.USEF | USEF:「Left()」、「Right()」、「Mid()」の代わりに「Left$()」、「Right$()」、「Mid$()」関数を使用 |
中 | U S H F | OPT.VB6.VBP.USHF | USHF:「Hex()」の代わりに「Hex$()」関数を使用 |
中 | U S S F | OPT.VB6.VBP.USSF | USSF:Space()の代わりに「Space$()」関数を使用 |
中 | U S T F | OPT.VB6.VBP.USTF | USTF:「LTrim()、「RTrim()」、「Trim()」の代わりに「LTrim$()」、「RTrim$()」、「Trim$()」関数を使用 |
中 | M IV D | OPT.VB6.VBVD.MIVD | MIVD:同じ宣言文における複数の変数宣言の回避 |