理工系研究者のための Mac OS X, Windows, Linux メモ
 
ホーム >> Windows関連 >> VBA(共通)
このエントリーをはてなブックマークに追加

VBA(共通)

  1. 関数の引数に配列を指定するには
  2. プロパティを作成するには
  3. クラスのプロパティに他のクラスのオブジェクトを指定するには

関数の引数に配列を指定するには

呼び出される関数側の記述
Function myFunc(ByRef arg() As Integer) As Integer
  myFunc = 1
End Function
呼び出す側の記述
Dim hoge As Integer
Dim abc(10) As Integer
hoge = myFunc(abc)

プロパティを作成するには

プロパティは、クラスから生成されたオブジェクトの状態や値を保持している。 プロパティはオブジェクトの状態にアクセスするためのAPI。

メンバ変数をPublicにすると、一見プロパティのように扱えるが、プロパティの変化に対応して他の状態を変化させたり、プロパティに設定しようとしている値が有効かどうかを事前に判定することはできない。 プロパティを使えば、その値の設定すると同時に、副作用を与えることができる。

プロパティは次のように作成する。

'=[AnimalCls]============================

Private thisName As String

'値を書き込む時に呼び出される 
Public Property Let name(ByVal str As String)
  thisName = str
End Property

'値を読み込む時に呼び出される
Public Property Get name() As String
  name = thisName
End Property
下記のプログラムでは、AnimalClsというクラスからcatというオブジェクトを作成し、nameというプロパティにそのオブジェクトの名前を代入している。
'名前の設定
Dim cat As AnimalCls
cat.name = "たま"

'名前を読み込む
Dim hisName As String
hisName = cat.name
MsgBox "動物の名前は" & hisName & "です。"

クラスのプロパティに他のクラスのオブジェクトを指定するには

作成日:2011/1/13

VBAでは、オブジェクトをクラスのメンバーにできない。 例えば、

'AnimalCls
Dim mike As CatCls
は不可。

この場合は、オブジェクトをクラスのプロパティにすればよい。

'AnimalCls
Private myCat As New CatCls
 
Public Property Set cat(ByVal obj As CatCls)
  Set myCat = obj
End Property
 
Public Property Get cat() As CatCls
  Set cat = myCat
End Property