Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2013)
VBAで送信メールアドレスを変更する
投稿日時: 21/09/24 14:42:07
投稿者: TI

ExcelVBAよりメール送信をしたいと考えています。
メールアドレスがOutlookに複数設定してあるので
指定したアドレスを送信メールアドレスに設定を
したいと考えています。
  
Outlookの参照設定をした場合は、希望通りの
動作となったのですが、参照設定をしない場合が
いろいろと試しましたが、デフォルトの送信メール
アドレスがセットされてしまいます。
  
参照設定をせずに、送信メールアドレスを変更する
方法はないものでしょうか。
  
こちらだとデフォルトのメールアドレスが送信元メールアドレスに
セットされる(Outlookの参照設定をしない場合)
  
Dim objmail As Object
Dim ol As Object
Dim objAccount As Object
Dim oMailFrom as string
  
    Set ol = CreateObject("Outlook.Application")
    Set objmail = ol.CreateItem(0)
    oMailFrom = test@xxx.ne.jp
  
    Set objAccount = ol.Session.Accounts.Item(oMailFrom)
     
    objMail.SendUsingAccount = objAccount
  
Outlookの参照設定をして、以下のように記述をすると
指定したアドレスが送信元メールアドレスにセットされる
  
Dim ol As New Outlook.Application
Dim objMail As Outlook.MailItem
Dim objAccount As Outlook.Account
Dim oMailFrom as string
  
    Set objMail = ol.CreateItem(olMailItem)
    oMailFrom = test@xxx.ne.jp
    Set objAccount = ol.Session.Accounts.Item(oMailFrom)
    objMail.SendUsingAccount = objAccount

回答
投稿日時: 21/09/25 21:20:18
投稿者: Nao

こんにちは。

TI さんの引用:
Dim objmail As Object
Dim ol As Object
Dim objAccount As Object
Dim oMailFrom as string
  
    Set ol = CreateObject("Outlook.Application")
    Set objmail = ol.CreateItem(0)
    oMailFrom = test@xxx.ne.jp
  
    Set objAccount = ol.Session.Accounts.Item(oMailFrom)
     
    objMail.SendUsingAccount = objAccount

 
Dim objmail As Object
Dim ol As Object
Dim objAccount As Object
Dim oMailFrom as string
  
    Set ol = CreateObject("Outlook.Application")
    Set objmail = ol.CreateItem(0)
    oMailFrom = "test@xxx.ne.jp"
  
    Set objAccount = ol.Session.Accounts.Item(oMailFrom)
     
    Set objMail.SendUsingAccount = objAccount
 
に変更するとどうでしょうか?
 
 

投稿日時: 21/09/26 20:43:59
投稿者: TI

ご回答ありがとうございます。
 
Setを追加したところ、参照設定なしでも希望の動作を
するようになりました。
 
ありがとうございます。