Excel VBA(マクロ) Excel ファイルを閉じる時にシートを PDF 化する方法、毎回の PDF化作業を無くす

シェアする

The following two tabs change content below.

松井 元(まつい はじめ)

静岡県三島市の松井会計事務所に勤務する理系税理士。 文理両方のスキルの融合を考えており、このブログは以下を中心に更新している。
●税金・会計に関すること
●IT(Excel、VBAなど)を使った業務効率化
●自分のこと(考え、私生活)

さらに詳細なプロフィールはこちら
松井会計事務所へのお仕事ご依頼・お問い合わせはこちら
税金・会計の無料メルマガはじめます

Excel シートを PDF 形式で保存して、その PDFファイルをメールで送るような場合があると思います。

ほぼ毎回そのようにして使う Excel シートであれば、Excel VBA(マクロ)によって PDF 化の作業を自動化しておくと楽です。

レクタングル大 広告

1、Excel シートの PDF 化を手作業で行う場合

まず、Excel シートの PDF 化の作業について説明します。

仮に、次のような Excelシート中で「損益計算書」を作成した後に、PDF 化して顧客にメールで送付する場合を考えてみます。

pdf-output_1

pdf-output_2

PDF化した時の印刷範囲を調整しておきましょう。

メニュータブの「表示」から「改プレビュー」を選択して、青線を動かして印刷範囲を調整します。

pdf-output_3

シートを PDF 化するためには、まずメニュータブの「ファイル」から「名前を付けて保存」を選択します。次に、保存先を選択してから「ファイルの種類」は「PDF(*.pdf)」を選択して保存します。

pdf-output_4

そこまで面倒な作業でもありませんが、毎回この作業をやるのであれば自動化させておいた方がよいでしょう。

2、ファイルを閉じる時に Excel シートを PDF 化させるコード

さて、Excel ファイルを閉じる時に以下の2つを実行するコードを考えて見ます。

・Excel ファイル自体を上書き保存
・Excel シートを PDF 化して同じフォルダに保存

つまり、Excel ファイルを閉じる時に、そのExcel ファイルの更新を保存しつつ同時にPDF 化するということですね。

コード

コードは VBE を開き(Alt + F11)、ブックモジュールの中の Workbook オブジェクト、BeforeClose イベントプロシージャに記述します。

BeforeClose イベントプロシージャに記述したコードはワークブックを閉じようとして「✖」ボタンを押した時に動作します。

pdf-output_6

お仕事のご依頼は、以下のリンク先にある個別のフォームよりお願い致します。
*リンク先は私が勤務する松井会計事務所の HP です。

◆税務・会計 顧問
◆税務・会計のスポットコンサルティング
◆経理業務効率化コンサルティング
◆Excel シートのオーダーメイド
◆Excel、マクロ(Excel VBA) のマンツーマンレッスン
◆東亜大学通信制大学院(法学専攻) 入試対策コンサル
◆その他のスポットコンサルティング(当ブログを読み何かご相談したい事項が出てきた方に向けたサービス)

セミナー開催要望がありましたら、以下のリンク先にある個別のフォームよりお願い致します。
◆セミナー開催要望

税金・会計についての無料メルマガをはじめます。配信をご希望させる方は以下のリンク先にあるフォームよりお願い致します
◆メルマガ登録

以下にコードを示します。これを PDF 化したい Excelファイル(形式は「.xlsm」にしておく必要あり)の BeforeClose イベントプロシージャに貼り付けて頂ければそのまま使えます。

Excel ファイルを閉じると同じフォルダ内に「損益計算書」シートの PDFファイルが生成されるのが確認できます。

コード説明

さて、上記コードの説明をします。

変数の定義と代入

まずは、ワークブックのパスを表す変数「File_Path」と、ワークブックのファイル名を表す変数「File_Name」を定義し、変数名を代入します。

Thisworkbook は正にこの VBA コードが記述してあるワークブックのことであり、ThisWorkbook.Path はこの VBA コードが記述してあるワークブックのパスを意味します。

ActiveSheet は今操作対象となっているシート(閉じようとしている)のことであり、ActiveSheet.Name は今操作対象となっているシートの名前(損益計算書)を意味します。

ファイルの上書き保存

ThisWorkbook.Save により「VBA コードが記述してあるワークブックを上書き保存する」という意味になります。

つまり、今まさに閉じようとしているワークブックを上書き保存することになりますね。

PDF 変換

今回のメインになるる Excel シートを PDF 化するコードです。改行して2行になっています(_ を入力することにより一文を改行できます)。

ExportAsFixedFormat メソッドを用いています。

Worksheets(File_Name) はこのワークシート(損益計算書)のことを表し、Worksheets(File_Name).ExportAsFixedFormat と記述することで xps 又は pdf 形式で出力できることになります。

その後の Type:=xlTypePDF の記述で pdf 形式を選択していることになります(xlTypeXPS  だと xps 形式)。

Filename:=File_Path & “\” & File_Name & “.pdf” の部分では、パスの段階から PDF ファイルの名前を指定しています。

今回の場合、Excel ファイルと同じフォルダの中に、今正に閉じようとしている Excel ファイルのシート名を使って「損益計算書.pdf」のファイル名で保存しています。

警告、メッセージが出ないようにする

「Excel ファイルの上書き保存及びシートのPDF化」の前にこのコードを書くことにより。上書きの許可を求める確認のメッセージが出ないようになります。

「Excel ファイルの上書き保存及びシートのPDF化」の処理が終わった後にこのコードを書くことにより、上書きの許可が出るように元に戻しています(今回のコード場合、以後の処理がありませんのであまり意味はありません)。

3、まとめ

PDF 化の作業を自動化するコードを紹介しました。

毎回同じ Excel シートを PDF 化しているようなケースがあれば役に立つかと思います。

このコードを PDF 化したいシートが入った Excelファイル(形式は「.xlsm」にしておく必要あり)の BeforeClose イベントプロシージャに貼り付けて頂ければそのまま使えますので、是非活用してみて下さい。

お仕事のご依頼は、以下のリンク先にある個別のフォームよりお願い致します。
*リンク先は私が勤務する松井会計事務所の HP です。

◆税務・会計 顧問
◆税務・会計のスポットコンサルティング
◆経理業務効率化コンサルティング
◆Excel シートのオーダーメイド
◆Excel、マクロ(Excel VBA) のマンツーマンレッスン
◆東亜大学通信制大学院(法学専攻) 入試対策コンサル
◆その他のスポットコンサルティング(当ブログを読み何かご相談したい事項が出てきた方に向けたサービス)

セミナー開催要望がありましたら、以下のリンク先にある個別のフォームよりお願い致します。
◆セミナー開催要望

税金・会計についての無料メルマガをはじめます。配信をご希望させる方は以下のリンク先にあるフォームよりお願い致します
◆メルマガ登録
税理士試験まとめ、税法論文の書き方

————————————————

税理士試験についてのまとめはこちらです!

税法2科目免除大学院についてのまとめはこちらです!

kindle電子書籍を出版しました。

税理士試験の税法2科目免除のために大学院で税法論文(修士論文)を書いた経験を元に、大学院生としての目線から税法論文の書き方を体系化した書籍です↓

大学院での税法論文の書き方

本書籍の内容についてはこちらの記事をご確認下さい。

お問い合わせ・フォローボタン

———————————

よろしければフォロー下さい↓

Twitter フォローボタン:

Feedly フォローボタン:
follow us in feedly

Facebookページ:
*いいね!を押して頂くと更新情報が届きます。

レクタングル大 広告
レクタングル大 広告
関連コンテンツ



シェアする

フォローする