Pocket

仕事柄チェックシートを大量に印刷することがよくあるのですが、型は固定で内容が一枚ずつ違うシートを大量に印刷しないといけないので手作業で行うにはめちゃくちゃ面倒くさいです。

今回はそんな面倒な印刷をexcel関数とVBAを使って自動化する方法のご紹介です。

スポンサーリンク

テンプレートの作成

下の画像のステータス列にそれぞれ別の値を入れて印刷を行うとします。

その場合まず「Sheet1」に印刷したいステータス欄を空白の状態で作成します。

 

次に「Sheet2」にステータス欄に入れる内容の一覧を作成します。

一覧を作成する際には必ず一番左セルに通し番号を記載し、入力したい内容を右側セルに記載していきます。

今回は1行目に項目を入れています。項目を入れておくと後々に編集するときに確認しやすいので予め入れておくことをおすすめします。

これでテンプレは完成です。

 関数の挿入

今回はSheet1の「D1セル」に番号を記入すると、Sheet2のA列の番号の項目がステータス欄に入るようにします。

関数は「vlookup」を使用します。

「vlookup」とは指定範囲の中から検索条件に合致する値を返してくれる関数です。

これを使ってSheet1のステータス欄にSheet2のそれぞれの値を挿入していきます。

vlookupの書き方は

=vlookup(検索値 , 範囲 , 列番号 , 検索方法)

 検索値 : 検索する値を指定します。(今回はD1セルとなります。)

 範囲  : 検索を行う範囲を指定します。(今回はSheet2の作成した表を指定します。)

 列番号 : 指定した範囲の内左から何番目の列の値を返すかを指定します。

 検索方法: 「FALSE」か「TRUE」を指定します。
       「FALSE」は検索値と完全に一致する値だけを範囲の中から検索します。
       「TRUE」は検索値と一致する値がない場合、一番近い値を検索します。

これを各項目のステータス欄に挿入にします。

項目 ステータス
種別 =VLOOKUP(D1,Sheet2!A1:D6,2,FALSE)
好物 =VLOOKUP(D1,Sheet2!A1:D6,3,FALSE)
=VLOOKUP(D1,Sheet2!A1:D6,4,FALSE)

これでD1に番号を入れると各ステータスが自動で表示されるようになります。

VBAの挿入

VBAを使ってD1セルに番号を自動挿入してから印刷を行うように設定します。

VBAについては前回記載しましたので下記を参照して下さい。

面倒なExcel操作を簡単自動化!!VBAの使い方

番号を自動入力するコードの作成

使用するコードは「For ~ Next」構文です。

これは指定された回数だけ一連の処理を繰り返してくれます。

使用方法を簡単に書くと

For 変数 = 開始点 to 終了点

 —–処理—–

Next 変数

となります。

今回はデータが1~5まであるので、開始点を「1」終了点を「5」変数を「i」とします。

※変数は任意の文字で構いません。

これでSheet1のD1セルに1~5まで順番に入力されていきます。

自動印刷コードの作成

印刷を行うときは「.PrintOut」を使用します。

使い方は簡単で下記一行を入れてあげるだけで印刷を行います。

また、予め印刷範囲をSheet側で決めておけばその範囲で印刷を行います。

印刷を行いたいシート名.PrintOut

今回はD1セルに番号が入ったタイミングで印刷を行うようにすれば、1~5番の印刷が行えるので先程作成したコードに挿入します。

VBEに各コードを記述

上記で作成したコードを実際に使用できる形で記述します。

For文の上にあるDimは変数を宣言するためにあります。

今回使用した変数の「i」は整数を代入するものなので「Integer」を宣言します。

開始点と終了点の数字を変更すれば、印刷したい番号だけを印刷することも可能です。

開始点と終了点をVBEを開かずに指定する

上記までで自動印刷は可能ですが、どうせならVBEを開かずとも開始点と終了点を決定できるように修正します。

こうしておけばVBAを知らない人でも使いやすくなるのでおすすめです。

開始点と終了点入力箇所の作成

これはとても簡単で、下図のように印刷範囲外にここに入れてねっという枠を用意してあげればOKです。

F5セルに開始点、H5セルに終了点を入れてあげればOKです。

ここに入力した数字を変数に入れて印刷を行います。

開始点と終了点を変数に代入

今回使用する変数はわかりやすく

 ・開始点 : Start_Point

 ・終了点 : End_Point

を使用します。

※特に決まりはないので好きなものを使って構いません。

まずはこの変数の値をそれぞれF5セルの値とH5セルの値に決定します。

後はこのコードを先程のコードに付け加えて、開始点と終了点の数字を変数に変えてあげれば完成です。

これで印刷の自動化はできました。

ですが、これだと実行するのにVBEを開かないといけないので少し手間がかかってしまいます。

なので次回はコマンドボタンを使用して、ボタン一つで実行可能にする方法をご紹介します。

よかったらそちらも見に来て下さい。

Pocket

スポンサーリンク