- ベストアンサー
マクロ「pdfでメール添付」の方法を教えてください
マクロで、「ファイルをpdfにしてアウトルックに添付」というボタンを作りたいのですが、 方法を教えてください。 マクロで「pdfで共有」というのを記録してみたのですが、なぜかエクセルファイルのまま添付されてしまいます。 全くマクロに詳しくないので、初心者向けに分かりやすく教えていただけるとありがたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
後記コードはいかがでしょうか。 なお、PDFを作成するシートは選択中のシート。 ファイル名はシート名にしました。 Sub SendMail() '--- PDFファイル作成 Dim PdfFile As String PdfFile = ThisWorkbook.Path & "\" & ActiveSheet.Name & ".PDF" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PdfFile DoEvents 'MsgBox "添付ファイル作成終了" '--- Outlook操作のオブジェクト ---' Dim objOutlook As Object Set objOutlook = CreateObject("Outlook.Application") '--- メールオブジェクト ---' Dim objMail As Object Set objMail = objOutlook.CreateItem(0) '--- メールの内容を格納する変数 ---' Dim toStr As String Dim ccStr As String Dim bccStr As String Dim subjectStr As String Dim bodyStr As String '--- 宛先の内容 ---' toStr = "hogehoge@abc.com" '"[宛先のメールアドレス]" ccStr = "" '"[CCのメールアドレス]" bccStr = "" '"[BCCのメールアドレス]" '--- 件名の内容 ---' subjectStr = "[件名]" '--- 本文の内容 ---' bodyStr = "[本文]" '--- 条件を設定 ---' objMail.To = toStr objMail.CC = ccStr objMail.BCC = bccStr objMail.Subject = subjectStr objMail.Body = bodyStr '--- 添付ファイルを設定 ---' Call objMail.Attachments.Add(PdfFile) '--- メールを表示 ---' objMail.Display ' '--- メールを送付 ---' ' objMail.Send MsgBox "送信したPDFファイルを削除します。" Kill PdfFile End Sub
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
>マクロ この質問のあたりになると、「マクロ」と言うよりは、VBAというべきで、(1)エクセルVBAと(2)アウトルックVBAの課題です。WEbでマクロと言っている例があるが、初心者迎合的と思う。 >添付 メイルに添付というのは、出来上がった「ファイル」を添付するだけで、添付用ファイル(の形式)が特別に、あるわけではない。受け取った側で、そのファイルを見られる(画面で表示でいる、ADOBEReadderとか。最近はエクセルで読み込ませられる。)か、その後処理できるかどうか、はあるが(エクセルなどを持っているか) 最近はエクセルで、拡張子をPDFに指定して保存すると、エクセルがPDF形式ファイルに変換して、それで保存してくれるのではないか。 質問には、バージョンさえも質問に書いてない程度だが、やってみること。 ーー ファイル添付に関して。 OutlookVBAではファイル添付はどうするか? Googleで「outlook vba ファイル添付」で照会すれば、コード例がたくさん見つかる。それさえもやってないようだが。 objMail.Attachments.Add(attachmentPath)のあたり。 Pathと言っているが、実質はファイルのフルパス名指定です。 ーー 自分のメイルアドレスにあてて、テスト用のメイルを送れるから、そういうテストをやってみて、納得すればよい。