【エクセルVBA】複数シートを一括でPDFファイル化する方法!

複数のシートを一括でPDF化したい。でも手作業でひとつひとつやっていたらものすごい時間がかかりそうだ。

この記事では、こんな悩みを解決できるエクセルマクロをご紹介していきます。

 

具体的には、以下の画像のように3つのシートの情報をそれぞれのシート名をファイル名としてPDFファイルに出力するという作業を実演していきます。

複数シートをPDF化するという作業概要図

もちろんシートが何枚あっても対応可能です。

 

あなたのやりたいことと一致していれば、ぜひ続きをご覧ください。

 

スポンサーリンク

VBAの実行環境を構築しておく

今回紹介する作業はVBAを使って実行していきます。

VBAを使ったことがない、という方は以下の記事を参考にまずは環境構築を進めてみましょう。

エクセルマクロ(VBA)の始め方!初心者向けに画像を使って詳細解説

 

スポンサーリンク

複数シートを一括PDF化するサンプルコード

それでは本題である複数のシートを一括でPDF化するという作業をやってみましょう。

 

以下がその作業を実行できるコードです。

Sub Make_PDF()
    Dim file_name As String
    For i = 1 To ThisWorkbook.Sheets.Count
        'シート名を取得する
        file_name = ThisWorkbook.Sheets(i).Name
        'シートを順番にPDF化する(保存フォルダはこのエクセルと同じ場所に設定)
        ThisWorkbook.Sheets(i).ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ThisWorkbook.Path & "\" & file_name, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False
    Next
End Sub

 

基本的には、各シートに対して順番にシート名を取得⇒PDF化という作業を、シートの数と同じ回数(ThisWorkbook.Sheets.Count)、For文を使って繰り返しているだけです。

 

非常に簡単ですね。

 

スポンサーリンク

サンプルコードの実行結果確認

それでは先ほどのコードを実行してみましょう。

 

以下が実行前のフォルダの状況です。

(開いているエクセルファイルだけが存在している状況)

サンプルコード実行前のフォルダの中身

それでは先ほどのマクロを実行してみます。

 

以下が実行後のフォルダ内の状況です。

なにらや3つのPDFが作成されていますね。

サンプルコード実行後のフォルダの中身

 

それぞれ開いてみましょう。

できあがったPDFファイル3つ

問題なくもとのエクセルシートの3つのシートがPDF化されていますね。

 

スポンサーリンク

おわりに

というわけで今回は、エクセルVBAをつかって複数のエクセルシートを一括でPDF化する方法をご紹介しました。

ぜひ業務効率化にご活用ください。

 

このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。

⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

それではまた!

コメント

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