エクセルVBA 赤ペン先生をお願いします
皆さんこんにちは。
エクセル2013使用しているVBA初心者です。
エクセルVBAでコードをど根性&こちらで質問させていただいた時のご回答を元に
作成してみたのですが思うような動作になりません。
下記のコードが美しくないのも重々承知しておりますが
下記内容で修正するべき個所を教えていただけないでしょうか。
やりたい事は
・ユーザーフォーム5でフレームが2個あり
1個は作成書類を7個から1つ選択
もう1個は支社を7個から1つ選択
→「次へ」のボタンを押すと「○○と△△支社を選択しています。お客様情報に~」のメッセージ表示
→OK→処理を続行します→OKならユーザーフォーム4(お客様情報)を開く
キャンセル→処理を中断します→ユーザーフォーム5を再度表示して選択し直せるように・・・
という事をやりたいのですが知識不足の上いくら参考書等を探しても
これだ!というものにたどりつけずに困っています。
「○○と△△支社が選択されています」の箇所も
myMSG & vbCrLf & "と" & myMSG & だと「△△と△△支社が選択されています」に
なってしまうのは理解出来ているのですが代わりにいれるコードも分かりません。
また、「メッセージ表示のOK」を押して「処理を続行しますのキャンセル」を押しても
ユーザーフォーム5に戻ることはなくユーザーフォーム4に
進んでしまう始末です。
毎度拙い質問文で申し訳ございませんが
どうか皆様のお知恵をお借りできないでしょうか。
※コードはコマンドボタン1(次へ)に書いてあります。
----------------------------------------------------------------------------------
Private Sub CommandButton1_Click()
Dim myMSG As String
Dim i As Integer
For i = 1 To 14
If Me.Controls("OptionButton" & i).Value = True Then
myMSG = Me.Controls("OptionButton" & i).Caption
End If
If (OptionButton1 Or OptionButton2 Or OptionButton3 Or OptionButton4 Or OptionButton5 Or OptionButton6 Or OptionButton7) = False Then
MsgBox ("作成する書類を選択して下さい")
Me.Hide
UserForm5.Show
End If
If (OptionButton8 Or OptionButton9 Or OptionButton10 Or OptionButton11 Or OptionButton12 Or OptionButton13 Or OptionButton14) = False Then
MsgBox ("支社を選択して下さい")
Me.Hide
UserForm5.Show
End If
Next i
intRtn = MsgBox(myMSG & vbCrLf & "と" & myMSG & "支社" & vbCrLf & "が選択されています。" & vbLf & _
"お客様情報に移動します。", _
vbOKCancel + vbExclamation + vbDefaultButton2, _
"作成書類選択")
If intRtn <> vbOK Then
MsgBox ("処理をキャンセルしました。")
Me.Hide
UserForm5.Show
End If
intRtn = MsgBox("処理を続行します。", vbOKCancel + vbExclamation + vbDefaultButton2, _
"作成書類選択")
Unload UserForm5
UserForm4.Show
If intRtn <> vbOK Then
MsgBox ("処理をキャンセルしました。")
Me.Hide
UserForm5.Show
End If
End Sub
Private Sub UserForm5_QueryClose(Cancel As Integer, CloseMode As Integer) 'Formが閉じるとき
If CloseMode = 0 Then '×ボタンを押された場合
End 'プログラムの実行を終了
End If
End Sub
お礼
回答を拝見し考えてみれば、とても馬鹿な事を聞いていました(質問時わかっていなかったのかもしれませんが。。。) 馬鹿にせず丁寧にご回答頂けて感謝しきれません。もう一度よくコードを確認します。