質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

1回答

2409閲覧

エクセル マクロ 作成したPDFをメールに添付、2回目にエラー

kensproject

総合スコア8

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2021/03/04 02:58

エクセル マクロ 作成した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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

PDFが出来上がりきる前に添付された、という可能性があるかも。
添付ファイのサイズが0バイトとかになってたりしませんか。

投稿2021/03/04 03:23

jinoji

総合スコア4585

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kensproject

2021/03/04 04:23

気に留めてくださりありがとうございます。 お察しの通り0バイトでした。  エクセルブック起動後  ボタン押下1回目:fnフォルダ内PDF(293KB)※正常にPDFが開けます           メール添付PDF(293kB)※正常にPDFが開けます  ボタン押下2回目:fnフォルダ内PDF(293KB)※正常にPDFが開けます           メール添付PDF(0kB)※エラーが出ます           適当な場所にメール添付PDFを保存(0kB)※同エラーが出ます
kensproject

2021/03/04 04:34

PDFファイル作成後に1秒待ってからメールに添付しましたら正常に処理できました!! ありがとうございました!! Application.Wait [Now() + "00:00:01.0"]
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問