複数のシートを一括でPDF化したい。でも手作業でひとつひとつやっていたらものすごい時間がかかりそうだ。
この記事では、こんな悩みを解決できるエクセルマクロをご紹介していきます。
具体的には、以下の画像のように3つのシートの情報をそれぞれのシート名をファイル名として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が作成されていますね。
それぞれ開いてみましょう。
問題なくもとのエクセルシートの3つのシートがPDF化されていますね。
おわりに
というわけで今回は、エクセルVBAをつかって複数のエクセルシートを一括でPDF化する方法をご紹介しました。
ぜひ業務効率化にご活用ください。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント