『マクロの一時停止と再開』(男子バレー)
ネットでいろいろと調べてみたのですが、もしかすると無理なのではないかと思いながら、プロが集まるこの掲示板に書き込みをしました。
Sheet 1にスタートボタンとストップボタンを設置して、つぎのようなことをしたいです。
スタートボタンを1回押すと MsgBox "1回目の動作"
再度スタートボタンを押すとMsgBox "2回目の動作"
ストップボタンを押してMsgBox "最終"
よろしくお願いいたします。
< 使用 Excel:Microsoft365、使用 OS:Windows11 >
■フォームコントロールのボタンにマクロを登録する場合 どこかのセルに値を持たせて、それを参照。
Sub start_button() If Range("A1") = "" Then MsgBox "1回目の動作" Range("A1") = 1 Else MsgBox "2回目の動作" Range("A1") = "" End If End Sub Sub stop_button() MsgBox "最終" Range("A1") = "" End Sub
■ユーザーフォームにボタンを配置する場合
Dim cnt& Private Sub CommandButton1_Click() If cnt = 0 Then MsgBox "1回目の動作" cnt = cnt + 1 Else MsgBox "2回目の動作" cnt = 0 End If End Sub Private Sub CommandButton2_Click() MsgBox "最終" cnt = 0 End Sub (ノンプロ) 2024/07/27(土) 19:47:46
男子バレー、残念でしたね。
ボタンの種類を書かないと、想像での回答になります。 ノンプロさんが、提示された場合以外で..... ActiveXコントロールのボタンを、ワークシートに配置したものとして回答します。 「スタートボタン」「ストップボタン」の他にもう一つ「リセットボタン」の3つ配置してください。 提示例ではEnabledプロパティで制御してますが、フラグ制御する方法も一般的です。
<シートモジュール>
Private n& 'スタートボタン Private Sub CommandButton1_Click() n = n + 1 MsgBox n & "回目" End Sub 'ストップボタン Private Sub CommandButton2_Click() CommandButton1.Enabled = False CommandButton2.Enabled = False MsgBox "最終回" End Sub 'リセットボタン Private Sub CommandButton3_Click() CommandButton1.Enabled = True CommandButton2.Enabled = True n = 0 End Sub (まる2021) 2024/07/27(土) 20:03:21
お返事が遅くなりごめんなさい。どちらの発想も全くなく,すごく勉強になりました!実際の動作とは異なるサンプルで質問させていただきましたが,お二人から教えていただいたことを両方とも作成して試したところ,うまくいきました。本当にありがとうございました。
(男子バレー) 2024/07/28(日) 12:31:03
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.