6.0でやってます。
form1からform2を呼び出す時、Command1_Clickの処理内で
Set FORM = New form2
Call FORM.Show
と書いて、form2が呼び出されたらYesNoメッセージボックスを表示し、
Yesを押したらform1のPublicプロシージャに飛んでからform2をUnloadし、Noだったらform2をUnloadするプログラムを作りたいのですが、クリックするとform2が表示されずに、メッセージボックスだけが表示されて、YesNoを選択した後でform2が表示されてしまいます。
それに、Call FORM.Showの処理に行くと、"既にアンロードされています"といったエラーが出ます。
書く順番がおかしいのでしょうか?
*****form1のコード*******
Private Sub Command1_Click()
Set FORM = New form2
Call FORM.Show
End Sub
Public sub aaa()
(処理)
End Sub
*****form2のコード******
Private Sub Form_Load()
msg = MsgBox("戻りますか??", 4, "確認メッセージ")
If msg = vbYes Then
Form1.aaa
Unload Me
Else
Unload Me
End If
<Form1>
Option Explicit
Private Sub Command1_Click()
Form2.Show
End Sub
Public Sub aaa()
MsgBox "aaa"
End Sub
<Form2>
Option Explicit
Private Sub Form_Activate()
Static isActivate As Boolean
Dim Answer As Integer
If Not isActivate Then
isActivate = True
Answer = Verify("戻りますか??", 4, "確認メッセージ")
If Answer = vbYes Then
Form1.aaa
Unload Me
Else
Unload Me
End If
End If
End Sub
Public Function Verify(ByVal Msg As String, _
Optional ByVal DefaultButton As Integer = vbDefaultButton1) As Integer
Verify = MsgBox(Msg, vbYesNo + vbQuestion + DefaultButton, " 確認メッセージ")
End Function
1、Option Explicit でコードを書くようにしたがいいです。
2、読めば判るように変数名や書き方を工夫されたがいいです。
質問者
補足
お早い回答ありがとうございます。
少しお聞きしたいのですが、
If Not isActivate Then
isActivate = True
Answer = Verify("戻りますか??", 4, "確認メッセージ")
の部分は、どういった内容の処理なのでしょうか?
Verify()とは、自分で作るプロシージャでしょうか?
補足
お早い回答ありがとうございます。 少しお聞きしたいのですが、 If Not isActivate Then isActivate = True Answer = Verify("戻りますか??", 4, "確認メッセージ") の部分は、どういった内容の処理なのでしょうか? Verify()とは、自分で作るプロシージャでしょうか?