Excelマクロ超入門 Excelブックの複数シートを指定してPDFファイルで保存するには?

カフェで一息 - by Canon RP(RF35mm f 1.8 1/250)
  • URLをコピーしました!

手でやるちょっとした処理をマクロでやることもできます。

Excelの複数のシートを選択してPDFファイルで保存するということも、ちょっとしたことですがマクロでやっています。

目次

Excelで作った資料はPDFファイルで送る

Excelで作った資料をPDFファイルにすることもあるでしょう。

わたしもお客さま用に作る資料づくりExcel、お渡しするのはPDFファイルでということは多いです。

ExcelファイルのままDropboxで共有したり、メールなどに添付して送るとなると、数式が崩れたり思わぬエラーに遭遇する可能性はあります。

見ていただく資料という位置づけであれば、作ったExcelファイルをそのまま使わなくても、PDFファイルにすれば足りますし、紙でやりとりする必要もありません。

ExcelファイルのシートをPDFファイルにする

Excelファイルにある複数のシートをPDFファイルとして保存するには、[F12]キーから[名前を付けて保存]画面を開き、[ファイルの種類(T):]で「PDF」を選択すれば、

PDFファイルとして保存できます(F12 → Tab → P の順番で押しても同様に保存できます)。

わたしはこの操作をクイックアクセスツールバーを使って、Alt + 8 ですぐにPDFファイルに保存できるようにしています。

もし、Excelファイルに複数のシートがあっても、選択したシートだけをPDFファイル1つにまとめることもできます。

このように、作ったExcelをPDFで保存するといっても、
・Excelからシートを選ぶ(全部か一部かを含めて)
・PDFに変換する
・PDFファイルに名前をつける
・保存場所を選ぶ

というような流れはあります。

Excelマクロと使ってPDFファイルとして保存するまでの流れ

前述の複数のシートを選ぶ→PDFファイルで保存する、という流れをマクロを使ってやることもできます。

このように書きます。

Sub PDF()

 ’シートを選択
 Worksheets(Array(“サマリー”, “資金繰り”, “前期比較”)).Select

 ’選択したシートをPDFで保存
 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
 Filename:=ActiveWorkbook.Path & “\” & “sample”

 ’シートの選択を解除
 Worksheets(“Sheet1”).Select

End Sub

まず、Excelにある複数のシートをArray関数を使って配列指定します。
「Worksheets(Array(“サマリー”, “資金繰り”, “前期比較”)).Select」の部分です。

“サマリー”のようにシート名を指定し、「Select」で選択しています。


そして、Arrayで選択したシートをPDFファイルとして保存します。
「ActiveSheet.ExportAsFixedFormat Type」、つまり選択しているシートの保存形式に「xlTypePDF」と書きPDFを指定します。

で、保存するためには保存先のパスとファイル名が必要で、「Filename:=ActiveWorkbook.Path & “\” & “sample”」と書きます。

パスについては、このブログでまとめています。

今回はExcelファイルを保存している同じフォルダに、ファイル名:sampleとして保存したいので、「ActiveWorkbook.Path」でExcelと同じ保存先を指定し、ファイル名を”sample”と書いています。


最後は、シートの選択を解除したいので、「Worksheets(“Sheet1”).Select」で別シートを選ぶということをやっています(今回は別シートを「sheet1」としています)。


ちなみに、「\」の記号は、キーボードの「¥」です。Backspaceキーの隣にあるので、これを入力しましょう。

それと、「PDF,」の次にあるアンダーバー「 _」は、改行したいときに使います。
半角スペースのあとにアンダーバーです。半角スペースが無いとエラーになるので忘れないようにしましょう。

わたしはPDFファイルの保存先をDropboxのInboxというフォルダに指定しておきたいので、Filename以下を次のように書いています。

このように書いています。

Sub PDF()
 ’シートを選択
 Worksheets(Array(“サマリー”, “資金繰り”, “前期比較”)).Select

 ’選択したシートをPDFで保存
 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
 ”C:\sou\Dropbox\00_Inbox” & “\” & “sample” & “.pdf”

 ’シートの選択を解除
 Worksheets(“Sheet1”).Select

End Sub

Filenameの次にあるアンダーバー「 _」も前述と同じように改行の意味です。

保存先のパスは、(Windowsの場合)エクスプローラーから保存したいフォルダでCtrl + Shift + C(右クリックでも大丈夫です)し、

パスをコピーできますので、貼り付けましょう。

ちょっとした操作でも、それが何度も繰り返す処理のちょっとした1コマというのであれば、自動化してみるのも手です。

今回のPDFのように、ちょっとしたことの方がマクロを試しやすいメリットもあります。

■編集後記
昨日は朝タスクなどの習慣のあとは、読書やとある基礎研究を。
息子(9)のYoutubeチャンネルで久しぶりの動画作成。ランチは久しぶりにバーガーキングのワッパーでした。

■息子(9歳)
「ニュースをはなすのをやってみたい」ということで、久しぶりに息子のYoutubeチャンネルを更新。ニュースっぽく映るようにOBS Studioを設定して、サムネイルもニュース番組っぽくして作ってみました。ばあばに見てもらうためにURLもLINEで。
パパも動画を見ようとしましたが「もういいからっ!」と。動画を作ったことで満足したらしく、そのあとのことは興味がないようです。まぁ、そんなもんです。

■昨日の1日1新
・とあること
・RPでマニュアル露出撮影

この記事が気に入ったら
いいね または フォローしてね!

  • URLをコピーしました!
目次