見出し画像

エクセルで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ツールを活用すべく、色々試しています。