#088 1つのコマンドボタンに2つの機能を持たせる方法 フォーム、VBA

ある処理の「開始」ボタンと「停止」ボタンを1つにまとめたい場合があります。最初は「開始」と表示されていて、そのボタンをクリックすると処理を開始します。それと同時にそのコマンドボタンの標題が「停止」に替わって、その状態でクリックすると今度は処理を停止します。

このように1つのコマンドボタンに2つの機能を持たせるには次のようにします。ここでのポイントはStaticで宣言されたsblnStartStatus変数です。Staticで宣言されているために、このプロシージャを抜けても変数の値は保持されています。したがって、再度このプロシージャが呼び出されたとき、つまりコマンドボタンがクリックされたときに、前回のsblnStartStatus変数によって今回の処理を分岐させることができます。
Private Sub cmdStart_Click()
  Static sblnStartStatus As Boolean

  If Not sblnStartStatus Then
    MsgBox "開始しました!"
    sblnStartStatus = True
    Me.cmdStart.Caption = "停止"
    '***************************************
    'ここに処理を実行するコードを記述します
    '***************************************
  Else
    MsgBox "停止しました!"
    sblnStartStatus = False
    Me.cmdStart.Caption = "開始"
    '***************************************
    'ここで処理を停止するコードを記述します
    '***************************************
  End If

End Sub

※プロシージャ内でStatic変数を使う代わりに、Declarationsセクションに普通に変数を宣言しても同じ様に使うことができます。
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved