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

 エクセルにて、毎日送信する定型メールを作成するマクロを作成しましたが、作成したメールに開封確認の要求を追加する設定がわかりません。エクセルのシートから要求の有無を指定させたいと考えています。もし、ご存じの方がいましたら、お知恵を拝借いただきたいです。

 なお、エクセルでマクロを起動し、Outlook.Applicationのオブジェクトでメールを作成して、シートの内容を各設定に組み込むという形をとっています。OSはWindowsXP、Office2007のOutlookでメールを作成しています。

 投稿は今回が初めてで不慣れな点がありますが、不備等をご指摘いただければ幸いです。宜しくお願い致します。

-----------------------以下マクロの内容------------------------

Option Explicit

Sub MAKE_MAIL_ITEM()

Dim Tool As Workbook
Dim Sheet As Worksheet

Dim myoApp As Object
Dim myoExp As Object
Dim myNameSpace As Object
Dim myFolder As Object

Dim objMAIL As Object
Dim SendDay As String

Set Tool = ThisWorkbook
Set Sheet = Tool.ActiveSheet

' Outlookアプリのオブジェクト設定
Set myoApp = CreateObject("Outlook.Application")

' Outlookの規定フォルダをオブジェクト設定
Set myNameSpace = myoApp.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(6)

' Outlookで表示されているフォルダのアクティブ設定
Set myoExp = myoApp.ActiveExplorer

' アクティブフォルダがなければOutlook起動(表示)
If myoExp Is Nothing Then
myFolder.display
End If

' メールアイテムの作成
Set objMAIL = myoApp.CreateItem(0)
' 日付の取り込み
SendDay = Year(Date) & "年" & Month(Date) & "月" & Day(Date) & "日"

' メールの表示
objMAIL.display
' 宛先設定
objMAIL.To = Sheet.Cells(2, 2)
' CC設定
objMAIL.CC = Sheet.Cells(3, 2)
' Subjectを設定([$#Today#$]があれば日付に変換)
objMAIL.Subject = Replace(Sheet.Cells(4, 2), "[$#Today#$]", SendDay)
' 本文の代入([$#Today#$]があれば日付に変換)
objMAIL.Body = Replace(Sheet.Cells(5, 2), "[$#Today#$]", SendDay)

End Sub

A 回答 (1件)

OutLookのVBAのHelpで検索したら



ReadReceiptRequested プロパティ
関連項目 対象 使用例 アプリケーション情報
True を設定すると、開封確認のメッセージが要求されます。このプロパティは、MAPI プロパティの PR_READ_RECEIPT_REQUESTED に対応しています。値の取得および設定が可能です。

expression.ReadReceiptRequested

expression 必ず指定します。MailItem オブジェクトを表すオブジェクト式を指定します。

のがありました。
objMAIL.ReadReceiptRequested=True
とかで試してみては如何でしょうか。
    • good
    • 2
この回答へのお礼

ご回答ありがとうございます。
どこかにあるだろうと思っていましたが、
いくら探してもなかったので助かりました。
これで開封確認設定の使い分けができるようになりました。
どうもありがとうございました。

お礼日時:2009/01/27 15:38

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