• 締切済み

Outlook2003のVBAを使用して、アカウント情報の名前、電子メールを変更する事は出来ませんか?

自分が持っている電子メールが2種類あって、1つはちゃんとメールサーバからメールを受信できるアドレスと、 もう1つは転送用のアドレスで名前だけで実体の無いアドレスがあります。 そのため、後者のアドレスで送信したい場合に前者のメールサーバを利用して、 Outlookのツール⇒電子メールアカウント⇒でアカウント情報の名前、電子メールの部分を後者のものに置き換えて送信していました。 しかし、このやり方が手間が掛かるのと、元に戻し忘れたり等いろいろ不便でした。 そのため、OutlookのVBAのユーザーフォームを使用したりして簡単にアカウント情報を変更したりしたいのですが、 アカウント情報の名前、電子メールの情報を取得するVBAのオブジェクトが良く分かりませんでした。 ご存知の方が居られたら教えていただけませんでしょうか。 宜しくお願いします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

訂正補足: お分かりになっているとは思うのですが、 >Set MyMail = MyOl.CreateItem(0) MyOl は、Application のことで、Outlook VBAの中では、 Application.CreateItem(0) に置き換えてください。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 正直なところ、Outlook VBAは、ユーザー環境の違いなど確認できなくて、コードを提示しても、ズバリでないとが多く、おまけに、セキュリティでブロックされることがあって、面倒なのです。多くのVB系のプログラマは、あまりOutlook.Application のコードの開発はしません。ですから、以下は、参考程度にしてください。 >Outlookのツール⇒電子メールアカウント⇒でアカウント情報の名前、 >電子メールの部分を後者のものに置き換えて送信していました。 (メールアカウントは、MP3などのことを指すとは思いますが、メールアドレスか、@ 以下の名称で、アカウントは取れると思います。) Sub Test1()   Dim MyNMSpace As NameSpace   Dim MyFolder As MAPIFolder   Dim i As Integer   Dim mName As String   Dim mAddress As String      Set MyNMSpace = Application.GetNamespace("MAPI")   'フォルダの名称は、実情に合わせてください。   Set MyFolder = MyNMSpace.Folders("個人用フォルダ").Folders("受信トレイ")   For i = 1 To MyFolder.Items.Count     Set obj = MyFolder.Items.Item(i)          With MyFolder.Items(i)       mName = .SentOnBehalfOfName       mAddress = .SenderEmailAddress     End With     If MsgBox("Name: " & mName & vbCrLf & _        "Mail Address: " & mAddress & String(2, vbCrLf) & _        "Next? ", vbYesNo) = vbNo Then Exit For   Next i End Sub 実際に、名前とアドレスを取得してもどうしようもないのですが、この後に、CreateItemを使います。 例: Set MyMail = MyOl.CreateItem(0) With MyMail  .To = "新メールアドレス"  .Subject = "タイトル" End With この後は、ヘルプで確認してください。