質問: VBAの記述についての質問です。 下記6つのワークシートがあります。 入力 時間 連携 再計算 余力 枠
回答: まずは空セルの判定方法ですが、 Range("A1") = "" はよくやる手ですが、正確には IsEmpty(Range("A1")) = True を使うべきです。 それと、蛇足ですが Sheets(Array(*****).PrintOut は「)」が1つ足りません。正確には Sheets(Array(*****)).PrintOut です。 基本的には補足のコードで良いと思うのですが、以上を踏まえて If IsEmpty(Range("A1")) = True And _ IsEmpty(Range("B1")) = True And _ IsEmpty(Range("C1")) = True And _ IsEmpty(Range("D1")) = True Then Sheets("時間").PrintOut Else If IsEmpty(Range("C1")) = True And _ IsEmpty(Range("D1")) = True Then Sheets(Array("時間", "連携", "再計算")).PrintOut Else If IsEmpty(Range("D1")) = True Then Sheets(Array("時間", "連携", "再計算", "余力")).PrintOut Else If IsEmpty(Range("A1")) = False And _ IsEmpty(Range("B1")) = False And _ IsEmpty(Range("C1")) = False And _ IsEmpty(Range("D1")) = False Then Sheets(Array("時間", "連携", "再計算", "余力", "枠")).PrintOut End If End If End If End If ただ、気がかりがあります。 A1~D1の入力の有無の組み合わせは全部で16通りあります。 そこを考慮しているかと言うことです。 例えば、条件2の「入力シートのセルC1とD1が空白の時」だと A1│B1│C1│D1 ─┼─┼─┼─ 空│空│空│空 1 ─┼─┼─┼─ 空│有│空│空 ─┼─┼─┼─ 有│空│空│空 ─┼─┼─┼─ 有│有│空│空 4 と4パターンあります。 そのうち1は条件1に一致するので除外出来ますが、 残り3つは条件を満たしているので全て印刷されます。 それで良ければ、あるいは4しか起こらない前提とかなら問題無いのですが、 質問からはそのあたりのことが読み取れないので少し気がかりです。