プロが教えるわが家の防犯対策術!

エクセルの表を基に、VBAを使ってHTML形式の会議依頼を生成したいのですが、妙なところで躓いています。まるで会議依頼ではHTMLをサポートしないかのような・・・。

以下のソースの、「予定をHTML形式に」の objAppt.BodyFormat = 3 のところで止まってしまい、438 オブジェクトは、このプロパティまたはメソッドをサポートしていません。のエラーメッセージが表示されます・・・。

Microsoft Outlook 16.0 Object LibraryおよびMicrosoft Internet Controlsは参照しています。

よろしくお願いいたします。


----以下ソース----

Sub CreateMeeting_Click()

Dim olkApp 'As Outlook.Application
Dim objAppt 'As Outlook.AppointmentItem
Dim html1 As String
Dim tmp As String
Dim buf As String

' 会議出席依頼のもとになる予定アイテムを作成
Set olkApp = CreateObject("Outlook.Application")
Set objAppt = olkApp.CreateItem(1)

' 予定を会議に変更
objAppt.MeetingStatus = 1

' 予定をHTML形式に
objAppt.BodyFormat = 3

' 表からHTMLを生成するルーチン、ここは動いている様子。
Call CreateHtml1

html1 = ActiveWorkbook.Path & "\table.html"
Open html1 For Input As #2
Do Until EOF(2)
Line Input #2, tmp
buf = buf & tmp
Loop
Close #2

With objAppt
.Subject = ThisWorkbook.Worksheets(1).Cells(3, 2)

With objAppt.GetInspector.WordEditor.Windows(1).Selection
.HTMLBody = buf

End With

Application.CutCopyMode = False
End With

' 会議出席依頼を表示
objAppt.Recipients.ResolveAll
objAppt.Display

A 回答 (2件)

.BodyFormat = 3


→アイテムの形式をリッチテキスト形式に設定します。

Set NewItem = Application.CreateItem(0)
→新規メッセージを作成

NewItem.BodyFormat = 2
→メッセージ形式をHTML形式とする

NewItem.Display
→メッセージを表示
    • good
    • 0
この回答へのお礼

ありがとうございます。3はリッチテキストでしたね、すみません。
しかしやっぱり、.BodyFormat =2のところで
「438 オブジェクトは、このプロパティまたはメソッドをサポートしていません。」
と出てしまいます・・・

お礼日時:2019/09/04 11:26

Outlook は、一斉メールを送信するくらいで、あまり分かりませんが、


MailItemには、BodyFormatプロパティがあるのですが、
AppointmentItemには、BodyFormatプロパティが無いように思います。

https://docs.microsoft.com/ja-jp/office/vba/api/ …
    • good
    • 0

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