サイトアイコン マメBlog

【VBA】PDF出力マクロの作り方~名前を付けて保存を完全自動化~

 

PDF出力を自動化したい!好きなフォルダに好きな名前を付けて保存したい!

 

こんな処理をVBAを使って実現します。

 

この記事では

指定するフォルダに好きな名前を付けてPDF出力するマクロの導入方法

を図やサンプルコードを用いてご紹介。

 

本記事を参考と以下のような問題を解決できます。

 

毎日PDF出力を手作業でやっている!という方は是非参考にしてみてください。

エクセルVBAを使って毎日のルーティーン作業を自動化しちゃいましょう。

 

【効率化VBA】PDF出力(指定するフォルダに名前を付けて保存)マクロとは

サンプル事例として、

指定するフォルダに好きな名前を付けてPDF保存するマクロを使って「作り方」「導入方法」を解説

していきます。

 

PDF出力マクロの概要がこちら

 

という処理を自動化できます。

 

PDF出力マクロの使い方

サンプルPDF出力マクロの使い方は

I2セルに「保存先のフォルダ場所」を入力し、実行ボタンを押下する

たったこれだけです。

 

こんな感じ

 

 

これだけでPDF形式のデータを「名前を付けて保存」することができます。

 

 

PDF出力マクロの作り方

PDF出力VBAにはExportAsFixedFormatメソッドを利用します。

 

基本構造

object.ExportAsFixedFormat(Type, FileName, Quality, includedocproperties, ignoreprintareas, From, To, openafterpublish, FixedFormatExtClassPtr)

 

Type XlFixedFormatType列挙を指定
FileName 保存するファイルの名前
Quality Xlfixedformatquality列挙定数を指定
IncludeDocProperties ドキュメントプロパティを含める必要があることを示す場合はTrue、省略する場合はFalse
IgnorePrintAreas Trueの場合印刷範囲が無視、Falseの場合発行時に印刷範囲セット
From 発行を開始するページのページ番号を指定
To 発行を終了するページの番号を指定
OpenAfterPublish Trueの場合ファイルが公開された後にビューアーに表示、Falseの場合ファイル公開後ビューアー表示なし
FixedFormatExtClassPtr FixedFormatExtクラスへのポインター

 

 

複雑な処理は必要ない!という場合は、

「object」「Type」「FileName」の3つの要素だけ

を設定するだけでもOKです。

 

具体例はこんな感じ

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=folder_path & “PDFデータ”

 

object・・・対象となるブックやシートを指定

 

→ActiveSheet

操作中のシートを対象とする

Type・・・出力形式を設定

 

→xlTypePDF

拡張子がPDF形式のファイルを作成する

FileName・・・保存先とファイル名を入力

 

→ThisWorkbook.Path & “\”& “PDFデータ”

マクロを設定したブックと同じ場所に「PDFデータ」というファイル名で出力される

 

難しく感じるポイントは「FileName」をどう定義するのかないでしょうか。

ファイル名にマクロ実行時の日付、時間を含めることでファイル名の被りによるエラーの発生を防ぐことができるのでおすすめです。

 

 

続いて、

指定するフォルダに好きな名前を付けてPDF保存するマクロでExportAsFixedFormatメソッドがどのように使われているのか

を解説していきます。

 

ExportAsFixedFormatメソッドが使われているコードの抜粋がこちら

MyFolder = Cells(2, 9)
ExportAsFixedFormat Type:=xlTypePDF, Filename:=MyFolder & "\" & Ash.Cells(1, 1) & " " & "給与支給明細書" & " " & Format(Now, "ge") & "-" & Month(Now) & ".pdf", Quality:=xlQualityStandard, OpenAfterPublish:=False

 

1行目のコードは、変数MyFolderにI2セルの「保存先フォルダパス情報」を格納する

2行目のコードは、変数MyFolderで保存先を指定し、PDFデータ名を「Ash.Cells(1, 1) & “ ” & “給与支給明細書” & “ ” & Format(Now, “ge”) & “-” & Month(Now) & “.pdf”」で指定する

という意味です。

 

保存先の指定ファイル名の付け方

をしっかり行えばPDF出力マクロの完成です。

 

PDF出力マクロの導入方法

PDF出力マクロの導入方法を順番に解説していきます。

 

1.Moduleを作成

 

2.Module1にコードを入力

 

 

コードは次で紹介するサンプルをコピペしてもOKです。

 

3.PDF出力マクロのサンプルコード

 Sub PDF出力()
    Dim Ash As Worksheet
    Set Ash = ThisWorkbook.Worksheets("PDF出力")
    gyoa = Ash.Cells(Rows.Count, 1).End(xlUp).Row
    Dim MyFolder As String
    Dim Cou1 As Long
    'PDF保存先のパスを変数格納
    MyFolder = Cells(2, 9)
    Ash.ExportAsFixedFormat Type:=xlTypePDF, Filename:=MyFolder & "\" & Ash.Cells(1, 1) & " " & "給与支給明細書" & " " & Format(Now, "ge") & "-" & Month(Now) & ".pdf", Quality:=xlQualityStandard, OpenAfterPublish:=False
 End Sub

 

4.ボタンを設定

 

5.マクロの登録

 

 

 

 

これでPDF出力マクロの導入は完了です。

 

VBAの作り方は関連記事「初心者でもわかるVBAの作り方」でもっと詳しく解説しています。

 

 エクセルVBAってどんなことができるの?始めるにはどうすればいいの?こんな疑問にお答えします。 結論から言うと、エクセルVBAを使えば毎日行っている単純作業を自動化することが可能。そして、エクセルが入っていれば今すぐにでもVBAを始めることができるです。 でも、プログラミングって難しそう。。。このように感じてVABを始めていない方は本記事を参考にVBA学習をスタートさせてみてください。 初心者でもVBAを設定できる機能「マクロを記録する」を使えば、普段のエクセル操作をそのままプログラミングに...
【エクセルVBAの作り方】初心者でもわかるように図やサンプルコードを使って解説 - mamemametochan.com

PDF出力マクロ以外にもいろんなマクロを作ってエクセル作業の効率をアップさせたい!

と考えている方は併せてチェックしてみてください。

 

 

 

業務内容に合わせてPDF出力マクロを導入するには

 

業務内容に合わせたPDF出力マクロがあればエクセル作業の効率を格段にアップさせることができます。

毎日毎日同じようなPDF出力作業を行っているなら絶対にVABで自動化しちゃってください。

 

めちゃくちゃ便利なPDF出力マクロの導入方法には、

PDF出力マクロを「自分で作る方法」と「外注に開発を依頼する方法」の

2つの方法があります。

 

PDF出力マクロを自分で導入する

業務内容に合わせたPDF出力マクロを導入する手順がこちら

  1. どのような処理をするのか具体的なイメージを持つ
  2. VBAを書いてみる
  3. ネットや参考書を使って問題点を解決していく

 

ガッツポーズの人

私はこの方法でいくつもの効率化マクロを開発してきました。

 

PDF出力マクロに当てはめて考えるとこんな感じ

  1. 複数ページをまとめてPDF出力して「年月」を含めた名前を付けたい
  2. VBAを書いてみたけど「年月」の付け方がわからない
  3. ネットで「VBA 年数 月数 取得」を検索

 

VBA作成ではわからないポイントを調べて肉付けしていくと案外思い通りのマクロが出来上がったりします。

 

ひらめく人

年数、月数を取得するVBAに関してはネットですぐに検索可能

 

大切なのは

完成系のイメージを持つこと」と「とにかくVBAを書いてみること

です。

 

ネットや参考書で紹介されているVBAコードを参考にすることで効率的にVBA開発を進めることができます。

 

PDF出力マクロに関するサンプルコードをもっと知りたい!という方は、

関連記事「印刷範囲がランダムで変わるシートをPDF出力するVBA

を参考にしてみてください。

 

任意の名前を付けてPDF出力するVBAが設定されたエクセルファイルをダウンロード

することができ、設定されているコードを抜き取って別のVBAに組み込む、業務内容に合わせて改良する、など

いろんな使い方ができます。

 

PDF出力作業の効率をアップさせたい!と考えている方はチェックしてみてください。

 

 

 

PDF出力マクロ開発を外注に依頼する

 

VBAを書きまくってPDF出力マクロの理解を深めるのもいいけど、そもそもVBAを勉強したりコードを書く時間がない!!

 

このような方って多くいらっしゃいますよね。

 

むしろ、

コードとかどうでもいいからPDF出力を自動化するマクロだけほしい!

という方の方が多いかもしれません。

 

そんな方には、マメBlogのVBA開発依代行サービスがおすすめです。

 

あなたに代わって業務内容に合わせたマクロの開発を行います。

 

依頼方法は、

現状このようなエクセル作業をしていて自動化したい!

とい伝えるだけ。

 

素早く、そして格安であなたの考えるマクロを開発します。

 

ありがたいことに最近ではマクロの開発依頼が増えてきて、いろんな経験をさせて頂いております。

 

マメBlogが行ってきたVBA開発代行はどういうものがあるのかを関連記事「年間50件達成!!マクロ開発実績について」で詳しく紹介していますのでマクロの導入で迷われている方は参考にしてみてください。

 

 マメBlogが行っている「マクロ開発サービス」の実績が年間50件を達成しました。 ガッツポーズの人利用してくれたみなさん、本当にありがとうございます。依頼者様が想像しているマクロの開発ができるようもっともっと経験を積んでいきたいと思います。 この記事では今まで受注したマクロ開発の依頼内容を具体的にご紹介しており以下のような不安や疑問を解消することができます。 マクロの開発依頼って難しそう。。。 どうやって依頼すればいいのかわからない。。。 私がやっているエクセル業務にも導入できるの?&...
【マクロ開発実績】年間50件の受注達成!依頼内容をご紹介 - mamemametochan.com

 

モバイルバージョンを終了