※参照設定せずに遅延バインディングする場合のコードはこのページの一番下にあります。
■下準備:参照設定をしておく
■新規メールを作成して送信
・下書きフォルダに保存する場合
MailItem.Display → MailItem.Save
・直接送信する場合
MailItem.Display → MailItem.Send
Option Explicit Sub CreateNewMail() '----------------------------------- '新規メールを作成して送信する '----------------------------------- Dim olApp As Outlook.Application Dim MailItem As Outlook.MailItem 'Outlookを起動する Set olApp = New Outlook.Application 'メールを作成する Set MailItem = olApp.CreateItem(olMailItem) With MailItem '送信先TOを指定する .Recipients.Add("Yamada@gmai.com").Type = 1 '送信先CCを指定する .Recipients.Add("Suzuki@gmai.com").Type = 2 .Subject = "ご報告" '本文を指定する .Body = "山田様" & vbCrLf _ & "お世話になっております。" & "先日のご報告を" _ & "させていただきます""" '添付ファイルを指定する .Attachments.Add ThisWorkbook.Path & "\Sample.xlsx" .Send 'テスト用(送信せずディスプレイ表示のみ) 'ひとつ上の「.Send」をコメントアウトしてテストする際に使用する ' .Display End With End Sub
■メール情報を取得する
Sub GetMailItem() '------------------------------------------------------ 'ダイアログで取得したフォルダ内のメール情報を取得する '------------------------------------------------------ Dim olApp As Outlook.Application Dim olNamespase As Outlook.Namespace Dim olFolder As Outlook.Folder Dim i As Long 'Outlookmを起動する Set olApp = New Outlook.Application Set olNamespase = olApp.GetNamespace("MAPI") '対象フォルダを選択 Set olFolder = olNamespase.PickFolder '全てのアイテムに対して処理を行う For i = 1 To olFolder.Item.Count 'メールアイテムの場合の処理 If olFolder.Items(i).Class = olMail Then Debug.Print olFolder.Items(i).SenderName '送信者名 Debug.Print olFolder.Items(i).Subject '件名 Debug.Print olFolder.Items(i).ReceivedTime '受信日時 Debug.Print olFolder.Items(i).Body '本文 Debug.Print "-------------------------------------" End If Next End Sub
■参照設定せず遅延バインディングで新規メール送信する場合
Sub CreateNewMail() '----------------------------------- '新規メールを作成して送信する '----------------------------------- Dim olApp As Object Dim MailItem As Object 'Outlookを起動する Set olApp = CreateObject("Outlook.Application") 'メールを作成する Set MailItem = olApp.CreateItem(0) With MailItem '送信先を指定する .Recipients.Add("Yamada@gmai.com").Type = 1 '送信先CCを指定する .Recipients.Add("Suzuki@gmai.com").Type = 2 .Subject = "申請書類回付のおしらせ" '本文を指定する .Body = "山田様" & vbCrLf _ & "お世話になっております。" & "先日のご報告を" _ & "させていただきます""" '添付ファイルを指定する .Attachments.Add ThisWorkbook.Path & "\Sample.xlsx" .Send 'テスト用(送信せずディスプレイ表示のみ) 'ひとつ上の「.Send」をコメントアウトしてテストする際に使用する ' .Display End With End Sub
※定数の値などの参考URL
Outlookフォーム作成/VBSプログラミング:アイテムの種類(定数/値) 一覧 - Outlookサポートナビ!