エクセルで表や請求書などを印刷する時に、必要なデータが未入力のままで気づかずに印刷してしまったことありませんか?
紙の無駄になるので印刷する前に自動的に請求書などの宛名などが、未入力の場合に自動的に印刷を中止させる方法をご紹介いたします。
指定したセルが空欄の時に印刷中止するVBA
この方法はいくつかVBAコードがありますが、普段使用しているVBAコード2つあり一つ目は、If~Elseを使う方法、二つ目はBeforePrintをご紹介します。
If~Else
この方法は、ユーザーフォームに配置したコマンドボタンにセルA2が空欄の時に印刷を中止するVBAコードを記述しています。
エクセルファイル全体ではなく、個別に設定するにはこの方法をおススメし、私自身もこの方法を主に使っています。
宛名入力の部分は「セルA2」とします。
Private Sub CommandButton1_Click()
If Range(“A2”).Value = “” Then
MsgBox “宛名が入力されていません”
Else
ActiveWindow.SelectedSheets.PrintOut FROM:=1, To:=1, COPIES:=1, COLLATE _
:=True
End If
End Sub
- コマンドボタン1がクリックされたら
- もしセルA2が空欄だったら
- 「宛名が入力されていません」とメッセージを表示する
- そうでなかったら(空欄ではない場合)
- 表示しているシートを1ページ目~1ページ目までを1部印刷する
- Ifステートメント終了
- マクロ記録終了
BeforePrintを使う方法
この方法は、エクセルファイル自体に書き込む方法で、 セルA2が空欄の時に印刷を中止するVBAコードを記述していますが、このVBAコードを書き込む場所はThisWorkBookですよ!
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Range(“A2”).Value = “” Then
MsgBox “宛名が入力されていません”
Cancel = True
End If
End Sub
- エクセルファイルに含まれる内容を印刷する前に行う
- もし、セルA2が空欄だったら
- メッセージで「宛名が入力されてません」と表示
- 印刷中止を実行する(印刷しない)
- IFステートメント終了
- マクロ記録終了
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
ただこの方法、先ほどもお話ししたように私自身もう使っていません。
BeforePrint を使っていない理由は、このVBAコードだけでは見ての通り、印刷するVBAコードPrintメソッドは書いていませんので、当然ながら印刷をすることはできません。
別途印刷を指示するVBAコードを記述する必要があります。また、A2以外の場所を更に指定したい時には対応できないからです。
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
やはりマクロを記録するならば、しっかりとセルを指定した方が、エラーになる事が無いのでIFステートメントの方が安心ですよ。
関連記事
-
エクセルVBAで未入力データがあるかどうか確認してから印刷する方法
エクセルで表や請求書などを印刷する時に、必要なデータが未入力のままで気づかずに印刷してしまったことありませんか? 紙の無駄になるので印刷する前に自動的に請求書… -
めんどうな印刷確認を省略してVBAで印刷範囲を指定して印刷する方法
表などを印刷する時に、印刷範囲が決まっていることが多いのに、毎回印刷プレビューで確認したりプリンターの設定確認をするのは面倒だと思いませんか? そこで予め印刷… -
エクセルVBAでテキストボックスに入力した数字で印刷枚数を指定する
ユーザーフォームに配置したテキストボックスに入力した数字に応じて印刷枚数が指定できたら便利だと思いませんか? ワークシート上で【ファイル】➡【印刷】でペ… -
VBAで印刷プレビューするとフリーズして操作不能になる時の対処法
エクセルで印刷する前に確認の為に印刷プレビューを実行することがあると思いますが、フリーズして操作不能になってしまった経験はありませんか? ユーザーフォームに間… -
エクセルのセル値を取得して印刷ページ数・枚数を自動変更する方法
ページを印刷する時に、印刷ページや枚数を選ぶ作業って面倒だと思いませんか? エクセルで印刷するに毎回【ファイル】➡【印刷】を選ぶところから始まり、ページ…
紅葉スポット
-
フリーきっぷで行く12月が見頃の関東近郊の紅葉スポット
渋滞避けて電車とバスでお得なフリーパスや1日乗車券を使って、のんびり紅葉を見に行きませんか? 温暖化の影響で12月上旬でも関東南部では紅葉を見られる場所がまだま… -
長門峡の紅葉橋・竜宮淵へバスで紅葉も雪景色も楽しめる萩紅葉名所
日本の自然100選にも選ばれ紅葉シーズンには臨時シャトルバスも運行される長門峡(ちょうもんきょう)へは、JR山口線でも防長交通バスでも行くことができるので、全長5…. -
フリーきっぷで行く埼玉県内の紅葉名所や穴場スポット12選
紅葉絶景めぐりといえば日光や軽井沢が人気紅葉スポットですが、人混みを避けてお得なフリーパスを使って最寄り駅からバスでゆったり紅葉を見に行ってみませんか? 埼玉… -
フリーきっぷで行く千葉県内の紅葉名所や穴場スポット7選
10月中旬頃から始まる関東地方の紅葉も11月中旬過ぎると、ようやく千葉県内の紅葉名所ももみじが真っ赤に色づいて見頃になってきます。 千葉県内の紅葉は12月上旬まで楽… -
縁起だるま発祥の少林山達磨寺境内の真っ赤に染まる紅葉景色へ
【紅葉見頃】11月下旬~12月上旬 高崎市内循環バス「ぐるりん」バスのフリーエリア内にあるので、縁起だるま発祥の少林山達磨寺へ紅葉の時期になったら訪れてみてはい… -
宝徳寺の紅葉へ関東では貴重な本堂の床に反射する床もみじが見られる
【紅葉見頃】10月中旬~11月下旬 京都でたくさんのお寺で見られる本堂の床に映り込んで真っ赤な紅葉が見られる床もみじが、関東では貴重で群馬県桐生市にある宝徳寺で…