• 締切済み

連続印刷中の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がありませんと出ました どうすれば良いでしょうか

みんなの回答

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.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

masaojisan
質問者

お礼

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

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>iをFor・・・Nextで回し50枚程度の印刷を行うのですが、 提示されたコードではそのようになっていません。 iが10なのに、メッセージが15ページというのも・・・。 エラーメッセージの通り、Forがありませんし、IF文も完結していません。 Select Case 文も無駄(意味がない)です。 50枚って、同じ物を50枚でしょうか? それとも1ページから50ページと言うことですか? 出来れば印刷部分のコードを全て提示してください。

masaojisan
質問者

補足

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

関連するQ&A