Last updated on
Excel VBAでSendUsingAccountがエラーになる、アカウントが切り替わらない問題の対処法
Excel VBAでメール送信をするプログラムを作成するとき、SendUsingAccountに送信元のメールアドレスを設定することで、アカウントの切り替えをすることができます。
検索すると以下のコードで動作するということで、実際にある程度動作します。
ただ、共有メールボックスを使っていたりすると、このコードでは、アカウントが切り替わらず、メインのアカウントでメールが作成されてしまうことがあります。
Dim objOutlook As Object
Dim objMail As Object
objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
.SendUsingAccount = objOutlook.Session.Accounts.Item("\[メールアドレス\]")
.Subject = "\[件名\]"
.Body = "\[本文\]"
.To = "\[送信先メールアドレス\]"
.Attachments.Add (\[添付ファイルのパス\])
'メールを作成して表示する場合 .Display
'下書きに保存する場合 .Close (0)
'そのまま送信する場合 .Send
End With
SentOnBehalfOfName プロパティを使ってみたところ、エラーが発生したので
共有メールボックスのアクセス権の問題かと思い、一旦諦めかけましたが、
「SendUsingAccount VBA not working」というキーワードで検索していたところ、
以下のように書き換えれば動作することがわかりました。
.SendUsingAccount = objOutlook.Session.Accounts.Item(“[メールアドレス]”) ↓ Set .SendUsingAccount = objOutlook.Session.Accounts.Item(“[メールアドレス]”)