- 締切済み
連続印刷中のMsgBox
エクセル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がありませんと出ました どうすれば良いでしょうか
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- don_go
- ベストアンサー率31% (336/1059)
単に 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
- hana-hana3
- ベストアンサー率31% (4940/15541)
>iをFor・・・Nextで回し50枚程度の印刷を行うのですが、 提示されたコードではそのようになっていません。 iが10なのに、メッセージが15ページというのも・・・。 エラーメッセージの通り、Forがありませんし、IF文も完結していません。 Select Case 文も無駄(意味がない)です。 50枚って、同じ物を50枚でしょうか? それとも1ページから50ページと言うことですか? 出来れば印刷部分のコードを全て提示してください。
補足
解答頂いて申し訳ないのですが 私の書いた文面に不適切なところも有るかと思いますが、もう少し 読んで解答下さい。 回答頂きたい内容は ”Nextに対するFORがありません”のエラーに対してですが、FORはずっと上位で書いています、中文を削除してプリントOUT後だけを明記しました。 10はテスト的に行おうかと10にしただけですよその辺りはこの質問とは関係ないはずですが何故つっこむのでしょうか 50枚は全然違った物です、別シートのデータより貼り付け印刷です 以上ですが分かって頂けますか
お礼
ありがとうございます 私もそれを思ったのですが 分かった事ですが END IFだけでは駄目で Select Case ans2 Case vbYes が不要でした 上記を書いたまま END IF を入れるとEND IFに対するIF文が有りませんってとエラーが出たので迷っていました。