単語の文書コンテンツをコピーして電子メールに貼り付けるマクロがあります。その後、Excelから電子メールアドレスと名前を取得し、各自に添付ファイル付きの電子メールを送信します。 (本質的にメールマージ)VBAでOutlook電子メールを送信すると、コロン ":"が付いた件名が空白になります。
問題は、件名にコロン「:」が付いていると、電子メールメッセージが空白として送信されます。電子メールを保存したり、表示したりすると、これは起こりません。すぐに送信される場合にのみ発生します。ここで
コードです:chrです()コマンドを使用するには
Option Explicit
Sub SendInitialEmail()
'directory of email body
Dim dirEmailBody As String
' Directory of email template
dirEmailBody = _
"C:\Users\me\Documents\Email Body.docx"
Dim wordApp As Word.Application
Dim docEmail As Document
' Opens email template and copies it
Set wordApp = New Word.Application
Set docEmail = wordApp.Documents.Open(dirEmailBody)
docEmail.Content.Copy
Dim outEdit As Document
Dim outApp As Outlook.Application
Set outApp = New Outlook.Application
Dim outMail As MailItem
' The names/emails to send too
Dim sendName As String, sendEmail As String, _
ccEmail As String, siteName As String
Dim row As Integer
' Was only testing on one row, but generally this pulls from
'a sheet of names and email addresses to send an email with attachments too.
For row = 1 to 1
sendName = actSheet.Cells(row, 1)
sendEmail = actSheet.Cells(row, 2)
ccEmail = actSheet.Cells(row, 3)
siteName = actSheet.Cells(row, 4)
Set outMail = outApp.CreateItem(olMailItem)
With outMail
.SendUsingAccount = outApp.Session.Accounts.Item(1)
.To = "myemailaddress to [email protected]"
.BodyFormat = olFormatHTML
.subject = _
"Is the error cause of a colon: Email test to me"
' it was
Set outEdit = .GetInspector.WordEditor
outEdit.Content.Paste
outEdit.Range(0).InsertBefore ("Dear " & sendName & "," & vbNewLine)
' If I do display, it shows up correctly.
' If I display then send it is fine (workaround)
.Send
End With
Next row
docEmail.Close
wordApp.Quit
End Sub
それがうまくいった!その後、問題は何でしたか?また、どのようにフォーマットを取り戻すことができますか? – Falthazar
なぜそれが壊れているのか100%ではありません。 outEdit.contentのオブジェクトを調べると、Outlookがクラッシュします。だから、ドキュメントオブジェクトという言葉を調べ、.contents.textがうまくいくことを発見しました。私も.formattedtextを見た。私はまだそれを試していない。私があなたの場合は、 'Set docEmail = wordApp.Documents.Open(dirEmailBody)'の後にブレークポイントを作成します。コードを実行します。それから停止するときは、「表示」メニューでローカルウィンドウを開きます。 docEmailオブジェクトを展開し、必要な属性を探します。 –