ホテルを選ぶとき、これだけは譲れない条件TOP3は?

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

このように作成したのですがうまくいきません。
エラーで「オブジェクトは、このプロパティまたはメソッドをサポートしていません」と出ます。参照設定も行ったのですが、どうしてでしょうか?どなたかお願いします。

A 回答 (3件)

こんにちは。



>.BodyFormat = olFormatPlain

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

こんにちは。

KenKen_SPさん、pa-man2goさん
いつも読ませていただいております。

>参照設定(Microsoft Outlook 9.0 Object Library ?)している
>のなら、改めて CreateObject する必要はありません。

たぶん、pa-man2goさんは、どこかのサンプルコードを見ておつくりなったものだと思います。

時々、他でも、参照設定をしながら、CreateObjectを使うケースを見かけるのですが、これは特別なもので、確か、Outlookは、マルチユース で、他のExcelやWordのシングル・ユースのアプリケーションのオートメーション・オブジェクトと違い、CreatObjectでオブジェクトを作っても、ホストアプリケーションを指すために、こういうことをするのではないかと思うのです。

これは、MSDNでも紹介されていたかと思います。
    • good
    • 0

こんにちは。

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
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!