エクセルのセル値を取得して印刷ページ数・枚数を自動変更する方法

エクセル検索
HOMEUserForm印刷画面ファイル図形
日付・時刻データセル関数VBA関数

ページを印刷する時に、印刷ページや枚数を選ぶ作業って面倒だと思いませんか?

エクセルで印刷するに毎回【ファイル】➡【印刷】を選ぶところから始まり、ページ・枚数まで何行程もあるのですが、PrintOutメソッドを使えば、ワンクリックで印刷ができるので使い方をご紹介します。

PrintOutメソッド

Excel-VBAで印刷をコントロールするのがPrintOutメソッドで、印刷の基本設定や印刷プレビュー表示などができます。

ページ数のTO・FROMをセル自体に指定する

ページ数を指定するToとFromを数字ではなくセルを指定してみたら、上手くできたのでこの方法をいつも使っています。

まずは、分かりやすくToとFromを数字からセルを指定したVBAコードを書きます。

シートは「HOME」で開始ページ数を入力しているセルは「BM2」、終了ページ数を入力しているセルは「BM3」とし、印刷枚数は1枚を固定しています。

VBAコード

Private Sub CommandButton1_Click()
ActiveWindow.SelectedSheets.PrintOut FROM:=Sheets(“HOME”).Range(“BM2”).Value, To:=Sheets(“HOME”).Range(“BM3”).Value, COPIES:=1, COLLATE:=True
End Sub

解説
  1. コマンドボタン1をクリックしたら
  2. 表示されているシートを印刷で、開始ページ数はシート「HOME」のセル「BM2」の値を開始ページ数にする
  3. 終了ページ数はシート「HOME」のセル「BM3」の値を終了ページ数にして、印刷枚数1、部単位。
  4. マクロ記述終了

これで、人数など条件が変わるとセルBM2、BM3に変更された数字が計算されて入力されているので、わざわざ、開始ページ・終了ページを設定しなくても自動的に印刷されるようになります。

波乗りアヒル

意外と難しくないでしょう、でも使うことが少ないのか、需要が無いのか、あまりこの方法って具体的に載っていませんでした。

エラー回避とメッセージと自動復帰を追加しよう

このままのVBAコードでは、印刷ができるのですが、コマンドボタンを誤って押してしまうと印刷が始まってしまうので誤クリック防止の為にメッセージを出しましょう。

エラー回避追加VBAコード

Private Sub CommandButton1_Click()
msg = MsgBox(“レコードシートを印刷しますか?”, Buttons:=vbYesNo + vbQuestion)
If msg = vbYes Then
ActiveWindow.SelectedSheets.PrintOut FROM:=Sheets(“HOME”).Range(“BM2”).Value, To:=Sheets(“HOME”).Range(“BM3”).Value, COPIES:=1, COLLATE:=True
Else
Unload UserForm5
Sheets(“R”).Select
Range(“A1”).Select
MsgBox “15秒後に自動復帰します”
Application.OnTime Now + TimeValue(“00:00:15”), “RSTIME”
End If
End Sub

解説
  1. コマンドボタン1をクリックしたら
  2. メッセージで「はい」「いいえ」を選択させる
  3. 「はい」を押したら
  4. 表示されているシートを印刷で、開始ページ数はシート「HOME」のセル「BM2」の値を開始ページ数にする
  5. 終了ページ数はシート「HOME」のセル「BM3」の値を終了ページ数にして、印刷枚数は1、部単位
  6. 「いいえ」を選択したら
  7. UserForm5を閉じて
  8. シート「R」を選択
  9. セル「A1」選択
  10. 「15秒後に自動復帰します」というメッセージを表示する
  11. タイマー設定して15秒後に「RSTIME」というプログラムを作動させる
  12. Ifステートメント終了
  13. マクロ記録終了

ちょっと長くなりましたが、簡単にいうと、「はい」を選択したら印刷開始、「いいえ」を選択したら、15秒間印刷内容を閲覧出来て、15秒後にRSTIME(元に戻るプログラム)を作動させるという事です。

波乗りアヒル

これをやっておかなかった時は、間違って押したら印刷されてしまい、紙の無駄があったのと、数秒後に元に戻る事ができて、マクロエラーも回避できました。

関連記事

どこかにビューーン
ちょっとの工夫で往復無料の時代が来た!!

新着ページ

よく見られているページ

大容量無料ファイル転送サービス【ACデータ】 無料イラスト【イラストAC】

紅葉スポット