- ベストアンサー
Thunderbirdでファイル添付出来ません
Excel請求書から出力したPDFファイルをメールソフトのThunderbirdでメールに添付して送信したいのですが、 添付ファイルのパスが間違っているのか「***.pdfファイルが存在しないためメッセージに添付できませんでした。」とエラーになってしまいます。 PDFファイル出力は問題無く出来ており、メール自体は作成できるところまでは出来ているのですが、肝心のファイル添付が出来なくて困っております、どなたかお助け願えませんでしょうか。 ※PDFファイルの保存場所は任意に選択⇒ファイル名は顧客名で都度出力される形になってます。 Sub PDF出力メール送信テスト用() Dim fname As String Dim pdfname1 As String Dim pdfname2 As String Dim rtn As Long Dim wsh As Object If MsgBox("PDFをメール送信する場合はOK、送信しない、または間違ってこのボタンをクリックした場合はキャンセルをクリックしてください。", vbOKCancel) = vbCancel Then End End If 'pdfname1は会社名、pdfname2は部署名、両方足して『顧客名.pdf』になるようにしています pdfname1 = Range("a4").Text pdfname2 = Range("a5").Text '保存ファイル名及び保存場所の設定 fname = Application.GetSaveAsFilename("【御請求書】" & pdfname1 & " " & pdfname2 & " 御中", "PDFファイル,*.pdf") 'キャンセルボタン押下時 If fname = "False" Then Exit Sub 'ファイルの存在確認 If Dir(fname) <> "" Then rtn = MsgBox(fname & " が存在します。上書きしますか?", vbOKCancel + vbQuestion, "確認") 'キャンセルボタン押下時 If rtn = vbCancel Then Exit Sub End If '印刷順にシートを並び替え Worksheets("請求書").Move Before:=Worksheets("請求書ひな形") Worksheets("請求書").Select Worksheets("請求書ひな形").Select False Worksheets("請求書ひな形").Activate ' 請求書PDF出力 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fname MsgBox fname & " 出力完了" '元通りにシートを並び替え Worksheets("請求書ひな形").Move Before:=Worksheets("請求書") Worksheets("請求書ひな形").Select Dim sPath As String Dim mailTo As String Dim subject As String Dim preface As String Dim mailBody As String Dim attachPath As String sPath = """C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe"" -compose " '送信先アドレスはExcelのx1セルに反映 mailTo = Range("x1").Value subject = "御請求書の送付について" preface = pdfname1 & pdfname2 & " 御中" & vbNewLine & vbNewLine & "いつもお世話になります。" & vbNewLine & "御請求書をお送り致しますのでご確認下さい。" & vbNewLine & vbNewLine & "以上、宜しくお願い致します。" mailBody = preface '添付ファイルのパスはfnameではダメなんでしょうか? attachPath = fname Shell sPath & "to=" & mailTo & ",subject=" & subject & ",body=" & mailBody & "," & "attachment=" & attachPath End Sub
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
試してみたところ、添付されたり、されなかったりしました。 いろいろ試してみてわかったことは、ファイル名が「【御請求書】 御中.pdf」の時に添付されませんでした。 シートは「請求書」と「請求書ひながた」以外にあるのかどうかわかりませんが、マクロ実行時に選択されているシートのセルA4とセルA5の両方が空の時に、上記ファイル名となり、添付できませんでした。 私の環境でのテストなのでいろいろと違う点があるかと思いますが、両セルに会社名、部署名が入っていないシートが選択された状態で実行されているのかと思ったりしています。 だとしたら、対象となるシートをマクロ実行前に選択しておくか、マクロで自動選択するようにする必要がありそうです。
お礼
ご回答ありがとうございます! セルA4は空、セルA5は会社名入りのテストファイルで何度も試しており、昨日は何度やっても添付出来きなかったのですが、本日質問欄に貼り付けたVBAを再度貼りなおしてテストしましたところ無事添付出来るようになりました! 片側のみに名前有り、また両方のセルに名前有りどちらも無事に添付出来ましたが、ご指摘の通り両方が空の場合は添付出来ませんでした。 基本的に出力する場合は会社名無しということはありませんので、この内容で実用に入りたいと思っております。昨日どうして添付できなかったのか不思議なのですが色々さわってどこかおかしくなったもので何度もテストしていただけなのかもしれません・・。 お恥ずかしい質問にご対応いただき感謝しております、ありがとうございました。