Home » エクセルマクロ・Excel VBAの使い方 » Propertyプロシージャでプロパティを実装する時の変数名

Propertyプロシージャでプロパティを実装する時の変数名

少ないコード量で、クラスモジュールを実務で使えるかもと体感していただくためにイベント処理を共通化するクラスの簡単なサンプルと、プロパティをPropertyプロシージャで実装する例をご紹介しました。

プロパティをグローバル変数ではなく、Propertyプロシージャで実装するサンプルでは、モジュールレベル変数を「targetSheet_」としました。

この変数名について「変数名は絶対にこの形にしなければならないというわけではありません。詳細は別記事で。」と書いた件を、補足しておきます。

[スポンサードリンク]

変数名のつけ方にはいくつかのスタイルがあり、2019年3月現在、クラスモジュールについて触れている入手しやすい日本語書籍のひとつ『Excel VBAの教科書』が、Propertyプロシージャとほぼ同じ名前で小文字始まりにして末尾にアンダーバーを付けるという「targetSheet_」タイプの命名ルールを採用しています。

プレフィックスをつけるスタイルの変数名

クラスモジュールについて記述のある他の日本語書籍『ExcelVBA 実戦のための技術』では、「targetSheet_」タイプとは異なる命名ルールを採用しています。

こちらの書籍では、Propetyプロシージャに、接頭辞・プレフィックス「m」を付けるというルールになっています。

このルールに則ってDaraValidationクラスをつくる場合、以下のようなコードになります。

Option Explicit

Private WithEvents mTargetSheet As Excel.Worksheet

Property Set TargetSheet(ByVal sh As Excel.Worksheet)
 Set mTargetSheet = sh
End Property

Property Get TargetSheet() As Excel.Worksheet
 Set TargetSheet = mTargetSheet
End Property

Private Sub mTargetSheet_Deactivate()
 If mTargetSheet.Range("A1").Value = "" Then
  mTargetSheet.Select
  Range("A1").Select
  MsgBox mTargetSheet.Name & "シートのA1セルには必ずデータを入力してください。"
 End If
End Sub

ご紹介済みのDaraValidationクラスで「targetSheet_」となっていた箇所がすべて「mTargetSheet」に変更されています。

関係していることがわかり、かつ区別できること

プロパティを実装する際のモジュールレベル変数の名前は、結局のところ自由に決めてイイのですが、何らかの方針は必要です。

最低でも以下のような方針で名前を決めるのがいいだろうと、私は考えています。

モジュールレベル変数とPropertyプロシージャが強く関係していることを読み取れること、それでいてモジュールレベル変数とPropertyプロシージャが区別しやすいことです。

最終更新日時:2019-03-04 20:31

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Propertyプロシージャでプロパティを実装する時の変数名

「エクセルマクロ・Excel VBAの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.