- ベストアンサー
シートのセルの数値がゼロ0のときは、印刷しない方法は
Windows7 Excel2007でマクロ作成の初心者です。 シート数が20枚のブックがあります。セルH3には数値が入っています。 このセルが空欄もしくは数値0のときは、そのシートの印刷をやめたいです。 現在、印刷は以下のコードで実行しています。印刷を省略するにはどうしたらよろしいでしょうか。 Sub シートの印刷() Application.ScreenUpdating = False Dim i As Integer For i = 1 To Worksheets.Count - 9 Worksheets(i).Activate ActiveSheet.PageSetup.PrintArea = "$B$46:$U$89" ActiveWindow.SelectedSheets.PrintOut Next i Worksheets(1).Activate Application.ScreenUpdating = True End Sub
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
IFでは空白も0と判定されますので、0だけ比較すればいいでょう。 また、印刷するシートをいちいちアクティブにする必要はありません。 '-------------------------------------------------- Sub シートの印刷() Dim i As Integer For i = 1 To Worksheets.Count - 9 With Worksheets(i) If .Range("H3").Value <> 0 Then .PageSetup.PrintArea = "$B$46:$U$89" .PrintOut End If End With Next i End Sub '---------------------------------------------- 以上です。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
Sub sheetsprint() Dim sh As Worksheet For Each sh In Worksheets If sh.Range("H3").Value <> 0 And sh.Range("H3").Value <> "" Then MsgBox sh.Name sh.PageSetup.PrintArea = "$A$1:$C$5" ' "$B$46:$U$89" sh.Range("$A$1:$C$5").PrintOut End If Next End Sub 上記は質問にコードと少し変えてます。 "$A$1:$C$5"でテストしたので、質問の範囲に戻してください。 この質問の回答は、IF文を1行入れればすむ、だけのことではないですか。
お礼
すみません。これからもっと勉強します。ありがとうございました。
お礼
ありがとうございました。おかげさまでできました。