【EXCEL:VBA】EXCELの差し込み印刷でPDFファイルを出力する方法(差込位置を自在に変更可能)

差込PDF作成(VBAを変更せずに差込位置を変えたい)

この記事では、EXCELに入力している情報から差込PDFを作成する方法について説明します。

 

しかも、一度VBAプログラムで作成しておけば、あとから差込位置を好きなように変えることができます。

 

 

差込PDFとは、年賀状の宛名書きをイメージしてもらえるとわかりやすいです。

 

決まったレイアウト(はがき)に送りたい人それぞれの郵便番号、住所、氏名を書き込みます。

 

 

そして、紙に印刷するのではなく、1枚ずつをPDFファイルとして保存可能です。

 

PDFの便利なところは、印刷物とは違い、メールで相手に送ることができます。

 

 

また、PDFファイルなので、受け取った相手は変更することができません。

 

この差込PDFを作成するには、以下の3つを用意する必要があります。

  1. 差込PDFする人の情報一覧
  2. 決まったレイアウト
  3. VBA(差込PDFを作成する機能を作成する必要があります。)

 

それでは、EXCELで差込PDF(VBAを変更せずに差込位置を変えたい)を作成していきましょう。

 

困っている女性

決まった単票レイアウトで全従業員の情報でPDFを作成したいわ・・・。

困っている女性

しかも、単票レイアウトがよく変わるの。
こないだ説明した差込PDFを少し改造すれば、VBAプログラムを変更せずに差込位置を変えることができるようになるよ。

解決する男性

困っている女性

それそれ、早く教えてよ。

 

◆ほかの差込PDFの記事は、以下から参照してください。

EXCEL差込PDFを作成しよう 【EXCEL:VBA】差込PDFを作成したい

 

選択した行だけ差込PDFを作成する 【EXCEL:VBA】EXCELの差し込み印刷でPDFファイルを出力する方法(対象を自在に変更可能)

 

VBAを変更せずに差込レイアウトを変えたい 【EXCEL:VBA】EXCELの差し込み印刷でPDFファイルを出力する方法(差込レイアウトを自在に変更可能)

 

◆EXCEL差込印刷の記事は、以下から参照してください。

EXCELで差込印刷したい 【EXCEL:VBA】差込印刷をしたい

 

選択した行だけ差込印刷したい 【EXCEL:VBA】差込印刷したい(選択した行のみ)

 

【EXCEL:VBA】差込印刷したい(VBAを変更せずに差込位置を変えたい) 【EXCEL:VBA】差込印刷したい(VBAを変更せずに差込位置を変えたい)

 

差込PDFに必要なものを、1つ1つ順番に説明していきます。

1.差込PDFする人の情報一覧を準備する

今回はサンプルとして、「従業員番号」、「氏名」、「生年月日」の3つのデータを利用して差込PDFを作成する方法を説明します。

「差込データ一覧」シートを作成する

差込データ一覧シートを用意する

差込データ一覧シートを用意する

 

  1. 「差込データ一覧」という名前のシートを作成します。
  2. 1行目にそれぞれの情報を差込したい位置(セル番地)を記入します。
  3. 2行目に「従業員番号」、「氏名」、「生年月日」、「選択」のタイトル行を作成します。
  4. 3行目以降には、実際に差込PDFを作成したいデータを入力します。
  5. 差込PDF作成したい対象データ行の「選択」に1を入力します。(1でなくても、○でもOKです。)

 

2.決まったレイアウトを準備する

今回はサンプルとして、「従業員番号」、「氏名」、「生年月日」を差し込むレイアウトを作成しました。

「ひな形」シートを作成する

差込PDFレイアウトを作成する

差込PDFレイアウトを作成する

 

  1. 「ひな形」という名前のシートを作成します。
  2. B列にタイトル行を作成します。今回のサンプルでは、「従業員番号」、「氏名」、「生年月日」になります。
  3. C列には、差込する値を表示する欄を用意します。

 

※レイアウトは、好きにアレンジしても良いですが、「差込データ一覧」シートの差込位置を変更する必要があります。

 

3.VBAで差込PDFを作成する機能を記入する

「Microsoft Visual Basic for Applications」を起動します。

標準モジュールを追加する

標準モジュールを追加する

 

標準モジュールを追加して、以下のソースを書きます。

 

最後にEXCELを「◯◯◯.xlsm」というような感じでマクロ有効ブック形式で保存します。

 

4.差込PDFの動かし方

それでは、差込PDFの動かし方を説明します。

マクロを起動する

マクロを起動する

「開発」タブの「マクロ」をクリックします。

 

実行ボタンをクリックする

実行ボタンをクリックする

 

先程作成した自作関数「MainProc」が一覧に表示されていますので、選択します。

次に、「実行」ボタンをクリックして差込PDFを実行します。

 

しばらく待つと、選択に1を入力した行を対象に、PDFファイルが3つ作成されます。

差込PDFが3つ作成された

差込PDFが3つ作成された

 

うまく動きましたか?

次は、あなたの好きなレイアウトで、好きな情報を用意して、差込PDFを作成してみましょう。

 

5.差込位置の変更の仕方

ひな形シートのレイアウトを変更する

それでは、ひな形シートのレイアウトを変更してみましょう。

変更前のひな形レイアウト

変更前のひな形レイアウト

 

変更前のひな形レイアウトは、各情報が上下に並んでいます。

これを、左右に並ぶように変えてみます。

変更後のひな形レイアウト

変更後のひな形レイアウト

ひな形レイアウトの各情報の位置(セル番地)が以下のように変わりました。

  • 従業員番号:C5 ⇒ B6
  • 氏名   :C6 ⇒ C6
  • 生年月日 :C7 ⇒ D6

 

差込データ一覧シートの各情報の差込位置(セル番地)を変更する

それでは、ひな形レイアウトの変更が終わりましたので、

次に、差込データ一覧シートの各情報の差込位置(セル番地)を変更します。

変更前の差込位置

変更前の差込位置

 

ひな形レイアウトに合わせて、A1~C1セルに入力されていた差込位置(セル番地)を変更しましょう。

変更後の差込位置

変更後の差込位置

 

これで、差込位置の変更は完了です。

VBAプログラムを変更する必要はありません。

それでは、うまく動くか試してみてください。

 

6.差込PDFのVBAプログラムの説明

それでは、差込レイアウトや表示させたい情報を変更できるようになるため、VBAプログラムを説明します。

 

①差込位置を取得する

ここでは、「差込データ一覧」シートの1行目に入力されている各情報の差込位置(セル番地)を取得します。

変数「sashikomi1」には、従業員番号の差込位置(セル番地)を格納します。

変数「sashikomi2」には、氏名の差込位置(セル番地)を格納します。

変数「sashikomi3」には、生年月日の差込位置(セル番地)を格納します。

 

②現在行を次の行に変更する

ここでは、現在行を次の行に変更するため、変数「nowRow」に格納している値+1を、変数「nowRow」に格納しています。

ループ処理の外側で、変数「nowRow」には2が格納されています。

差込データは、3行目から入力されているので、ループ処理の内側に入ったときに変数「nowRow」を+1して、3を格納します。

もちろん、ループしてくると、さらに+1されて4が格納されます。

というように、対象行を3行目から順番に処理することになります。

 

③従業員番号が空なら、ループを抜ける

ここでは、A列(従業員番号)の対象行に値が入力されているかチェックしています。

変数「nowRow」に3が格納されている場合、セルA3に値が入力されているかチェックします。

従業員番号が入力されていない行が見つかると、差込PDF作成処理を終了します。

 

④選択に値が入力されていれば、差込PDFを作成する

ここでは、D列(選択)の対象行に値が入力されているかチェックしています。

変数「nowRow」に3が格納されている場合、セルD3に値が入力されているかチェックします。

選択が入力されている場合、差込PDFを作成する処理を行います。

選択が入力されていない場合、次の行に処理が移ります。

 

⑤必要なデータをひな形に入力する

ここでは、「ひな形」シートの各セルに、「差込データ一覧」シートの該当行の値をセットしています。

具体的には、「ひな形」シートの従業員番号を差込する位置(セル番地)に、「差込データ一覧」シートのA列(従業員番号)の対象行の値をセットします。

次に、「ひな形」シートの氏名を差込する位置(セル番地)に、「差込データ一覧」シートのB列(氏名)の対象行の値をセットします。

最後に、「ひな形」シートの生年月日を差込する位置(セル番地)に、「差込データ一覧」シートのC列(生年月日)の対象行の値をセットします。

差込位置は可変となっているので、sashikomi1~sashikomi3に格納されている値を利用して、セル番地を指定しています。

 

ひな形シートのレイアウトを変更した場合でも、VBAプログラムを変更する必要はありません。

 

⑥ひな形シートでPDFを作成する(作成PDFファイル名を指定する)

ここでは、「ひな形」シートに入力された値で、PDFファイルを作成しています。

ここで指定しているフォルダパスは、好きなフォルダパスに変更してください。

ちなみに、PDFファイル名は、「差込データ一覧」のA列(従業員番号)の値になります。

 

 

以上です。

 

最後まで読んでいただきありがとうございました。
この記事をシェアしていただけると喜びます。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です