1
私は特定のクラスに次のコードのようなものを含んでいるOutlook 2003のVBAアプリケーションを持っている:一般的なVBAオブジェクト変数のItemPropertyをプロパティ名でどのように参照しますか?
Sub SaveAttributes(objMail as Outlook.MailItem)
Dim Field As String
Dim SaveForLater As String
Field = "Subject"
SaveForLater = objMail.ItemProperties(Field).Value
...
End Sub
私はなど、MeetingItemsを処理するためのアプリを延長したいのですが、私のようなコードを変更する考えそう:
Sub SaveAttributes(objGeneric as Object)
...
この修正は、ランタイムエラー91は、SaveForLaterを割り当てる行で、「変数または設定されていないブロックを持つオブジェクト」を生成します。
私はそうのようにその行を変更した場合、ランタイムエラーが消える:
SaveForLater = objGeneric.ItemProperties.Item("Subject").Value
しかし、これと同様に、私はその行を変更した場合、それが妙に再表示されます:
SaveForLater = objGeneric.ItemProperties.Item(Field).Value
は、なぜこれらの行は異なる動作をしますか?そして、汎用オブジェクトのアイテムプロパティを名前で参照する適切な方法は何ですか。名前は文字列変数ですか?
はあなたの「フィールド」変数の代わりに文字列のバリアントを使用してみましたか? –