• ベストアンサー

マクロがうまくいきません!

office2000を使用してます。 Excelでボタンをクリックするのみであらかじめ作られたメッセージがメールで送信されるマクロを作成中です。 Private Sub CommandButton2_Click() Dim OLApp As Outlook.Application Dim mItem As Outlook.MailItem Set OLApp = CreateObject("Outlook.Application.9") Set mItem = OLApp.CreateItem(olMailItem) With mItem .Recipients.Add("abcd@abcd.co.jp").Type = olTo .Subject = "明日の件" .BodyFormat = olFormatPlain .Body = "明日、久しぶりに会えるのを" & _ "楽しみにしています。" & vbCr & _ "それじゃ。" .Send End With Set mItem = Nothing Set OLApp = Nothing End Sub このように作成したのですがうまくいきません。 エラーで「オブジェクトは、このプロパティまたはメソッドをサポートしていません」と出ます。参照設定も行ったのですが、どうしてでしょうか?どなたかお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 >.BodyFormat = olFormatPlain これは、OL2002 のプロパティではありませんか? たぶん、Versionが違うと思います。それを無しにすれば、コードは通るはずです。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。KenKen_SPさん、pa-man2goさん いつも読ませていただいております。 >参照設定(Microsoft Outlook 9.0 Object Library ?)している >のなら、改めて CreateObject する必要はありません。 たぶん、pa-man2goさんは、どこかのサンプルコードを見ておつくりなったものだと思います。 時々、他でも、参照設定をしながら、CreateObjectを使うケースを見かけるのですが、これは特別なもので、確か、Outlookは、マルチユース で、他のExcelやWordのシングル・ユースのアプリケーションのオートメーション・オブジェクトと違い、CreatObjectでオブジェクトを作っても、ホストアプリケーションを指すために、こういうことをするのではないかと思うのです。 これは、MSDNでも紹介されていたかと思います。

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

こんにちは。KenKen_SP です。 BodyFormat は Outlook2002以降 のプロパティーです。Outlook2000 では使えません。 また、参照設定(Microsoft Outlook 9.0 Object Library ?)している のなら、改めて CreateObject する必要はありません。 Private Sub CommandButton2_Click()   Dim OLApp As Outlook.Application   Dim mItem As Outlook.MailItem   Set OLApp = New Outlook.Application   Set mItem = OLApp.CreateItem(olMailItem)   With mItem     .Recipients.Add("abcd@abcd.co.jp").Type = olTo     .Subject = "明日の件"     ’.BodyFormat = olFormatPlain ’Outlook2002 Later Only     .Body = "明日、久しぶりに会えるのを" & _       "楽しみにしています。" & vbCr & _       "それじゃ。"     .Send   End With   Set mItem = Nothing   Set OLApp = Nothing End Sub

関連するQ&A