アプリ版:「スタンプのみでお礼する」機能のリリースについて

(標準モジュール)
Option Explicit
Sub test()
Dim Class As Class1
Set Class = New Class1
Class.Obj = 1000
Set Class = Nothing
Set Class = New Class1
Range("a1").Value = Class.Obj
Set Class = Nothing
End Sub
(クラスモジュールClass1)
Option Explicit
Private a As Integer
Public Property Get Obj() As Integer
Obj = 2000
End Property
Public Property Let Obj(ByVal NewNumber As Integer)
a = NewNumber
End Property

上のマクロではやり取り1変数になってますがこれを配列に変えたいのですがどうすればいいでしょうか?

A 回答 (1件)

 


ふつうの配列を扱うときと同じように、
クラス用の配列変数を確保するだけです。

  標準モジュール
'--------------------------------------------------
Sub test()

 Dim i As Integer

 Dim Class(3) As Class1 '●クラスの配列変数を確保

   For i = 1 To 3
     Set Class(i) = New Class1
   Next i

   For i = 1 To 3
     Class(i).Obj = i * 1000
   Next i

   For i = 1 To 3
     Range("A1").Offset(i).Value = Class(i).Obj
   Next i

End Sub
'---------------------------------------------------

   クラス
'--------------------------------------------------
  Private a As Integer

  Public Property Get Obj() As Integer
    Obj = a
  End Property

  Public Property Let Obj(ByVal NewNumber As Integer)
    a = NewNumber
  End Property
'----------------------------------------------

お分かりでしょうが、質問者のコードでは、
Property Getで Obj = 2000 となってるので常に、2000が返ってきます。
で、そこはちょこっと変更してあります。
 
    • good
    • 0
この回答へのお礼

普通にクラスを配列にすればいいんですね
ありがとうございます。

お礼日時:2007/11/09 05:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!