プロが教えるわが家の防犯対策術!

現在のVBAに以下の仕組みを追加したいです。
T1に連動して変化するE7が0と表示された場合そのページの印刷をスキップする方法を教えてください!
現在このような状態です。

Sub Print2()
 Dim i As Integer
 Dim Start_Point As Integer
 Dim End_Point As Integer

Start_Point = Worksheets("管理表").Range("V4").Value
End_Point = Worksheets("管理表").Range("X4").Value

For i = Start_Point To End_Point
  Worksheets("表紙").Range("T1") = i
  Worksheets("表紙").PrintOut
Next i
End Sub

E7は以下の式が入っています。
=VLOOKUP(T1,出力用ファイル!A2:F1995,2,FALSE)

よろしくお願いします!!
初心者なので式を教えて頂けると幸いです。

A 回答 (2件)

こんにちは



すでに回答がでていますが、Eご質問の言葉通りに「E7の値によって印刷する/しないを決め」るようにすればよろしいかと。

すこし、書き直しましたが・・・

Sub Print2()
Dim i, sk, sh
Set sk = Worksheets("管理表")
Set sh = Worksheets("表紙")

For i = sk.Range("V4").Value To sk.Range("X4").Value
 sh.Range("T1") = i
 If sh.Range("E7").Value <> 0 Then sh.PrintOut
Next i
End Sub

とかではいかがでしょうか?
    • good
    • 0

こんにちは!



>E7は以下の式が入っています。
というコトなので、E7セルに「0」が表示される場合は
「出力用ファイル」シートのA列には検索値があり、B列が空白の場合ですかね?
もしそうであれば、コードで処理はできると思いますが、
とりあえずお示しのコードを利用してみました。

 Worksheets("表紙").Range("T1") = i
 Worksheets("表紙").PrintOut



 With Worksheets("表紙")
  .Range("T1") = i
   If .Range("E7") <> 0 Then
    .PrintOut
   End If
 End With

に変更したらどうなりますか?

※ 印刷をしない場合でもT1セルは「i」が表示されます。
すなわちT1セルに連番を入れたいのであれば番号が飛んでしまうコトになります。

それを回避するには
>.Range("T1") = i
の行を
>If .Range("E7") <> 0 Then
の次に移動させてみてください。

未検証なのでお望みどおりにならなかったらごめんなさい。m(_ _)m
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!