【Excel VBA】アクティブシートを一発でPDFで出力する

スポンサーリンク

【Excel VBA】アクティブシートを一発でPDFで出力する

ExcelではVBAを用いることによって様々なことを自動化することができます。
ルーティン作業等は自動化して、業務を効率よくそして楽にしましょう!

今回ご紹介するのはVBAでExcelのアクティブシートを一発でPDF出力する方法です。

通常、アクティブシートをPDFとして出力したい場合、「保存」からPDFに変換することができます。
通常のやり方はPDFファイルのつくりかたを参考にしてみてください。

しかしこれだとPDFを作成するために何回もボタンをクリックしたりしないといけませんので非常に面倒です。
そこでアクティブシートを一発でPDFに変換することができるVBAマクロをご紹介したいと思います。

サンプルコード

早速ですが、VBAのサンプルコードが以下のとおりです。


    Dim fileName As String '保存先フォルダパス&ファイル名
    
    fileName = ThisWorkbook.Path & "\" & ThisWorkbook.Name & ".pdf"
   
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, fileName:=fileName

サンプルコード解説

現在のアクティブなExcelファイルのフォルダパスとブック名を取得し、アクティブなExcelファイルが格納されている同じフォルダにブック名と同じ名前でPDFとして出力させています。

フォルダパスは「ThisWorkbook.Path」で取得できます。
ブック名は「ThisWorkbook.Name」で取得できます。
そして「ActiveSheet.ExportAsFixedFormat」で指定する形式で出力します。
PDF形式で出力したい場合「Type:=xlTypePDF」とタイプを指定します。

このときに「fileName:=fileName」によって、出力ファイルの名称にブック名を指定しています。
ブック名の箇所は任意の名前に変更するような処理にしてももちろんOKです。
例えば文字列型(String型)の変数で任意の名称を用意して代入するかたちです。


    Dim fileName As String '保存先フォルダパス
    Dim strName As String '任意のファイル名
    
    strName = "hoge"

    fileName = ThisWorkbook.Path & "\" & strName  & ".pdf"
   
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, fileName:=fileName

補足

上記のコードでPDFを作成することができますが、実際にどのようなかたちで作成されるかというと印刷プレビュー等で指定したイメージでPDFが生成されます。
これは印刷で出力するイメージと一緒になりますので、あらかじめ改ページといった編集は行っておきましょう。

また、これを応用して全シートを個別に生成するといった応用も可能です。

PDFファイル形式だけでなく、CSVファイル形式やTXTファイル形式といった応用もできます。
目的や作業内容によって拡張子をいろいろ変えて試してみてください。
拡張子の指定は以下の太字の部分になります。
「fileName = ThisWorkbook.Path & “\” & strName & “.pdf”
Excelでデータファイルや帳票などさまざまな種類のファイルを扱ったり作ったりする方には特におススメです。

まとめ

いかがでしたでしょうか?
今回は、「アクティブシートを一発でPDFで出力する」方法をご紹介しました。
今後もExcelやVBAについてお役立ち情報などご紹介していきたいと思います!!

以上、「【Excel VBA】アクティブシートを一発でPDFで出力する」でした。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメントの入力は終了しました。