- ベストアンサー
エクセルでファイルをPDF化してメール送信する件
2013エクセルで作成したファイル拡張子xlsmをPDFファイルに変換して電子メールにて添付ファイルとして送信する際の質問です。エクセルの機能としてファイル→オプション→リボンのユーザー設定よりコマンドの選択のすべてのコマンドより「PDF形式の添付ファイルとして電子メールで送信」を追加してそのリボンを実行させるとPDFファイルが添付されたメール画面が表示しますが当該リボンをマクロ記録をして、そのマクロを実行したところPDFの拡張子のファイルが添付されなくxlsmファイルが添付されます。望みのPDFファイルを添付させるマクロを作りたいのですが、どなたかご教授ください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ご免なさい、デバッグ用のコードが入ったままでした。 正しくは↓です。 Sub Sample2() ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\WORK\Book1.pdf" sPath = """C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe"" -compose " Shell sPath & "attachment= ""C:\WORK\Book1.pdf""" End Sub
その他の回答 (2)
- mt2015
- ベストアンサー率49% (258/524)
Thunderbirdは使っていないので動作確認は出来ませんが、こんな感じで出来そうです。 「C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe」の箇所は実環境のThunderbird.exeのインストールパスに合わせて変更して下さい。 Sub Sample2() ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\WORK\Book1.pdf" sPath = """C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe"" -compose " sString = sPath & "attachment= ""C:\WORK\Book1.pdf""" MsgBox sString Shell sPath & "attachment= ""C:\WORK\Book1.pdf""" End Sub
- mt2015
- ベストアンサー率49% (258/524)
実際の動きとマクロ記録で記録したマクロの動きが違う事って時々ありますよね。 そんな時はマクロ記録のマクロに拘ると駄目なことが多いです。 こんな感じにしてみました。 Sub Sample() Dim OL Dim ML ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\WORK\Book1.pdf" Set OL = CreateObject("Outlook.Application") Set ML = OL.CreateItem(olMailItem) ML.Attachments.Add "C:\WORK\Book1.pdf" ML.Display End Sub "C:\WORK\Book1.pdf" の部分はご自分の環境に合わせて変えてください。
お礼
mt2015さん 早々のご回答を心から感謝いたします。OKWAVEの使い方がまだ未熟で申し訳ありません。補足と同文を下記に記します。 早速、お示しのマクロをコピペして試してみました。見事にアウトルックの画面がPDFファイル添付付きで表示されました。感動しました。後一つお教えください。私のメールアプリはThunderbirdなるものを使っています。そこでお教えいただいた構文に以下のように加工しましてもディバッグが出ます。 Set OL = CreateObject("Outlook.Application")→ Set OL = CreateObject("Thnderbird.Application") 他にMozilla Thnderbird と入力してもだめでした。どのようにすればサンダーバードのメールアプリが表示するのでしょうか。お教えいただければ幸いです。よろしくお願いいたします。
補足
mt2015さん 早々にご回答くださり感謝です。ありがとうございます。早速、お示しのマクロをコピペして試してみました。見事にアウトルックの画面がPDFファイル添付付きで表示されました。感動しました。後一つお教えください。私のメールアプリはThunderbirdなるものを使っています。そこでお教えいただいた構文に以下のように加工しましてもディバッグが出ます。 Set OL = CreateObject("Outlook.Application")→ Set OL = CreateObject("Thnderbird.Application") 他にMozilla Thnderbird と入力してもだめでした。どのようにすればサンダーバードのメールアプリが表示するのでしょうか。お教えいただければ幸いです。よろしくお願いいたします。
お礼
mt2015さんへ 本当にありがとうございます。サンダーバードでPDF添付表示が完璧にできました。 流石です。ご尊敬申し上げます。最後にもう一つ甘えさせていただいても宜しいでしょうか。 msgBoxを介さないで直接サンダーバードのメール画面を表示する方法はないでしょうか。 よろしくお願いいたします。何から何まで恐縮です。