ボタン1つでPDF化&ファイル名自動作成を実現!Excel VBAのExportAsFixedFormatをコピペで使いこなす技術

【業務効率化】VBA
スポンサーリンク

「はぁ……。請求書50枚、1枚ずつ『名前を付けて保存』してPDFにするの、もう飽きたな……」

月末のオフィスで、そんなため息をつきながらマウスを何度もクリックしていませんか? 

そんな「手作業による苦行」を「わずか3秒の快感」に変えてくれるのが、Excel VBAの「ExportAsFixedFormat」という命令です。 

今回は、プログラミング初心者の方でも今すぐ使えるコードを紹介します。

【業務効率化】VBAの記事を見る 

コピペでOK!サンプルコード

プログラミング用語で「ExportAsFixedFormat」と聞くと難しそうに思えますが、要は「現在のシートを、編集できない形式(PDF)でコピーしてね」とExcelに指示を出す機能です。

まずは、最もシンプルで使い勝手の良いコードを見てみましょう。

Sub SaveAsPDF()
    ' 現在表示しているシートをPDFとして保存するコードです
    Dim fileName As String

    ' 保存する場所と名前を指定(デスクトップに「請求書.pdf」として保存)
    ' Environ("USERPROFILE") は使う人のパソコンに合わせて自動でパスを調整してくれます
    fileName = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\請求書.pdf"
   
    On Error GoTo ErrorHandler ' もしエラーが起きたらErrorHandlerに飛ぶ設定
   
    ' これがPDF保存の本体
    ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=fileName, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=True ' 保存した後に自動でPDFを開く設定
       
    MsgBox "PDF保存が完了しました!", vbInformation
    Exit Sub

ErrorHandler:
    MsgBox "PDFが開いたままだったりしませんか?確認してください。", vbExclamation
End Sub


ここがポイント!「引数(ひきすう)」の解説

コード内にある「Type:=xlTypePDF」などの細かい指定(これを『引数』と呼びます)には、それぞれ重要な役割があります。

  • Type: PDFとして出力する場合は「xlTypePDF」の固定で問題ありません。 
  • Filename: PDFを保存する「場所(パス)」と「ファイル名」を指定します。ここをセルの値(例:顧客名や請求日)と連動させれば、ファイル名を入力する手間すらゼロになります。 
  • OpenAfterPublish: ここを「True」に設定しておくと、保存直後にPDFが自動で開きます。「本当に正しく保存できたかな?」という不安をその場で解消できる便利な設定です。 

【業務効率化】VBAの記事を見る 


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でしたが、年間100万円以上節約していました。
株式投資で年間360万円以上投資し、iDeCoも併用しています。
総資産はアッパーマス層に到達しました。
資格は日商簿記3級を持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、生産性を高めるITスキルについて発信しています。

生活を豊かにするため、高配当株投資で年間配当金60万円をめざしています。
現在の年間配当金は30万円ほどです。

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

タイトルとURLをコピーしました