2016-07-16 4 views
0

BitArrayというカスタムクラスを作成しました。 BitArrayのメソッドの1つであるAppendは、引数としてBitArrayをとります。ここではAppendメソッドの宣言は、次のとおりです。VBA(Office 2010)カスタムクラスメソッド「オブジェクトがこのプロパティまたはメソッドをサポートしていません」エラー

Dim baBits1 As BitArray 
Dim baBits2 As BitArray 
Set baBits1 = New BitArray 
Set baBits2 = New BitArray 
baBits1.Append (baBits2) 

:私のコードで

Public Function Append(ByVal newBits As BitArray) 

(私も効果なしにnewBitsのByRefを渡す試してみた)

、私はこのような何かを持っています最後の行は438エラーをスローします。奇妙なことに、Appendのコードを引き出して直接実行すると、うまく動作します。したがって、Append内のロジックや構文には本質的に間違ったものはありません。 VBAは、独自のクラスを引数として受け入れるクラスメソッドを好きではありませんか?

+3

正しい呼び出しは 'baBits1.Append baBits2'か' Call baBits1.Append(baBits2) 'です。これらは機能しますか? – Andre

答えて

0

VBAは、独自のクラスを引数として受け入れるクラスメソッドには問題ありません。 ByValとByRefは、オブジェクト変数を渡すときに違いはありません。ByRefに関係なく常に渡されます。

ブレークポイントを設定してから、F8キーを使用して行ごとにコードをステップ実行し、エラーの原因を確認してください。

関連する問題