エクセルのシートをPDF化して、Outlookに添付するVBAを紹介します。
![](https://ramq-cat.com/wp-content/uploads/2021/01/084919.jpg)
エクセルファイルをそのままメールに添付できない時は多いですよね。
![](https://ramq-cat.com/wp-content/uploads/2021/01/098912.jpg)
![](https://ramq-cat.com/wp-content/uploads/2021/01/098912.jpg)
![](https://ramq-cat.com/wp-content/uploads/2021/01/098912.jpg)
そうですね。
請求書、領収書、発注書などはエクセルで計算させると便利ですが、
エクセルだと受け取った人も修正ができちゃいますよね。
![](https://ramq-cat.com/wp-content/uploads/2021/01/084919.jpg)
![](https://ramq-cat.com/wp-content/uploads/2021/01/084919.jpg)
![](https://ramq-cat.com/wp-content/uploads/2021/01/084919.jpg)
今回は、PDF化したエクセルのシートをOutlookに添付します。
![](https://ramq-cat.com/wp-content/uploads/2020/11/1484715_s.jpg)
![](https://ramq-cat.com/wp-content/uploads/2020/11/1484715_s.jpg)
エクセルをPDF化してメールに添付する(outlook)VBA
エクセルをPDF化してメールに添付する(outlook)VBA
マクロが設定されているファイル名が「BOOK1.xlsm」の場合、次のようなメールが作成される。
![](https://ramq-cat.com/wp-content/uploads/2021/10/1412b7cdb8f1305946c4d4ca7576d38c.png)
![](https://ramq-cat.com/wp-content/uploads/2021/10/1412b7cdb8f1305946c4d4ca7576d38c.png)
Sub SendWorkSheetToPDF()
Dim Wb As Workbook
Dim FileName, MailA, TextA As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Set Wb = Application.ActiveWorkbook
MailA = “——@aaaaaa.co.jp”
TextM = “Hello”
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, “.”)
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex – 1)
FileName = FileName & “.pdf”
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject(“Outlook.Application”)
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = MailA
.CC = “”
.BCC = “”
.Subject = “こんにちは”
.Body = TextM
.Attachments.Add FileName
.Display
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
![](https://image.moshimo.com/af-img/0866/000000026029.jpg)
![](https://image.moshimo.com/af-img/0866/000000026029.jpg)
解説
応用編
複数の宛先に、それぞれの内容に併せたファイルを添付したい場合
- シートを作成する
![](https://ramq-cat.com/wp-content/uploads/2021/10/76c691c22c7ef40a64aa64b04f05e90c.png)
![](https://ramq-cat.com/wp-content/uploads/2021/10/76c691c22c7ef40a64aa64b04f05e90c.png)
- 「一覧」シートに宛先とメールアドレスを記入する
![](https://ramq-cat.com/wp-content/uploads/2021/10/82cd89bf6e3e7beeac7a6a7e3c296e8a.png)
![](https://ramq-cat.com/wp-content/uploads/2021/10/82cd89bf6e3e7beeac7a6a7e3c296e8a.png)
- 宛先ごとのシートに内容を作成する
![](https://ramq-cat.com/wp-content/uploads/2021/10/5bc9fc4d63d4a0ab3f0efe11bd966220.png)
![](https://ramq-cat.com/wp-content/uploads/2021/10/5bc9fc4d63d4a0ab3f0efe11bd966220.png)
VBA
Sub SendWorkSheetToPDF()
Dim a As Long
Dim Wb As Workbook
Dim FileName, Company, MailA, TextA As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
a = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To a
Sheets(i).Select
Company = Sheets(1).Cells(i, 1)
MailA = Sheets(1).Cells(i, 2)
TextM = “添付ファイル参照”
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, “.”)
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex – 1)
FileName = FileName & “_” & Company & “様.pdf”
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject(“Outlook.Application”)
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = MailA
.CC = “”
.BCC = “”
.Subject = “お支払額のご連絡”
.Body = Company & “ 様” & vbCrLf & vbCrLf & TextM
.Attachments.Add FileName
.Display
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Next i
Sheets(1).Select
End Sub
解説
エラーの場合は次に進む
左から1番目のシート「一覧」・A列の最終行を取得する
2~aまでにおいて(ループ)
添付するシートを選択する
宛先の取得
メールアドレスの取得
本文の取得
添付ファイルのファイル名を作成
→ファイル名_宛先様.pdf
Outlookの設定
メールアドレス
CC
BCC
メールタイトル
本文:「宛先」様 <改行><改行> 本文
添付ファイルを作成
プレビュー ※直接送りたい場合は「Send」
それぞれを空にする
結果
![](https://ramq-cat.com/wp-content/uploads/2021/10/a88e5b631e0ef8187e3605a9d1a5a789.png)
![](https://ramq-cat.com/wp-content/uploads/2021/10/a88e5b631e0ef8187e3605a9d1a5a789.png)
![](https://ramq-cat.com/wp-content/uploads/2020/08/5ba897d6d697425ab4b38f14e988b482.png)
![](https://ramq-cat.com/wp-content/uploads/2020/08/5ba897d6d697425ab4b38f14e988b482.png)
![](https://ramq-cat.com/wp-content/uploads/2020/08/5ba897d6d697425ab4b38f14e988b482.png)
エクセルをPDF化してメールに添付するVBAでした。
![](https://ramq-cat.com/wp-content/uploads/2020/09/81e0c65a4663e0d6df00a1558d2e4f6a-300x157.png)
![](https://ramq-cat.com/wp-content/uploads/2020/09/81e0c65a4663e0d6df00a1558d2e4f6a-300x157.png)
コメント