- 締切済み
Exel VBA:マクロからの脱出!?
以前にも質問させていただきました。 その後、「ユーザーフォーム」を使ってマクロが一通り 完成しました。ありがとうございました。 ユーザーフォームにデータを入力した場合のマクロ進行 はOKだったんですが、データ入力時に「キャンセル」 を押した場合に、元のマクロ(データを処理するほう) へ戻り「型が一致しない」とエラーが出てしまいます。 そこで、ユーザーフォームでキャンセルされた場合に、 マクロ(プライベートマクロ・通常のマクロとも)を 終了してしまいたいんです。 なんとかお知恵を拝借させてください。 エクセルバージョンは、2000です。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- papayuka
- ベストアンサー率45% (1388/3066)
横から失礼します。 単純にUserFormのOKボタンで一連の作業を実行させれば良いのでは? あと、Hide は隠すだけですので作業が終わったら Unload した方が良いのでは? '標準モジュール Sub データ作表() ユーザーフォーム.Show End Sub '~ユーザーフォーム内のイベントマクロです~ Private Sub OK_Click() 'Dim (変数宣言) ユーザーフォーム.Hide 'ユーザーフォームから得た情報で作表する手順 '・ '・ '・ Unload Me End Sub Private Sub Cancel_Click() 'メッセージボックス表示 Unload Me End Sub
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 そのマクロの内容がわからないと具体的に回答しようがありません。 ただ、Subプロシージャを途中で抜けるのは、 Exit Sub で、Functionプロシージャを途中で抜けるのは、 Exit Function を使用しますが。
補足
早速の回答ありがとうございます。 それでは、概略の内容を・・・。 Sub データ作表() Dim (変数宣言) ユーザーフォーム.show ユーザーフォームから得た情報で作表する手順 ・ ・ ・ End Sub ~ユーザーフォーム内のイベントマクロです~ Private Sub OK_Click ユーザーフォーム.Hide End Sub Private Sub Cancel_Click メッセージボックス表示 ユーザーフォーム.Hide End Sub こんな感じでわかりますでしょうか?