2016-07-06 8 views
0

現在Excelのマクロを開発して、電子メールに添付された選択範囲を送信しようとしています。 vbaについての私の知識がゼロであるため、私はインターネットを閲覧しており、このスクリプトをまとめておくことができました。現在、私はファイルを添付しようとしているときに必要なオブジェクトのエラーを取得します。オブジェクトが必要です電子メールにファイルを添付する際のエラー

皆さんからお寄せいただけるご支援とご意見をお待ちしております。

Sub AttachActiveSheetPDF() 
Dim IsCreated As Boolean 
Dim i As Long 
Dim PdfFile As String, Title As String 
Dim OutlApp As Object 

PdfFile = ActiveWorkbook.FullName 
i = InStrRev(PdfFile, ".") 
If i > 1 Then PdfFile = Left(PdfFile, i - 1) 
PdfFile = PdfFile & "_" & ActiveSheet.Name & ".pdf" 

With ActiveSheet.PageSetup 
.Orientation = xlPortrait 
.PrintArea = "$A$1:$P$84" 
.Zoom = False 
.FitToPagesTall = False 
.FitToPagesWide = 1 
End With 
With ActiveSheet 
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PdfFile,  Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False,  OpenAfterPublish:=False 
End With 

On Error Resume Next 
Set OutlApp = GetObject(, "Outlook.Application") 
If Err Then 
Set OutlApp = CreateObject("Outlook.Application") 
IsCreated = True 
End If 
OutlApp.Visible = True 
On Error GoTo 0 

Dim Ebody As String 
Ebody = "<p>Buenas Dias,</p> <p>Adjunto es el documento.</p>" 

With OutlApp.CreateItem(0) 

.Subject = Quotation_de_Aerolinea 
.To = "..." 
.CC = "..." 
.HTMLBody = Ebody 
myAttachments.Add (PdfFile) 

On Error Resume Next 
.Display 
Application.Visible = True 
If Err Then 
    MsgBox "E-mail was not sent", vbExclamation 
Else 
    MsgBox "E-mail successfully sent", vbInformation 
End If 
On Error GoTo 0 
End With 

End Sub 

事前

+2

'myAttachments'はここで何ですか?あなたは '.Attachments.Add PdfFile'を意味しますか? –

+0

私はmyattachmentsがファイルを添付するコマンドで、pdfのファイル名はこの場合pdffileだと思った – Nils

+0

なぜPDF名に完全なブック名が含まれているのですか?あなたは 'ActiveWorkbook.Path'を意味するかもしれません。 – Parfait

答えて

1

myAttachmentsのおかげでは、Outlookのコレクションではありません - そのようなルックスは、いくつかの他のコードから来ている可能性があります。

試してみてください。

.Attachments.Add PdfFile 
+0

これは今の間違いだった。大いに感謝する – Nils

関連する問題