Step27 チェックボックスを追加し指定で送り状も印刷する

チェックボックスを追加しチェックされていれば、Excel請求書の印刷と同時に送り状も印刷するようにします。

チェックボックスがチェックされているかどうかは、CheckBox1.ValueプロパティがTrueならばチェックされていてFalseならばされていません。これをIF関数で判定します。

VBAでシートの印刷はWorksheets(シート名).PrintOutで出来ますが、複数シートの印刷はWorksheets(Array(シート名1,シート名2)).PrintOutのようにArray関数を使い配列を指定します。
このように複数シートの印刷を実行した結果、自動的に作業グループが設定されてしまい個別のシート操作ができなくなってしまいます。 例えば請求書シートのみに配置しているコマンドボタンはクリックできません。
作業グループとは複数シートにまとめて入力したり、設定したりできる便利機能ですが、ここでは必要ないので印刷終了後解除します。

作業グループの解除をVBAで行うには簡単で、特定のシートを選択するだけで可能です。 コードはWorksheets(シート名).Selectになります。


Homeに戻る > Excelでアプリケーションソフト3 > 請求書アプリ

作成画面

■チェックボックス コントロールを配置しプロパティを設定する

リボンの[開発]-コントロールグループの[挿入]-ActveXコントロール部分の[チェック ボックス]をクリックし印刷ボタンの下に配置します。
ActveXコントロール部分の[チェック ボックス]をクリック

1.チェックボックスをドラッグし配置します。
2.背景を透明にします。 プロパティのBackStyleで0-frmBackStyleTransparentを選択します。
3.ラベルにタイトルを変更します。 Captionに送り状印刷と入力します。
4.初期値は送り状を印刷するにします。 ValueをTrueにします。
チェックボックスをドラッグし配置


■チェックボックスを判定し、複数シートを印刷する

印刷ボタンのクリックイベントを下記のコードに変更します。

If CheckBox1.Value = True Then
    Worksheets(Array("請求書", "送り状")).PrintPreview
Else
    Worksheets("請求書").PrintPreview
End If

これでチェックボックスがONの場合、請求書と送り状を印刷し、OFFの場合請求書のみ印刷します。
印刷プレビュー結果です。 2ページ目が送り状になっています。
請求書と送り状を印刷

印刷が完了すると下画像の矢印部分のように[作業グループ]と表示され、複数シートが選択状態になっています。 このままですと手動で作業グループを解除しないとボタン等の操作ができません。
[作業グループ]と表示

■作業グループをVBAで解除する

解除は簡単で請求書シートのみ選択するとできます。 下記のVBAコードを追加してください。
Worksheets("請求書").Select

[関連リンク]

Step13 印刷ボタンを設置する
Step26 送り状を印刷設定し請求書に戻す
Excelで表を使った顧客管理ソフトを作ってみよう Step 17 はがき連続印刷
Excelで年賀状印刷ソフトを作ってみよう
見積書を印刷する
Excelで超シンプルなはがき印刷ソフトを作ってみよう
マイクロソフトエクセルのVBAでプログラムを作る 印刷関連のエクセルTips
印刷プレビューの表示倍率を設定:Excel Tips
引数を設定し印刷ダイアログボックスを表示する
複数の範囲をタイトルをつけ印刷する


Homeに戻る > Excelでアプリケーションソフト3 > 請求書アプリ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved