Option Explicit
Sub sampl1()
Dim n As Long
For n = 1 To 10000
DoEvents
DoEvents
Range("B2").Value = n
Next n
End Sub
Sub sampl2()
Dim m As Long
For m = 1 To 10000
DoEvents
DoEvents
Range("C2").Value = m
Next m
End Sub
Sub sampl3()
Dim p As Long
For p = 1 To 10000
DoEvents
DoEvents
Range("D2").Value = p
Next p
End Sub
上記のようなコードを書き試していますが、
出来ません。
(それぞれのプロシージャーにボタンを貼り、ボタンを押してゆく)
押せるのですが、それまで動いていた処理が中断してしまいます。
それぞれのプロシージャー(例で3個)を平行で動かすことは無理なのでしょうか。
宜しくお願いします。
windows7
excel2003
No.1ベストアンサー
- 回答日時:
カウンタを外出しにして各ボタン毎にフラグの設定をすれば出来ますよ!
Sheet1
--------------------------------------------------------------------------------
Private Sub CommandButton1_Click()
Call Sample(1)
End Sub
Private Sub CommandButton2_Click()
Call Sample(2)
End Sub
Private Sub CommandButton3_Click()
Call Sample(3)
End Sub
--------------------------------------------------------------------------------
標準モジュール
--------------------------------------------------------------------------------
Option Explicit
Public blnA(3) As Boolean
Public cntA(3) As Integer
Public Sub Sample(btnA As Integer)
Dim i As Integer
blnA(btnA) = True
Do Until blnA(1) = False And _
blnA(2) = False And _
blnA(3) = False
For i = 1 To 3
If blnA(i) = True And cntA(i) < 10000 Then cntA(i) = cntA(i) + 1
If blnA(i) = True Then Sheet1.Cells(2, i + 1).Value = cntA(i)
DoEvents
If cntA(i) >= 10000 Then blnA(i) = False
Next i
Loop
End Sub
--------------------------------------------------------------------------------
ボタンの数が増えてもカウンタのみで対応出来ます
また、それぞれのカウンタに対して終了ボタンで途中停止する場合には
『blnA(i) = False』だけで対応出来ます
全てのカウンタを初期化するために初期処理を追加することをお薦めします
面倒な場合には『Worksheet_Activate』にでも記載しましょう
--------------------------------------------------------------------------------
Public Sub Init
Dim i AS Integer
For i = 1 to 3
blnA(i) = False
cntA(i) = 0
Next i
--------------------------------------------------------------------------------
お試しください
早速有り難うございました。
見事に出来ました。
今後の道が開けました。
(今回の質問はそのための例でした)
お世話になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) VBA ステータスバー DoEvents 1 2023/03/30 12:22
- Excel(エクセル) excelvbaのwithについて 4 2022/12/19 16:51
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelシート上のマクロを登録し...
-
Excelで、ボタンにコメントをつ...
-
UPS警告音を止めたい
-
マクロ初心者です。 msgboxのre...
-
エクセルでグループボックスを...
-
【Excel VBA】マクロボタンを表...
-
複数シートのボタンに同一の動...
-
EXCELのマクロが 実行時エラー5...
-
excel スクロールしても常にボ...
-
Excel ラジオボタンのリセット...
-
エクセルの画面にユーザーフォ...
-
エクセルで、オプションボタン...
-
ユーザーフォームをショートカ...
-
パナソニックKX-PW22CLHの電話...
-
マクロで作ったボタンのサイズ...
-
オブジェクト名をVBAで指定...
-
EXCELの塗りつぶしのボタ...
-
テキストボックスを消すVBA
-
エクセルVBA フォームへ動...
-
Accessのフォームでタブの色
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelシート上のマクロを登録し...
-
エクセルの画面にユーザーフォ...
-
UPS警告音を止めたい
-
エクセルで、オプションボタン...
-
マクロで作ったボタンのサイズ...
-
ユーザーフォームをショートカ...
-
Excel ラジオボタンのリセット...
-
複数シートのボタンに同一の動...
-
Excelで、ボタンにコメントをつ...
-
【Excel VBA】マクロボタンを表...
-
マクロ初心者です。 msgboxのre...
-
入力済み、選択したセルに連動...
-
Accessのフォームでタブの色
-
フォームコントロールから作っ...
-
EXCELのマクロが 実行時エラー5...
-
EXCELの塗りつぶしのボタ...
-
excel スクロールしても常にボ...
-
コンボボックスウィザードが出...
-
Access VBAでボタンの背景色を...
-
エクセルでマクロボタンを押す...
おすすめ情報