.NET VBの変数、クラス、メソッド、プロシージャ等の命名規則

最終更新日

.NET VB(VisualBasic)には、すでに予約されているキーワードや予約までされていないが特定の意味を持つ単語があるので、使用を避けたほうがよい単語や変数やプロシージャ、コントロール名のプレフィックス(接頭辞)や変数、クラス、プロパティ、関数、メソッド等の命名規則について記録しておく。

変数名やプロシージャ名に使用できない単語

予約済みのキーワード

AddHandlerAddressOfAliasAndAndAlsoAs
BooleanByRefByteByVal
CallCaseCatchCBoolCByteCChar
CDateCDecCDblCharCintClass
CLngCObjConstContinueCSByteCShort
CSngCStrCTypeCUIntCULngCUShort
DateDecimalDeclareDefaultDelegateDim
DirectCastDoDouble
EachElseElseifEndEndifEnum
EraseErrorEventExit
FalseFinallyForFriendFunction
GetGetTypeGetXMLNamespaceGlobalGoSubGoto
Handles
IfIf()ImplementsImportsImportsIn
InheritsIntegerInterfaceIsIsNot
LetLibLikeLongLoop
MeModModuleMustInheritMustOverrideMyBase
MyClass
NamespaceNarrowingNewNextNotNothing
NotInheritableNotOverridable
Ject
OfOnOperatorOptionOptionalOr
OrElseOverioadsOverriddableOverrides
ParamArrayPartialPrivatePropertyProtectedPublic
RaiseEventReadOnlyReDimREMRemoveHandlerResume
Return
SByteSelectSetShadowsSharedShort
SingleStaticStepStepStringStructure
SubSyncLock
ThenThrowToTrueTryTryCast
TypeOf
Variant
UIntegerULongUShortUsing
WendWhenWhileWideningWithWithEvents
WriteOnly
Xor
#Const#Else#ElseIf#End#If=
&&=**=//=
\\=^^=++=
-=>>>>=<<<<=

特定の意味を持つ単語

AnsiAssemblyAuto
BinaryBy
CompareCustom
Distinct
EqualsExplicit
From
Group
IntoIsFalseIsTrue
Join
Mid
OffOrder
Preserve
SkipStrict
TakeText
UnicodeUntil
While
#Region

プレフィックス(接頭辞)

プレフィックスとは、名前の先頭に用途がわかるように短縮形の単語を付けることです。ただし、現在は、「.NET Framework 開発者ガイド」よりハンガリー表記法は使用しないでください。となっているので、推奨されていません。

変数のプレフィックス

データ型プレフィックスデータ型プレフィックスデータ型プレフィックス
BooleanblnDoubledblObjectobj
BytebytEnumenmShortsht
DatedteIntegerintSinglesng
DecimaldecLonglngStringstr

サンプル

Dim blnflg As Boolean
Dim intPrice As Integer
Dim decPrice As Decimal
Dim lngSize As Long
Dim bytDate As Byte
Dim strWord As String
Dim dteNow As Date
Dim objFrom As Object

コントロール名のプレフィックス

データ型プレフィックスデータ型プレフィックスデータ型プレフィックス
ButtonbtnImageimgRichTextBoxrtb
CheckBoxcbxImageListiltSaveFileDialogsdg
CheckedListBoxclbLabellblShapeshp
ColorDialogcdgLinkLabelllbSplitterspt
CommonDialogdlgListBoxlstStatusBarstb
ContextMenucmnListViewlvwTabControltab
ControlctrMonthCalendermclTextBoxtxt
DataGriddgdPanelpnlTimertmr
DateTimePickerdtpPictureBoxpicToolBartbr
ErrorProviderevdPrintDaialogpdgToolTipttp
FontDialogfdgPrintDocumentpdcTrackBartrb
FormfrmPrintPreviewControlppvTreeViewtvw
GroupBoxgbxProgressBarprbVScrollBarvsb
HScrollBarhsbRadioButtonrbt

変数やクラス、メソッド、プロパティ等の名前の付け方

コードの可読性を高めるための命名規則

フォームやクラス、プロパティ、モジュール、構造体、関数名などは、VisualStudio2019では、パスカルケースを採用している。

  • 先頭の文字を大文字にする
  • 複数の単語を組み合わせ場合、それぞれの単語の先頭文字を大文字にする
  • 名前から機能が推測できるようにする。
  • 名前は6文字~8文字程度に抑える。あまり短くても、長くてもよくない。
摘要形式使用例
フォームパスカル形式MainWindow
クラス、モジュールパスカル形式GetPrice
構造体パスカル形式ScoreSet
変数名小文字統一local

VBでは、大文字と小文字を区別しない。変数名に大文字・小文字を定義した場合はエラーとなる。.Net Frameworkでは、大文字・小文字を区別はする仕様なので、小文字で統一するのがよい。

大文字・小文字エラー
VBでは大文字・小文字を区別していないためエラーとなる。

変数名について
筆者は、変数名についてはキャメルケースを使用している。これは、フォームやクラス、メソッド、プロパティ、モジュール等具体的な処理が書かれているものなかの、単に変数として扱っているかを視覚的に把握するためである。
変数は、キャメルケース、それ以外はパスカル方式を採用している。
メンテナンスフェーズでは、他人のソースコードを解析することが多い。1000行以上(時には2マ万以上)の膨大なソースコードから仕様をリバースすることは、業界的によくあることである。解析作業時にメソッドか変数か分析の方法が変わる。(内部を深く追うか追わないか)そういう意味では、区別しておきたいというの大きな理由である。

変数名に使用できる文字

  • a~zなどの小文字やA~Zなどの大文字を含むアルファベット
  • 0~9などの数字
  • アンダースコア(_)
  • 全角文字や半角カタカナ

※日本語の文字はトラブルの原因になることが多いので、使用はしない。もしくは、限定的にする。

変数名を付けるときの制限

  • 変数名の最初に数字を使用することはできない。
  • VisualBasicで定義されているキーワード、メソッド、プロパティ、オブジェクトに使用されている名前は使用できない。

変数名の名前付け方式

詳しくは、変数名の名前付け方式を参照。

方式内容
パスカル方式・アッパーキャメルケース変数名に複数の単語を使用し、各単語の先頭を大文字にする。ProductPrice

Microsoft Visual Studio Community 2019では、パスカルケースを採用している。