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

エクセルVBAで作業をしています
iをFor・・・Nextで回し50枚程度の印刷を行うのですが、
途中15枚程度で続行か中止かをMsgBoxで振り分けを行いたいのですが
プリントOUT処理の後
If i = 10 Then
    ans2 = MsgBox("15枚印刷しましたまだ続けますか?", vbYesNo + vbInformation, "印刷実行")
    Select Case ans2
     Case vbYes
    Select Case ans2
     Case vbNo
     Exit For
     End Select
Next i
 End With
 End Select

End Sub
書くとNextに対するFORがありませんと出ました
どうすれば良いでしょうか

A 回答 (2件)

単に if 文に対する End If 文が無いからでは?


if i = 10 Then
    ans2 = MsgBox("15枚印刷しましたまだ続けますか?", vbYesNo + vbInformation, "印刷実行")
    Select Case ans2
     Case vbYes
    Select Case ans2
     Case vbNo
     Exit For
     End Select
  End If '********
Next i
 End With
 End Select
    • good
    • 0
この回答へのお礼

ありがとうございます
私もそれを思ったのですが
分かった事ですが
END IFだけでは駄目で
Select Case ans2
     Case vbYes
が不要でした
上記を書いたまま END IF を入れるとEND IFに対するIF文が有りませんってとエラーが出たので迷っていました。

お礼日時:2007/11/22 12:32

>iをFor・・・Nextで回し50枚程度の印刷を行うのですが、



提示されたコードではそのようになっていません。
iが10なのに、メッセージが15ページというのも・・・。
エラーメッセージの通り、Forがありませんし、IF文も完結していません。
Select Case 文も無駄(意味がない)です。

50枚って、同じ物を50枚でしょうか?
それとも1ページから50ページと言うことですか?

出来れば印刷部分のコードを全て提示してください。

この回答への補足

解答頂いて申し訳ないのですが
私の書いた文面に不適切なところも有るかと思いますが、もう少し
読んで解答下さい。
回答頂きたい内容は
”Nextに対するFORがありません”のエラーに対してですが、FORはずっと上位で書いています、中文を削除してプリントOUT後だけを明記しました。
10はテスト的に行おうかと10にしただけですよその辺りはこの質問とは関係ないはずですが何故つっこむのでしょうか
50枚は全然違った物です、別シートのデータより貼り付け印刷です
以上ですが分かって頂けますか

補足日時:2007/11/22 11:47
    • good
    • 0

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