システム:Excel 2013; Windows 7 Pro x64Excel VBA - ワークシートのパブリックメンバーが利用できません
vbaコードのワークシートのパブリックメンバーにアクセスする際に奇妙な問題が発生しています。
ここに複製する最小限のコードを示します。
はシート1(一般)VBAコード
Public memberVar As Integer
MyModuleというのVBAコードが
Sub MySub()
MySub2 Sheet1
End Sub
Sub MySub2(sht As Worksheet)
Dim foo As Integer
foo = 1
sht.memberVar = foo
End Sub
私がイミディエイトウィンドウからMySub
を実行すると、私は次のエラーを取得する: 「コンパイルエラー:メソッドまたはデータメンバーが見つかりません "MySub2の3行目、参照先sht.memberVar
私が奇妙な部分は、sht.memberVar = foo
という行をコメントアウトし、ブレークポイントをfoo = 1
に設定し、ローカルウィンドウでsht
を検査すると、実際にはmemberVar
がオブジェクトのメンバーとしてリストされているということです。
だから何ですか?私はこれについて間違っていますか?宣言をMySub2(sht As Object)
に変更すると、エラーは発生しませんが、これはハックのように思えます。なぜなら、オブジェクトがどのような型であるべきかを私はすでに知っているからです。
ああ、面白いです。タイプとして特定のワークシートを使用するこのトリックは実際には機能します。ありがとう! – wgrant