web-dev-qa-db-ja.com

ExcelVBAによってOutlookで新しいメッセージを開く

毎日私は毎日の報告を扱っています。これはかなり時間がかかりました。基本的に、昨日の売り上げと先週と先月の売り上げの簡単な比較を記載したメールを送信する必要があります。それはかなりうまく機能しています。これが完了すると、メッセージが新しいシートに貼り付けられ、それをコピーしてOutlookの新しい電子メールに貼り付ける必要があります。

Outlookで新しいメッセージを開くマクロを作成する可能性はありますか?テキストを挿入できるようになります。 Excelから直接送信するマクロを作成することはできますが、レポートの一部で数値を手動で確認する必要があるため、これは本当に必要なことではありません。

よろしくお願いします!

4
Petrik

私はこれを見つけました、そしてそれは完全に働いています!!!!

たぶんもう1つ、開いたドキュメントを添付ファイルとして添付する可能性はありますか?

Sub CustomMailMessage()
Dim OutApp As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Recipient
Dim Recipients As Recipients

  Set OutApp = CreateObject("Outlook.Application")
  Set objOutlookMsg = OutApp.CreateItem(olMailItem)

  Set Recipients = objOutlookMsg.Recipients
  Set objOutlookRecip = Recipients.Add("[email protected]")
  objOutlookRecip.Type = 1

  objOutlookMsg.SentOnBehalfOfName = "[email protected]"
  objOutlookMsg.Subject = "Testing this macro"
  objOutlookMsg.HTMLBody = "Testing this macro" & vbCrLf & vbCrLf
  'Resolve each Recipient's name.
  For Each objOutlookRecip In objOutlookMsg.Recipients
    objOutlookRecip.Resolve
  Next
  'objOutlookMsg.Send
  objOutlookMsg.Display

  Set OutApp = Nothing  
End Sub
6
Petrik

ActiveWorbookを添付ファイルとして追加するには:

  1. 特定の場所に保存します
  2. Use Attachments.Add1からの場所からファイルを追加します

コード

Sub CustomMailMessage()
Dim strFile As String
Dim OutApp As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Recipient
Dim Recipients As Recipients

  Set OutApp = CreateObject("Outlook.Application")
  Set objOutlookMsg = OutApp.CreateItem(olMailItem)

  strFile = "C:\temp\myfile.xlsx"
  ActiveWorkbook.SaveAs strFile

  Set Recipients = objOutlookMsg.Recipients
  Set objOutlookRecip = Recipients.Add("[email protected]")
  objOutlookRecip.Type = 1

  With objOutlookMsg
    .SentOnBehalfOfName = "[email protected]"
    .Subject = "Testing this macro"
    .HTMLBody = "Testing this macro" & vbCrLf & vbCrLf
    'Resolve each Recipient's name.
    For Each objOutlookRecip In objOutlookMsg.Recipients
      objOutlookRecip.Resolve
    Next
    .Attachments.Add strFile
    .display
  End With

  'objOutlookMsg.Send
  Set OutApp = Nothing
End Sub
7
brettdj

今はテストできませんが、次のようになります。

set o = createObject("Outlook.Application")
set m = o.CreateItem(olMailItem) ' replace it with 0 if you get error here
o.show ' or .Display - not sure

表示する前に、o.To、o.Subjectなどを設定できます。申し訳ありませんが、テストされていませんが、自宅のコンピューターにOutlookがありません。仕事でのみ使用しています。正しく覚えていれば明日チェックします。

4
avb