[[20240727191314]] 『マクロの一時停止と再開』(男子バレー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『マクロの一時停止と再開』(男子バレー)

ネットでいろいろと調べてみたのですが、もしかすると無理なのではないかと思いながら、プロが集まるこの掲示板に書き込みをしました。

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

ノンプロさん,まる2021さん

お返事が遅くなりごめんなさい。どちらの発想も全くなく,すごく勉強になりました!実際の動作とは異なるサンプルで質問させていただきましたが,お二人から教えていただいたことを両方とも作成して試したところ,うまくいきました。本当にありがとうございました。
(男子バレー) 2024/07/28(日) 12:31:03


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.