アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2010です。
エクセルからVBAでアウトルックメールを作成するのですが、差出人を自分ではなく部門名のアドレスにしたいのです。
手動ではなんなく差出人を変更できるのですが、VBAでの方法がわかりません。
ネット検索してみると、
SendUsingAccount = Session.Accounts("アカウント名")
でできるようなのですが、アカウント名がよくわかりません。
アカウント名に、手動で差出人を変更する際に「名前の選択」で指定する部門の名前や部門のアドレスなどを入れてみましたがオブジェクトが必要とのエラーになってしまいます。
どうすればよいのでしょうか?

Sub TEST001()
Dim oApp As Object
Dim objMAIL As Object
Dim strMOJI(1) As String
On Error Resume Next
Set oApp = GetObject(, "Outlook.Application")
On Error GoTo 0
If oApp Is Nothing Then
Set oApp = CreateObject("Outlook.Application")
End If
Set objMAIL = oApp.CreateItem(0)
strMOJI(0) = "こんにちは!" & vbCrLf & _
"差出人変更のテストです。。" & vbCrLf & _
"よろしくおねがいします。" & vbCrLf
strMOJI(1) = vbCrLf & _
"以上です。" & vbCrLf & _
"ABC株式会社" & vbCrLf & _
"emaxemax"
objMAIL.To = ""
objMAIL.CC = "xxxx@xxx.co.jp"
objMAIL.Subject = "テスト"
objMAIL.Body = strMOJI(0) & strMOJI(1)
' objMAIL.SendUsingAccount = Session.Accounts("ABC Gyomubu")'ここでエラー
objMAIL.Display
End Sub

A 回答 (1件)

Outlookは2010ですよね。



まず始めにおことわりいたしますが、当方の環境がOffice2007でり、また質問者様の状況をきちんと把握できていないと思われ、さらに何より当方のOutlookの知識はかなり貧弱です。そのため、解決する可能性がある方法を書かせてはいただきますが、不適切な回答かもしれません。


最初に考えられるのは、MailItemのSenderプロパティに差出人の情報を設定することで達成できると思います。
で、何を設定するかですが、下記のリンクを見るとAddressEntryオブジェクトであるとのこと。
http://msdn.microsoft.com/ja-jp/library/office/m …
じゃあAddressEntryはどこにあるかというと、Session→AddresLists→AddressList→AddressEntries→AddressEntryのようです。
http://msdn.microsoft.com/en-us/library/office/a …
http://msdn.microsoft.com/en-us/library/office/a …
Sessionオブジェクトにアクセスできる場所はいくつかありますが、とりあえず上記リンク先の例に従いOutlook.Application.Sessionを使ってみます。
(MailItemオブジェクトの直下にもSessionがあるので、もしかしたらこちらの方がいいかもしれません)
ということで前置きが長くなりましたが、たとえば差出人にしたいアドレスがOutlookの連絡先の「ABC Gyomubu」にあるとして、以下のようにしてみてはいかがでしょうか。

objMAIL.Sender = oApp.Session.AddressLists("連絡先").AddressEntries("ABC Gyomubu")

ただし、SenderプロパティはOutlook2010で新設されたものとのことです。
http://msdn.microsoft.com/ja-jp/library/office/e …
そのため、当方の環境では検証できません。


もう1つ可能性のある方法としては、MailItemオブジェクトのSentOnBehalfOfNameプロパティに文字列で差出人を設定する、というのがあるようです。

objMAIL.SentOnBehalfOfName = "ABC Gyomubu"

としてみてはいかがでしょう。(表示名よりメールアドレスそのものの方が確実かもしれません)
当方の環境では、Outlook2007で差出人欄に入るところまでは確認できたのですが、システムの都合でこの状態では送信できないため検証できていません。


以前、似たような質問に回答したのですが、どうやらその時は的外れな回答をしてしまったようです。
http://oshiete.goo.ne.jp/qa/8095478.html
というのは、質問内容はSenderプロパティに関するものだったのですが、SendUsingAccountについて答えてしまったからです。
もしもメール送受信のためのアカウントを複数設定していてそれを選択するということなら、そこに回答したようにSendUsingAccountを使えばいいと思います。
でもおそらくそういう問題ではないですよね。もしもこれをご覧になっていたなら、的外れな情報で申し訳ありません。


うまくいかない場合や不明な点がある場合など、何かありましたら補足いただければ再検討いたします。

この回答への補足

実際に送信もできました。
ありがとうございます。

補足日時:2013/10/28 20:07
    • good
    • 4
この回答へのお礼

SentOnBehalfOfNameプロパティ!

代理送信ですね。
こんなのがあったんですね、ありがとうございます。
ここに直接文字列でアドレスを指定したところ完璧に送信可能なメールができました。
ありがとうございます!!

お礼日時:2013/10/28 20:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A