ひとつのExcelブックにあるワークシートを、ワークシートごとに個別のPDFに変換したいときはありませんか?
ワークシートの数が少なければそれほど手間ではないですが、たくさんのワークシートがある場合、ひとつひとつファイル名も入力しないといけないし大変な手間ですよね。
そんなときマクロを使えば、一瞬でPDFファイルが作成でき、しかもファイル名も自動でつけてくれます。
目次
マクロを書く準備
マクロを書くためには、まず”開発タブ”を表示させましょう。
作業するExcelのブックを開いて、左上の”ファイル”→”オプション”から”Excelのオプション”ウィンドウを表示し、”リボンのユーザー設定”から”開発”にチェックを入れて、OKボタンをクリックします。
するとリボンに”開発タブ”が表示されます。
次にマクロのセキュリティを設定します。
”警告を表示してすべてのマクロを無効にする”に設定します。
次はAltキーとF11キーを同時に押してVBE(Visual Basic Editor)を起動します。
”ツール”→”オプション”から
次のように設定します。
次は、Alt→I→Mと順番に押してモジュールを作成します。
このモジュールにマクロを書いていきます。
ワークシートごとにPDFに変換するマクロ
基本構文
ワークシートをPDFに変換する基本の構文は次のようになります。
Sub マクロの名前()
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & “¥” & ”ファイル名”, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub
また、そのままコピペしてもエラーが出ますので、貼り付けたあと、この後に出てくる画像のようになるように微調整をお願いします。
コピペで使えるように調査中です。スミマセン^^;
項 目 | 説 明 |
---|---|
ActiveSheet | 現在開いているワークシートのこと |
Filename | PDFの保存場所と名前です。 この例の場合、マクロが保存されているブックと同じフォルダにPDFが保存されます。 |
Quality | ファイルの品質です。 この例の場合は標準です。 |
IncludeDocProperties | True…プロパティを設定 False…プロパティを省略 |
IgnorePrintAreas | True…設定された印刷領域を無視 False…設定された印刷領域を無視しない |
OpenAfterPublish | True…マクロ実行後PDFが表示される False…マクロ実行後PDFが表示されない |
ワークシートごとにPDFにする場合
基本構文のままだと、アクティブにしているワークシートしかPDFにならないので、次のように書きます。
Sub ワークシートごとにPDFに変換()
Dim i As Long
For i = 1 To Worksheets.Count
Worksheets(i).ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & “¥” & _
Worksheets(i).Name, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
Next i
End Sub
また、そのままコピペしてもエラーが出ますので、貼り付けたあと、この後に出てくる画像のようになるように微調整をお願いします。
コピペで使えるように調査中です。スミマセン^^;
”Dim i”とは「”i”は数字が変わる変数です」という意味です。
”i”には1からWorksheets.Count、つまりワークシートの数までの数字が入ることになります。
”For i〜Next i”は、For〜Nextまでの間の処理をiの数だけ繰り返すという意味です。
そして、「Filename:=ThisWorkbook.Path & “¥” & _ Worksheets(i).Name」でワークシートの名前がPDFのファイル名になるようにしています。
実際にVBEにマクロを書くとこんな感じになります。
実際にやってみましょう
Sheet1からSheet3まであるExcelブックを例に説明します。
開発タブにある”マクロ”をクリックします。
マクロウィンドウが開きますので、先程作ったマクロを選択して”実行”します。
するとPDFのウィンドウが開いて、PDFが作成されたことが確認できます。
マクロが保存されているBook1.xlsxと同じフォルダであるデスクトップにSheet1からSheet3までのPDFファイルが作成されています。
マクロが入ったExcelブックの保存
マクロが保存されているExcelブックは、通常の保存形式と変わります。
拡張子が”.xlsm”のExcelマクロ有効ブックの形式で保存します。
まとめ
私は今回紹介したマクロを、請求書を作成するときに使っています。
請求内容を入力したExcelのテーブル(いわばデータベースですね)から今回のマクロとは別のマクロ(いずれ記事にします)使って、相手先ごとにExcelで請求書を作成し、そのExcelの請求書を今回のマクロで、個別のPDFとして保存しています。
個別のPDFで保存するのは、メールに添付して送るためです。
メールで送るため、ファイル名を相手先ごとにひとつひとつ付けていく必要があるので、マクロを使わないとかなり面倒です。
こういう同じ作業を繰り返し繰り返しする必要があるときは、マクロの出番なのです。
◆編集後記◆
私もまだ、マクロを何もないところから組める程の技量はありませので、他の人が作ったサンプルをベースに、自分なりに解読して、自分用にカスタマイズして使っています。
マクロを覚えるには、こういったやり方がけっこう近道だったりします。
山端一弥
最新記事 by 山端一弥 (全て見る)
- 2021年シーズン開幕! - 2021年3月29日
- 【青の獅子標】終戦!CS進出ならずも。。 - 2020年11月10日
- 【青の獅子標】勝負の9連戦 - 2020年11月2日
- 【青の獅子標】3連覇消滅も新たな目標へ - 2020年10月26日
- 【青の獅子標】求む。打線の奮起 - 2020年10月20日