0

重複の可能性:
VBA 経由で電子メールを
送信する Exchange 環境の Excel から電子メールを送信する

私はこれまでのところこれを持っています

Dim objOutl
Set objOutl = CreateObject("Outlook.Application")
Set objMailItem = objOutl.CreateItem(olMailItem)
objMailItem.Display
strEmailAddr  = "me.me@you.com"
objMailItem.Recipients.Add strEmailAddr
objMailItem.Body = "Hi"
objMailItem.Attachments.Add "access.xml"
Set objMailItem = nothing
Set objOutl = nothing

できます!ただし、Outlook がインストールされているコンピューターのみ。これを Windows Live を搭載したコンピュータで動作させるにはどうすればよいですか?

4

2 に答える 2

1

Windows Live メール (WLM) は VBA による自動化をサポートしていないため、Outlook ほど簡単ではありません。

他のオプションについて[vba] e-mailは、検索フィールドに入力してみてください。かなりの数のヒットが得られます。関連するサンプルは次のとおりです: Hithithit。これらのいくつかは、CDO を使用してメールを送信するための実用的なコードを提供します。私があなただったら、これは私がすることです。

WLM を使用する必要がある場合は、WLMをサポートするこの Excel 用メール アドインを参照してください。

そうしないと、非常に制限された VBA のSendMail方法を使用することになります。

  • シート、ワークブック、グラフ、範囲などの Excel オブジェクトのみを送信できます。
  • メール本文に文字が書けない
  • CC または BCC フィールドは使用できません
  • ファイルを添付できません (メソッドを呼び出す Excel オブジェクト以外)

コード例:

Dim wb As Workbook
Set wb = ActiveWorkbook
wb.SendMail "me.me@you.com", _
            "Insert subject here"

その他の例については、http: //www.rondebruin.nl/sendmail.htmを参照してください。

于 2012-09-05T06:59:02.883 に答える
0

次はアクセス(vba)で動作すると仮定します(コードは私のものではありません):

Public Function send_email()

Set cdomsg = CreateObject("CDO.message")
With cdomsg.Configuration.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'NTLM method
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/smptserverport") = 587
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") =   "mygmail@gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "mypassword"
.Update
End With
' build email parts With cdomsg
.To = "somebody@somedomain.com"
.From = "mygmail@gmail.com"
.Subject = "the email subject"
.TextBody = "the full message body goes here. you may want to create a variable to hold  the text"
.Send
End With
Set cdomsg = Nothing
End Function

他のメール サービスを使用する場合は、コードを少し変更する必要があります。

その他のオプション - msdn リファレンス

それが役に立てば幸い。

于 2012-09-04T19:02:04.220 に答える