こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBAオプションボタンの選択画面に戻りたい

皆さんこんにちは。
エクセルVBAの初心者です。
選択画面に戻るためのコードが足りていない感じなのですが・・
ご教授をお願いします。
※エクセル2013を使用しています。

ユーザーフォーム1で作成書類を5種類から選択するようにしました。
選択後、「次へ」のボタンを押すと
『○○が選択されています。支社選択画面に移動します。』という
メッセージが出るようにコードを作りました。

「OK」を押せば次の選択画面が開くように今後作っていく予定なのですが
「キャンセル」を押すとユーザーフォーム1が画面から消えるようになってしまっています。

やりたい事は「キャンセル」を押し『処理をキャンセルしました。』と
メッセージが出た後に
最初のユーザーフォームで作成書類を選択し直すところに戻りたいのです。

私が作成したコードを記載しますので
どこがどう間違っているのか、何が足りないのか
ご教授いただければ幸いです。
-----------------------------------------------------
Private Sub CommandButton1_Click()
Dim myMSG As String
Dim i As Integer
For i = 1 To 5
If Me.Controls("OptionButton" & i).Value = True Then
myMSG = Me.Controls("OptionButton" & i).Caption
End If
Next i
intRtn = MsgBox(myMSG & vbCrLf & "が選択されています。" & vbLf & _
"支社選択画面に移動します。", _
vbOKCancel + vbExclamation + vbDefaultButton2, _
"作成書類選択")
If intRtn <> vbOK Then
MsgBox "処理をキャンセルしました。"
End
End If
intRtn = MsgBox("処理を続行します。", vbOKCancel + vbExclamation + vbDefaultButton2, _
"作成書類選択")
If intRtn <> vbOK Then
MsgBox "処理をキャンセルしました。"
End
End If

End Sub

投稿日時 - 2015-03-16 11:27:46

QNo.8936808

困ってます

質問者が選んだベストアンサー

こんにちは。

全体の呼び出し関係が見えないので、
的確なアドバイスができるか解りませんが、

> If intRtn <> vbOK Then
> MsgBox "処理をキャンセルしました。"
> End
> End If



If intRtn = vbCancel Then
MsgBox "処理をキャンセルしました。"
Me.Hide
Userform1.Show
End If

のように。

> If intRtn <> vbOK Then
> MsgBox "処理をキャンセルしました。"
> End
> End If



If intRtn = vbCancel Then
MsgBox "処理をキャンセルしました。"
Me.Hide
Userform1.Hide
End If

のように。

書換えてみたら如何でしょう。
Userform1.Show
Userform1が表示中なら本来は不要ですが、
それでも必要になる場合もあります。

先々の話として付け加えておきますが、
End ステートメントはなるべく使わない方がトラブルフリーです。
モードレス表示ならまだしも、ですが、
呼び出し元のプロシージャで待機中の処理が残っていたりすると、
Excelが落ちるような場合もあります。
Userformは、.Showしたら.Hideするようにして、
最後の最後、今日はもう使わないって時にUnLoadするような
運用にするといいでしょう。

とりあえず以上ですが、解決に至らないかも知れませんので、
何かあれば補足してみて下さい。状況が解れば再度お応えします。

投稿日時 - 2015-03-16 13:05:32

お礼

realbeatinさん

今回もrealbeatinさんのご回答で助かりました(^-^;)
修正していただいたコードをコピペして動かして・・・あれ?最後の最後でエラーだ。
もう一度ご回答を読みかえして・・あ!UnLoadの部分が足りてないや!と
realbeatinさんのご回答&ヒントを元に
アレコレ試行錯誤してなんとか解決に至りました。
いつも大変勉強になります。ありがとうございましたm(_ _)m

投稿日時 - 2015-03-17 09:13:40

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問