0

この単純な VBA コードを作成して、開始ボタンと停止ボタンを組み込みました。[オン] ボタンをクリックして Do ループを開始した後、Excel はビジーなままになり、[オフ] ボタンをクリックしてループを停止することはできません。助けていただけますか?

Public ONOFF As Boolean

Sub ON_Button()
    ONOFF = True
    Do While ONOFF
        Matha
    Loop
    MsgBox ("Exit Matha sub")
End Sub

Sub OFF_Button()
     ONOFF = False
End Sub

Sub Matha()
Dim X, Y, Z
    X = 1
    Y = 2
    Z = 5
    Z = X * Y + Z
End Sub
4

1 に答える 1

2

Off_Button を「On」ボタンに割り当てましたか?
問題がなければ、ループに DoEvents を追加して、Excel がクリックを処理できるようにします 。

このようなループを構築すると、すべてのプロセッサ時間が消費されます (少なくとも Excel に使用されるコア)。より良い解決策については、これを確認してください: How To Create a Timer Event Using the Windows API Functions .

于 2012-12-16T08:50:42.293 に答える