ExcelのVBAに詳しい方へ。
下記コードで、ボタンを押したときにボタン名が表示されるようにしています。
が、途中で「end」するボタンを押すと、その後はどのボタンを押しても反応しなくなります。( [PROBLEM]ボタン。)
どうしたら途中で「end」しても、その後にボタンが動作するでしょうか。
◆ThisWorkbook
Dim myBtnTbl As New Collection
Private Sub Workbook_Open()
Dim obj As Object
Dim myCls As New Class1
Dim Sht As Worksheet
For Each Sht In Worksheets
With Sht
For Each obj In Sht.OLEObjects
If obj.progID = "Forms.CommandButton.1" Then
myCls.BtnEvent obj.Object
myBtnTbl.Add myCls
Set myCls = Nothing
End If
Next
End With
Next Sht
End Sub
◆標準モジュール
Sub test()
Dim testFlag As Boolean
MsgBox "PROBLEM"
testFlag = True
If testFlag = True Then
End
End If
End Sub
◆クラスモジュール
Private WithEvents mybtn As MSForms.CommandButton
Public Sub BtnEvent(newbtn As MSForms.CommandButton)
Set mybtn = newbtn
End Sub
Private Sub mybtn_Click()
Select Case mybtn.Name
Case "A"
MsgBox "A"
Case "B"
MsgBox "B"
Case "PROBLEM"
Call test
End Select
MsgBox "終了!"
End Sub