Skip to main content

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:同じ宣言文における複数の変数宣言の回避