0

クリック イベントに関連付けられたコードが機能していることを示すために、Excel スプレッドシートの ActiveX コントロール ボタンのキャプションを更新しようとしています。コードは Azure データベースからデータを取得するため、ボタンを押すと 5 ~ 10 秒の遅延が発生します。

私の元のコードには、基本的に次のような単一のサブがありました。

Sub GetInfofromDB()
  btnUpdate.Caption = "Updating...."
  <<code to get data from azure db>>
  btnUpdate.Caption = "Update List" 'reverts button to standard text
End Sub

ただし、ボタンのキャプションは変更されません。コンボボックスの更新が機能します。

キャプションの更新を独自のサブに分割し、ボタンが押されたときに各サブを順番に呼び出して、ボタンの更新なしで同じ動作を得ました。

データ更新を呼び出さずにキャプション更新でサブを呼び出すと、ボタンが正常に更新されます。

したがって、各部分は単独で機能しますが、連続して発生する場合は機能しません。データ呼び出しの前にボタンを更新する方法はありますか?

ありがとう。マーク

4

1 に答える 1

0

キャプションを変更した後、 aaplication.screenupdating = true を追加してみてください。

以下のコードは私のために働いた。DoEvents を使用する

Private Sub CommandButton1_Click()
CommandButton1.Caption = "true"
DoEvents
Application.ScreenUpdating = True

For i = 1 To 2
    Application.Wait (Now + TimeValue("0:00:1"))
Next i

CommandButton1.Caption = "False"
End Sub
于 2012-10-05T04:46:37.970 に答える