本ページには広告が含まれています。

Excel VBA クラス Property Getプロシージャ(Lv.6)

Excel VBA クラス Property Getプロシージャ
画像はCanva「Text to Image」で生成しました

「Excel VBAのクラス」について第6回目です。クラスで使うProperty Getプロシージャについて勉強していきます。

くるみこ
くるみこ

前回 Propertyプロシージャの概要を確認できたので、

今回は Property Getプロシージャについて勉強しましょう (^^)

Get は「プロパティの値を返す」でしたね。

よろしくお願いしますm(_ _)m

スポンサーリンク

はじめに

今回その中から「Property Getプロシージャ」を取り上げます。

3つの「Propertyプロシージャ」を再度確認しておきましょう。

プロシージャ説明
Property Getプロパティの値を返すプロシージャ
Property Letプロパティの値を設定するプロシージャ
Property Setオブジェクトに対する参照を設定するプロシージャ

Property Getプロシージャ 単独の場合は、読み取り専用プロパティになります。

【この記事でわかること
・Property Get プロシージャの使い方

Property Getプロシージャとは

Property Getプロシージャは、オブジェクトのプロパティを取得して返すプロシージャです。
「取得する」というのは、クラスを利用する側(標準モジュールのプロシージャなど)から見ればProperty Getプロシージャの値を取得するということとも言えます。

Property Getステートメントの構文

Property Getプロシージャは、Property Getステートメントで始まり、Property Endステートメントまでの間で構成されます。

Property Getステートメントの構文は次のとおりです。

構文

[Public|Private|Friend][Static] Property Get name ([arglist]) [As type]

※ []で囲んだものは省略可能です。[Public|Private|Friend]が省略された場合、Publicが既定です。

解説
指定項目説明
[Public]すべてのモジュールのすべてのプロシージャから参照できます。
[Private]宣言したモジュール内でのみ参照できます。
[Friend]クラスモジュールでのみ使用でき、プロジェクト全体から参照できます。
ただし、インスタンスのコントロールからは参照できません。
[Static]Property Getプロシージャ内のローカル変数が保持されます。
nameProperty Getプロシージャの名前(プロパティ名)を指定します。
[arglist]宣言したプロパティを呼び出すときの引数を指定します。
[As type]Property Getプロシージャが返す値のデータ型を指定します。
※ []で囲んだものは省略可能です。

arglist 引数の構文と指定項目

arglist の構文

[Optional] [ByVal|ByRef] [ParamArray] varname [( )] [As type] [=defaultvalue]

※ []で囲んだものは省略可能です。

arglist の指定項目
パーツ説明
[Optional]引数が必須でないことを示します。
[ByVal]値渡しで引数が渡されることを示します。
[ByRef]参照渡しで引数が渡されることを示します。既定は ByRef です。
[ParamArray]最後の引数としてのみ使用できます。
Variant 要素の省略可能(Optional)な配列であることを示します。
ParamArrayキーワードを使用すると、任意の数の引数を指定できます。
ByVal、ByRef、または Optional と併用することはできません。
varname引数を表す変数の名前です。
[As type]プロシージャに渡す引数のデータ型です。
[defaultvalue]任意の定数または定数式です。
Optional のパラメーターにのみ有効です。
Object 型の場合、明示的な既定値は Nothing のみ有効です。
※ []で囲んだものは省略可能です。

Property Getプロシージャの使用例

VBAのクラスモジュールでProperty Getプロシージャを使うと、オブジェクトのプロパティを取得することができます。

設定方法は、Property Get プロシージャ名() As 型名 のように入力します。Functionプロシージャと同じように、プロシージャ名に戻り値が取得されます。

次のコードは、クラスモジュールでProperty Getプロシージャを使った簡単な例です。

Public Name As String
Public Age As Integer
Public Kind As String
'情報を取得して「Info」にまとめる
Property Get Info() As String
  Info = Name & "(" & Age & "歳)" & Kind
End Property

標準モジュールのコードがこちらです。

Sub GetTest()
  Dim Pet As Class1 'Class1がクラスモジュール名
  Set Pet = New Class1 'Class1クラスをインスタンス化
  Pet.Name = "くるみ"
  Pet.Kind = "犬"
  Pet.Age = 12
  MsgBox Pet.Info 'メッセージボックスに情報を表示する
End Sub

【クラスモジュールのコード解説】

・1~3行目、Public変数でプロパティを設定しています

・5~7行目、Property Getプロシージャ設定

・6行目、プロシージャ名に戻り値を(各プロパティの値を整形して)代入してします。

【標準モジュールのコード解説】

・2~3行目で変数「Pet」にクラスをインスタンス化しています。
 次のように1行で書くこともできます。

Dim Pet As New Class1 ‘インスタンス化を1行で書く

・4~6行目は、各プロパティに値を設定しています。

・7行目で、Property Get Info() からの戻り値をメッセージボックスで表示しています。

【実行結果】

Property Get 実行結果のメッセージ

オブジェクトブラウザーで確認

オブジェクトブラウザーを開いて確認してみます。

オブジェクトブラウザーでProperty Getを確認

プロシージャ名の「Info」が「読み取り専用」のプロパティとして設定されていることが確認できます。

コードでは先頭に「Public」を付けていませんがパブリック(既定)になっていることも確認できます。

まとめ(おわりに)

以上、Excel VBAでクラスで Property Getプロシージャを使う方法でした。

くるみこ
くるみこ

クラスの6回目でした。

クラスで使うProperty Getプロシージャについては理解できましたか?
簡単な使用例ですが覚えておいてくださいね(^^)

Property Getプロシージャ単独で使う方法はわかりました。
クラスはまだまだ奥が深そうですね(^^;)

くるみこ
くるみこ

次回はProperty Letプロシージャについて勉強しましょう(^^)/

今回のProperty Getと組み合わせて使うので復習しておいてね。

わかりました。次回もよろしくお願いしますm(_ _)m

まとめと感想など

以上、Property Getプロシージャの使い方で覚えておいてほしい大事なことはこちらです。

クラスモジュールでProperty Getプロシージャを使うと、オブジェクトのプロパティを取得することができます。

【Property Getプロシージャの基本的な書き方】

Property Get プロシージャ名() As データ型
 プロシージャ名 = 戻り値
End Property


Property Getプロシージャ 単独の場合は、読み取り専用プロパティになります。

クラスについて学ぶことはまだまだたくさんあります。次回「Property Letプロシージャ」の解説も是非ご覧ください。

Excel VBA クラスについての記事一覧

Excel VBA クラスの作成・使い方について(Lv.1)
Excel VBA クラスのプロパティ設定について(Lv.2)
Excel VBA クラスにメソッドを設定する方法(Lv.3)
Excel VBA クラスをインスタンス化する方法(Lv.4)
Excel VBA クラス Propertyプロシージャ(Lv.5)
Excel VBA クラス Property Getプロシージャ(Lv.6)
Excel VBA クラス Property Letプロシージャ(Lv.7)
Excel VBA クラス Property Setプロシージャ(Lv.8)
Excel VBA シートの表データからクラスを作成 (Lv.9)
Excel VBA クラス インスタンスをコレクション化(Lv.10)
Excel VBA クラス コンストラクタとデストラクタ(Lv.11)
Excel VBA クラス コンストラクタを利用する方法(Lv.12)
Excel VBA クラス コレクションの要素取得方法(Lv.13)
Excel VBA クラス コレクション要素の追加と削除(Lv.14)
Excel VBA クラス コレクションの内容を書き出す(Lv.15)
Excel VBA クラス UserFormで機能を操作する(Lv.16)
Excel VBA クラス コレクションの最大要素数について(Lv.17)

★★★ ランキング参加中! クリックしてね(^^)/ ★★★

スポンサーリンク

過去記事のサンプルファイルをダウンロードできます

この記事のサンプル登録はありません。記事内のコードをご利用ください。

過去の記事で使用したサンプルファイルがダウンロードできるページを設置しています
こちら(このリンク先)からご利用ください