[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『印刷時特定のセルに入力があればそのページすべて印刷し、入力がなければ印刷しない』(あーちゃん)
曜日の固定されたボックス型のカレンダー型(月曜日始まり)の表を
作成していますが、1日の工程などを書き込むスペースが大きいため
全部で4ページに渡ります。
ただ、土曜日始まりで大の月ならば4ページの印刷ですが
日曜日始まりの2月などでしたら3ページの印刷で済みます。
これを自動で印刷範囲を変えるマクロはできるのでしょうか。
たとえば1ページ目ならば1ページ目の最期の日付は絶対に入力されているので
そのセル(L8)に入力があれば印刷する。
2ページ目は最初の日付のセル(B10)は入力されるので印刷する。
3ページ目は最初の日付のセル(B16)は入力されるので印刷する。
4ページ目は最初の日付のセル(B22)に入力せれていれば
4ページ目すべてを印刷するが、入力されていなければ印刷しない。
このような方法のマクロは可能ですか。
それとも、もっと簡単なアプローチはありますでしょうか。
< 使用 Excel:Excel2007、使用 OS:Windows8 >
数式で印刷範囲を設定するというような方法も出来そうですが、 http://miyahorinn.fc2web.com/tips/s_07_10.html
マクロでやるとしてこんな感じでしょうか。 ThisWorkbook の下においてください。
Private Sub Workbook_BeforePrint(Cancel As Boolean) If ActiveSheet.Name <> "印刷シート" Then Exit Sub '// 実際の対象シート名にしてください
Cancel = True If Range("L8").Value = "" Then MsgBox "印刷データがありません。" Exit Sub End If
Application.EnableEvents = False If Range("B22").Value <> "" Then ActiveSheet.PrintOut From:=1, To:=4 ElseIf Range("B16").Value <> "" Then ActiveSheet.PrintOut From:=1, To:=3 ElseIf Range("B10").Value <> "" Then ActiveSheet.PrintOut From:=1, To:=2 Else ActiveSheet.PrintOut From:=1, To:=1 End If Application.EnableEvents = True End Sub
(Mook) 2015/03/12(木) 19:55
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.