見出し画像

[VBS]Outlookでメールを送信したい


全体

' Outlookのインスタンスを生成 ---0
Set olApp = CreateObject("Outlook.Application")

' 送信アカウントを指定したい場合 ---1
For Each olAccount In olApp.Session.Accounts
  If olAccount.AccountType = 使用したいアカウントタイプ Then
    Set mi = olApp.CreateItem(olMailItem)
    Set mi.SendUsingAccount = olAccount
    Exit For
  End If
Next

' 送信するメールの内容を設定 ---2
With mi
  .To = "TOに設定したいメールアドレス"
  .CC = "CCに設定したいメールアドレス"
  .BCC = "BCCに設定したいメールアドレス"
  .Subject = "件名"
  .Body = "本文"
  .BodyFormat = メール形式
  .Display
End With

' メモリ開放 ---3
Set mi = Nothing
Set olApp = Nothing

部分

0)インスタンス生成

Outlookを動かすための準備。

' Outlookのインスタンスを生成 ---0
Set olApp = CreateObject("Outlook.Application")

1)送信アカウントを指定

下記に該当する場合に指定。該当しなければ不要。
・Outlookに複数のアカウントを設定している
・デフォルト以外のアカウントから送信したい  

使用したいアカウントタイプは数字で指定。
Exchangeアカウント:0
Imapアカウント:1
Pop3アカウント:2
その他の詳細は下記のリンク先を参照
OlAccountType 列挙 (Outlook) | Microsoft Learn

' 送信アカウントを指定 ---1
For Each olAccount In olApp.Session.Accounts
  If olAccount.AccountType = 使用したいアカウントタイプ Then
    Set mi = olApp.CreateItem(olMailItem)
    Set mi.SendUsingAccount = olAccount
    Exit For
  End If
Next

表示名での指定も可能。
Outlookでメールを開くと「表示名<メールアドレス>」とか単に表示名だけが書かれていたりするので、それを指定する。

' 送信アカウントを指定 ---1
For Each olAccount In olApp.Session.Accounts
  If olAccount.DisplayName = "使用したい表示名" Then
    Set mi = olApp.CreateItem(olMailItem)
    Set mi.SendUsingAccount = olAccount
    Exit For
  End If
Next

2)メール内容の設定

メールアドレスは「;」区切りで複数指定できる
CC,BCCは不要なら行ごと削除しちゃってOK

BodyFormatは数字で指定する。
テキスト形式=1
HTML形式=2
その他の詳細は下記のリンク先を参照  
OlBodyFormat 列挙 (Outlook) | Microsoft Learn

' 送信するメールの内容を設定 ---2
With mi
  .To = "TOに設定したいメールアドレス"
  .CC = "CCに設定したいメールアドレス"
  .BCC = "BCCに設定したいメールアドレス"
  .Subject = "件名"
  .Body = "本文"
  .BodyFormat = メール形式
  .Display
End With

3)メモリ開放

スクリプト終了時点で自動で解放されるけど一応書いておく。

' メモリ開放 ---3
Set mi = Nothing
Set olApp = Nothing

役に立つかもしれない情報   

アカウント オブジェクト (Outlook) | Microsoft Learn
Account.AccountType プロパティ (Outlook) | Microsoft Learn
列挙 (Outlook) | Microsoft Learn 

この記事が気に入ったらサポートをしてみませんか?