エクセルでPDF発行の手間を省く!
ドキドキしながらの初投稿です。自分の出来る事を可視化するために、noteでいろいろ投稿してみようと思います。拙い文章ですが、よろしくお願いします。
仕事で、エクセルからPDFを発行することはよくありませんか。
一回だけだとあまり負担になりませんが、発行回数が多かったり、毎日資料等をPDFで発行する場合、いちいちファイル→PDF発行→保存先フォルダ指定→名前を付ける→保存と操作するのはメンドクサイですよね。そこで、ボタン一つでPDFの発行から、ファイル名の名前まで設定できるよう、簡単なVBAを作ってみました。
シートは適当に作りました。今回は、PDFに付けたい名前をG11セルに入力しておきます。
Option Explicit
Sub pdf_create()
'
' PDFファイルで保存
'
'
Dim pdf_name As String
pdf_name = Range("G11").Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"保存したいフォルダのパス" + pdf_name, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub
VBAコードです。マクロの記録でPDFエクスポートを記録し、コードを確認すると、下記のコードが記録されています。
Sub pdf_create()
'
' PDFファイルで保存
'
'
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"保存したいフォルダのパス+ファイル名", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub
というコードが記録されます。
これに、シートのセルG11からファイル名の値を取り込みたいので、
Dim pdf_name As String
pdf_name = Range("G11").Value
というコードを追加します。pdf_name = Rgange("G11").valueで、セルG11の値を取得します。他のセルにファイル名を入力する場合は、Rangeの()の中を変更してください。
保存先フォルダのパスとPDFのファイル名を変更するために、ActiveSheet.ExportAsFixedFormatのFilenameの部分を次のように変更します。
Filename:= "保存したいフォルダのパス" + pdf_name
最後の方に、
OpenAfterPublish: = True
とあります。これは、エクセルでPDFファイルを発行した時、発行したPDFファイルを開くかどうかの設定のようです。Falseにすると、PDFファイルは開かれません。
そして、このマクロをボタンに登録して完成!
ボタンを押すだけで、PDFを発行して、ファイル名も指定できます。
僕は、仕事で食品の微生物検査データ報告書の作成に活用しています。
試料名+”試験結果報告書”というファイル名を毎回入力する作業が無くなって楽ちんな上に、保存段階での転記ミスが無いので、ポカヨケにも最適です。
他にも、PDFファイルの発行と印刷をワンクリックで同時に行なうとか、エクセルを別名で保存するとか、色々なパターンにも対応できそうですね。
食品工場を渡り歩いています。品質管理担当。世の中の食糧事情・食品衛生管理に貢献できる人物を目指して日々勉強。ITツールを活用すべく、色々試しています。