エクセル マクロ 作成したPDFをメールに添付、2回目からエラー
エクセルマクロでボタン一つでシートをPDF化し、そのままそのPDFをOutlookのメールに
添付するプログラムを作りたいのですが、下記ソースだと1回目のボタン押下ではメールが立ち上がり、
PDFが添付される(PDFも開ける)のですが、その立ち上げたメールを閉じて
再度、同様にボタンを押してメールを立ち上げて添付されたPDFを開こうとすると以下のエラーが出ます。
【エラー内容】
Adobe Acrobat Reader で「〇〇〇.pdf」を開けませんでした。ファイルの種類がサポート
されていないか、またはファイルが破損している可能性があります。例えば、電子メールの
添付文書として送信され、正しくデコードされなかったことが考えられます。
どうすればいいのでしょうか。
Option Explicit #If Win64 Then Private Declare PtrSafe Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As LongPtr #Else Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long #End If Sub PDF名前メール自動_納品書() Dim i As Long Dim fn As String Dim myPath As String 'Outlookオブジェクト生成 Dim OL As Outlook.Application Dim MI As Outlook.MailItem Set OL = CreateObject("Outlook.Application") Set MI = OL.CreateItem(olMailItem) myPath = "\Mame-saba1\販売管理\納品・請求書\" Range("DM5").Value = "" For i = Range("DM4") To 9999 fn = myPath & Range("DK5") & "\" & Range("DK6") & "\MAQ-NB" & Format(i, "0000") & ".pdf" If Dir(fn) = "" Then Range("DM5").Value = i MakeSureDirectoryPathExists fn Sheets("納品書").PrintOut , ActivePrinter:="Microsoft Print to PDF", prtofilename:=fn Exit For End If Next 'メール各設定 MI.SentOnBehalfOfName = "abc@d.jp" '差出人 MI.To = "efg@h.co.jp" 'TO MI.Cc = "" 'CC MI.Bcc = "" 'BCC MI.Attachments.Add fn '添付 MI.Subject = "【発送】" & Format$(Now(), "yyyy") & Format$(Now(), "mm") & Format$(Now(), "dd") '件名 '本文 MI.Body = "お世話になっております。" & Chr(13) & _ 'メール表示 MI.display 'オブジェクト解放 Set OL = Nothing Set MI = Nothing End Sub
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/04 04:23
2021/03/04 04:34