ExcelシートをPDFとして保存し、エグゼクティブチームに電子メールを送信するマクロを正常に実行しています。エラーランタイムエラー '1004'文書が保存されません。
私は新しいシートを作成してそれを再設計し、それに応じてコードを更新しました。
Sub NewDashboardPDF()
' New Executive Daily Dashboard Macro
'
' Create and email the Executive TEAM the Daily Dashboard.
Dim strPath As String, strFName As String
Dim OutApp As Object, OutMail As Object
' Create and email the Daily Report to Mitch/Dave/John/Jason ALL PAGES.
Sheets("Executive Dashboard").Select
strPath = Environ$("temp") & "\" 'Or any other path, but include trailing "\"
strFName = Worksheets("Executive Dashboard").Range("V2").Value & " " & Format(Date, "yyyymmdd") & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
strPath & strFName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'Set up outlook
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
'Create message
On Error Resume Next
With OutMail
.to = [email protected]
.CC = "[email protected]"
.BCC = ""
.Subject = "Daily Dashboard"
.Body = "All, " & vbNewLine & vbNewLine & _
"Please see the attached daily dashboard." & vbNewLine & _
"If you have any questions or concerns, please do not hesitate to contact me." & vbNewLine & _
"Steve"
.Attachments.Add strPath & strFName
.Display
.Send
End With
'Delete any temp files created
Kill strPath & strFName
On Error GoTo 0
End Sub
エラーメッセージは「実行時エラー '1004」ドキュメントが保存されていません。ドキュメントが開いているか、エラーが発生している可能性があります。
デバッグすると、次のセクションが最後の行の矢印で強調表示されます。
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
strPath & strFName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
古いシートへのすべての参照が新しいものに更新されたので、それは問題ではないと思います。
別の言い方をすれば、私はデフォルトの電子メール署名を含めてこのメールを作成する方法を知りたいと思います。現在のところ、それはプレーンテキストの電子メールとしてフォーマットされています。
Excelのオフィスを変更しても、コードに何も問題はありません。 – 0m3r
'strPath'と' strFName'の値は、クラッシュ時にどのようになっていましたか?あなたが期待していたものでしたか? – YowE3K
非常に基本的なソースコードコントロールでさえ助けになる状況です。あなたのコードがどのようなものだったのか記録していて、それがうまくいかないときは、推測よりも何が違うのかを正確に見ることができます。マシンにsccを持っていない場合は、github onlineまたはgistを使用して変更の差分を与えることができます。 –