ここから本文です

Excel2013 VBAの質問です。 以下のようなモジュールがあります。 まず、Cls1の添...

hal********さん

2018/10/1419:08:00

Excel2013 VBAの質問です。
以下のようなモジュールがあります。
まず、Cls1の添え字、Cls2の添え字、Class1のRに渡す引数は、常にセットで同じ値という前提です。

おかしな質問かもしれないですが、Class1側でcls1の添え字を取得することが出来れば、RやRを計算に使用するSには引数を渡さずに済むと思っているのですが、そんなことは可能でしょうか。
iをパブリックにする選択肢は無しでお願いします。
なお、モジュールはあくまでも例示用のサンプルです。

'-----------------------------------------------
'クラスモジュール:Class1

Option Explicit

Public Val As Long

Public Function R(i As Long) As Long
R = Val + cls2(i).Val
End Function

Public Function S(i As Long) As Long
S = Val * R(i)
End Function


'-----------------------------------------------
'クラスモジュール:Class2

Option Explicit

Public Val As Long


'-----------------------------------------------
'標準モジュール

Option Explicit

Public cls1() As Class1
Public cls2() As Class2

Sub test()

Dim i As Long, j As Long

ReDim cls1(1)
ReDim cls2(1)

For i = 0 To 1
Set cls1(i) = New Class1
Set cls2(i) = New Class2
Next

For i = 0 To 1
cls1(i).Val = j + 1
cls2(i).Val = j + 2
j = j + 10
Next

For i = 0 To 1
Debug.Print cls1(i).R(i)
Debug.Print cls1(i).S(i)
Next

For i = 0 To 1
Set cls1(i) = Nothing
Set cls2(i) = Nothing
Next

End Sub

閲覧数:
42
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

kxk********さん

2018/10/1419:31:12

Class1のインスタンスに、Class2のインスタンス参照を渡しておくのが、普通のやり方だと思います。
Class1のインスタンスとClass2のインスタンスが1対1で対応しないケースがあるなら別ですが。

この質問は投票によってベストアンサーに選ばれました!

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる