0

Excelシートのセル範囲を含むメールを送信するには、次のようにします。

電子メールは正しい件名と CC で送信されます。

そのセル範囲 (A:B) にはデータがありますが、本体には何も取得できません。空白のままです。

Sub SendEmail()

SendEmail Macro

Dim rng As Range
Dim OutApp As Object
Dim OutMail As Object

With Application
    .EnableEvents = False
    .ScreenUpdating = False
End With

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

On Error Resume Next
With OutMail
    .To = Sheets("Test1").Range("F2").Value
    .CC = Sheets("Test1").Range("F3").Value
    .BCC = ""
    .Subject = Sheets("Test1").Range("E1").Text
    .Body = Sheets("Test1").Range("A:B")
    .Send
End With
On Error GoTo 0

With Application
    .EnableEvents = True
    .ScreenUpdating = True
End With

Set OutMail = Nothing
Set OutApp = Nothing

End Sub
4

2 に答える 2

1

あなたが持っているエラートラップはエラーを隠しています:13 - Type Mismatch

.Body値をループして を構築する必要があります

ループするコードは次のとおりです。

Dim I As Long
Dim LastRowColA As Long
Dim BodyString As String

BodyString = ""
LastRowColA = Sheets("Test1").Range("A65536").End(xlUp).Row
For I = 1 To LastRowColA
    BodyString = BodyString & Sheets("Test1").Range("A" & I).Value & vbTab & Sheets("Test1").Range("B" & I).Value & vbCrLf
Next I
.Body = BodyString ' instead of = Sheets("Test1").Range("A:B")
于 2012-06-21T17:22:14.710 に答える
0

変更してみる

Sheets("Test1").Range("E1").Text 

Sheets("Test1").Range("E1").Value
于 2012-06-21T17:20:06.183 に答える