以前にも質問させていただきました。
その後、「ユーザーフォーム」を使ってマクロが一通り
完成しました。ありがとうございました。

ユーザーフォームにデータを入力した場合のマクロ進行
はOKだったんですが、データ入力時に「キャンセル」
を押した場合に、元のマクロ(データを処理するほう)
へ戻り「型が一致しない」とエラーが出てしまいます。

そこで、ユーザーフォームでキャンセルされた場合に、
マクロ(プライベートマクロ・通常のマクロとも)を
終了してしまいたいんです。

なんとかお知恵を拝借させてください。
エクセルバージョンは、2000です。

A 回答 (2件)

横から失礼します。


単純に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
    • good
    • 0

こんにちは。

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

こんな感じでわかりますでしょうか?

補足日時:2003/09/25 12:18
    • good
    • 0

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


人気Q&Aランキング