見出し画像

VBAのプロシージャ名・変数の命名ルールについて

私が書くVBAコードは、プロシージャ名は基本日本語を利用しています。
理由は「和風スパゲティのレシピ」様の記事(変数を日本語にすればプログラミングが上達する)に影響を受けているためです。
ただし、完全に日本語にすると、Subプロシージャや変数を呼び出ししたいときに、インテリセンスがうまく働かず、不便です。

そのため、プロシージャ名の先頭(Subプロシージャなら先頭に「sb」、Functionプロシージャなら先頭に「zf」)をつけて、インテリセンスで呼び出しし易いようにしています。
例えば、下記のようにしています。

Sub sb赤枠四角図形挿入()
   Application.ScreenUpdating = False
       Call sb赤枠透明図形挿入(msoShapeRectangle)    '図形形状:角が丸い四角
   Application.ScreenUpdating = True
End Sub
 
Sub sb赤枠楕円図形挿入()
   Application.ScreenUpdating = False
       Call sb赤枠透明図形挿入(msoShapeOval)  '図形形状:楕円
   Application.ScreenUpdating = True
End Sub
 
Public Sub sb赤枠透明図形挿入(図形形状 As MsoAutoShapeType)
'マニュアル作成作業でよく使用する赤枠・背景透明の図形を挿入する(図形の種類は引数で指定)
   With ActiveCell
        ActiveSheet.Shapes.AddShape _
             (Type:=図形形状, _
              Left:=.Left, Top:=.Top, Width:=200, Height:=125).Select
   End With
   Selection.ShapeRange.Fill.Visible = msoFalse
   With Selection.ShapeRange.line
         .Visible = msoTrue
         .ForeColor.RGB = RGB(255, 0, 0)
         .Weight = 5  '太さ
         .Transparency = 0.3  '透明度
    End With
End Sub

なお、上記例にはFunctionは含まれませんが、Functionの先頭をzfとしてわざわざzをつけているのは、VBAでは、zで始まるプロパティやメソッドがないため、自分が定義したものが入力候補で絞れるためです。
(このプロシージャ名や変更の先頭に「z」をつけるのは、りゅうりゅうさんが提唱しているz会に影響を受けています。)

とはいえ、必ずしも先頭にzをつける必要はなく、Subプロシージャの先頭をsbをつけているように、「s」単体で始まるメソッドやプロパティは沢山あっても、他の文字と組合せで自分が絞りやすい記名になっていれば問題ないと思います。

もしよろしければサポートをお願いします。今後の執筆のかてにします。