ユーザーフォームに配置したテキストボックスに入力した数字に応じて印刷枚数が指定できたら便利だと思いませんか?
ワークシート上で【ファイル】➡【印刷】でページ数や枚数を設定できますが、ボタンひとつで実行できた方が仕事が早いですよね。
EXCEL-VBAならば、このような印刷ダイアログでの作業が無くなるのでとても便利なのでご紹介します。
印刷実行フォームを作成する
図のように、テキストボックスに印刷したい枚数を数字で入力して、【印刷実行】のコマンドボタンを押せば、印刷できるようにするととても便利で、作業効率化できますよね。
もちろん、開始ページと終了ページは予め決めておく必要がありますけどね。
Select Caseステートメントを使う方法
このSelectCaseステートメントは一般的に複数の条件分岐なんて言われていて、条件に応じて処理を振り分けることができるんです。
ここで言う、テキストボックスの値(数字)によって、印刷枚数を決めて処理(印刷)をするってことができるようになります。
Private Sub CommandButton1_Click()
Select Case TextBox1
Case Is = 1
ActiveWindow.SelectedSheets.PrintOut FROM:=1, To:=2, COPIES:=1, COLLATE _
:=True
Case Is = 2
ActiveWindow.SelectedSheets.PrintOut FROM:=1, To:=2, COPIES:=2, COLLATE _
:=True
Case Is = 3
ActiveWindow.SelectedSheets.PrintOut FROM:=1, To:=2, COPIES:=3, COLLATE _
:=True
End Select
End Sub
- コマンドボタン1がクリックされたら
- SelectCaseステートメント開始、テキストボックス1の値が
- 1の場合
- 表示されているシートを選んで1ページ目~2ページ目を1枚印刷する
- 2の場合
- 表示されているシートを選んで1ページ目~2ページ目を2枚印刷する
- 3の場合
- 表示されているシートを選んで1ページ目~2ページ目を3枚印刷する
- SelectCaseステートメント終了
- マクロ記録終了
上記VBAコードはテキストボックスに入力する値が1~3にしてあるので、印刷枚数は1枚~3枚ってことになります。
もっと印刷枚数を設定したいならば、Case Is = 4 以降を繰り返し追加していけば印刷可能になります。
ただ、このままだと、テキストボックスが空欄の時に誤ってコマンドボタンを押してしまうとエラーになってしまいます!
Ifとメッセージを組み合わせてエラー回避
もし、テキストボックスが空欄だったらメッセージを出して処理を止めれば、エラー回避できるので、先ほどのVBAコードに組み入れておくことをおススメします。
追加したVBAコードは赤字の部分です。
Private Sub CommandButton1_Click()
If TextBox1.Value = “” Then
MsgBox “印刷枚数を入力してください”
Else
Select Case TextBox1
Case Is = 1
ActiveWindow.SelectedSheets.PrintOut FROM:=1, To:=2, COPIES:=1, COLLATE _
:=True
Case Is = 2
ActiveWindow.SelectedSheets.PrintOut FROM:=1, To:=2, COPIES:=2, COLLATE _
:=True
Case Is = 3
ActiveWindow.SelectedSheets.PrintOut FROM:=1, To:=2, COPIES:=3, COLLATE _
:=True
End Select
End If
End Sub
- コマンドボタン1がクリックされたら
- もしテキストボックス1が空欄だったら
- 「印刷枚数を入力してください」とメッセージ表示する
- そうでなかったら(空欄でない場合)
- SelectCaseステートメント開始、テキストボックス1の値が
- 1の場合
- 表示されているシートを選んで1ページ目~2ページ目を1枚印刷する
- 2の場合
- 表示されているシートを選んで1ページ目~2ページ目を2枚印刷する
- 3の場合
- 表示されているシートを選んで1ページ目~2ページ目を3枚印刷する
- SelectCaseステートメント終了
- Ifステートメント終了
- マクロ記録終了
これで、テキストボックスが空欄の時はメッセージでお知らせしてくれて、必要枚数を印刷できるようになります。
関連記事
-
印刷
エクセルVBAでテキストボックスに入力した数字で印刷枚数を指定する
ユーザーフォームに配置したテキストボックスに入力した数字に応じて印刷枚数が指定できたら便利だと思いませんか? ワークシート上で【ファイル】➡【印刷】でペ… -
印刷
めんどうな印刷確認を省略してVBAで印刷範囲を指定して印刷する方法
表などを印刷する時に、印刷範囲が決まっていることが多いのに、毎回印刷プレビューで確認したりプリンターの設定確認をするのは面倒だと思いませんか? そこで予め印刷… -
印刷
エクセルVBAで未入力データがあるかどうか確認してから印刷する方法
エクセルで表や請求書などを印刷する時に、必要なデータが未入力のままで気づかずに印刷してしまったことありませんか? 紙の無駄になるので印刷する前に自動的に請求書… -
印刷
VBAで印刷プレビューするとフリーズして操作不能になる時の対処法
エクセルで印刷する前に確認の為に印刷プレビューを実行することがあると思いますが、フリーズして操作不能になってしまった経験はありませんか? ユーザーフォームに間… -
印刷
エクセルのセル値を取得して印刷ページ数・枚数を自動変更する方法
ページを印刷する時に、印刷ページや枚数を選ぶ作業って面倒だと思いませんか? エクセルで印刷するに毎回【ファイル】➡【印刷】を選ぶところから始まり、ページ…
紅葉スポット
-
八ッ場ダムの近くにある鹿飛橋と白絹の滝へ吾妻渓谷の紅葉へ
何かと話題の群馬県の八ッ場ダムの近くにある吾妻渓谷は、吾妻川の水が侵食して深い峡谷を作った為に、自然にできた谷深い峡谷となっています。 その吾妻側の周りの木々… -
富津市の紅葉名所もみじロードへ上総湊駅や浜金谷駅からバスで行く
JR内房線の上総湊駅と浜金谷駅からバスで行くことができますが、もみじロードは10㎞もあるので歩いて全てを見ることはかなり難しいと思いますので、それぞれ行ける範囲… -
草津温泉スキー場の天狗山紅葉とライトアップされた西の河原散策へ
10月になると早々に紅葉を見ることができるので、今年の紅葉狩りのスタートはここ草津温泉からと言っても過言ではありません。 草津温泉の湯畑が有名ですが、すぐ近くに… -
鬼怒川温泉駅からバスで川俣ダムと瀬戸合峡渡らっしゃい吊橋紅葉へ
【紅葉見頃】10月中旬~11月上旬 紅葉を見に日光を訪れて中禅寺湖周辺を目指して、大渋滞や混雑に巻き込まれて大変な思いをした方多いと思いますが、関東エリアの紅葉… -
竜神大吊橋の紅葉まつりへ常陸太田駅から路線バスで紅葉絶景へ
竜神大吊橋バンジーや5月の1000匹の鯉のぼりでテレビで取り上げられることが多い竜神大吊橋ですが、実はこの周辺は竜神峡にはもみじなども多く紅葉も年々認知されてきて… -
長門峡の紅葉橋・竜宮淵へバスで紅葉も雪景色も楽しめる萩紅葉名所
日本の自然100選にも選ばれ紅葉シーズンには臨時シャトルバスも運行される長門峡(ちょうもんきょう)へは、JR山口線でも防長交通バスでも行くことができるので、全長5….