Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12795 / 13644 ツリー ←次へ | 前へ→

【8594】ユーザフォームのコマンドボタンによる割... とん 03/10/24(金) 19:23 質問
【8596】Re:ユーザフォームのコマンドボタンによる割... ichinose 03/10/24(金) 20:30 回答
【8617】Re:ユーザフォームのコマンドボタンによる... とん 03/10/27(月) 11:33 お礼

【8594】ユーザフォームのコマンドボタンによる割...
質問  とん  - 03/10/24(金) 19:23 -

引用なし
パスワード
   ユーザフォームのコマンドボタンである処理をしている時に、
他のコマンドボタンからの割り込みは可能でしょうか?
Application.Wait しても戻ってこないし。。。
Timerを使うのかな?

お願い致します。

【8596】Re:ユーザフォームのコマンドボタンによる...
回答  ichinose  - 03/10/24(金) 20:30 -

引用なし
パスワード
   ▼とん さん:
こんばんは。

>ユーザフォームのコマンドボタンである処理をしている時に、
>他のコマンドボタンからの割り込みは可能でしょうか?
>Application.Wait しても戻ってこないし。。。
>Timerを使うのかな?
DoEventsをループ内に記述すると可能だと思いますよ。
以下の例は、「CommandButton1をクリックすると、セルA1に0から1,2,3・・・
と数字が増加していきますが、CommandButton2のクリックでその処理が止まる」
というコードです。ユーザーフォームのモジュールに
'=================================================
Private stop_flg As Boolean
'=================================================
Private Sub CommandButton1_Click()
  stop_flg = False
  [a1] = 0
  Do While stop_flg = False
    [a1] = [a1] + 1
    DoEvents
    Loop
End Sub
'=================================================
Private Sub CommandButton2_Click()
  stop_flg = True
End Sub

【8617】Re:ユーザフォームのコマンドボタンによる...
お礼  とん  - 03/10/27(月) 11:33 -

引用なし
パスワード
   早速のご返答、ありがとうございます。
先ほど試したところ、すんなり動作しました。

こんなスタンダードな手法を知らなかった自分が恥ず
かしいです(涙

また、判りやすいプログラム例も大変役立ちました。
では。


>▼とん さん:
>こんばんは。
>
>>ユーザフォームのコマンドボタンである処理をしている時に、
>>他のコマンドボタンからの割り込みは可能でしょうか?
>>Application.Wait しても戻ってこないし。。。
>>Timerを使うのかな?
>DoEventsをループ内に記述すると可能だと思いますよ。
>以下の例は、「CommandButton1をクリックすると、セルA1に0から1,2,3・・・
>と数字が増加していきますが、CommandButton2のクリックでその処理が止まる」
>というコードです。ユーザーフォームのモジュールに
>'=================================================
>Private stop_flg As Boolean
>'=================================================
>Private Sub CommandButton1_Click()
>  stop_flg = False
>  [a1] = 0
>  Do While stop_flg = False
>    [a1] = [a1] + 1
>    DoEvents
>    Loop
>End Sub
>'=================================================
>Private Sub CommandButton2_Click()
>  stop_flg = True
>End Sub

12795 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free