すぐに役立つエクセルVBAマクロ集 - すぐマク
すぐに役立つ Excel VBA マクロ集 Excel VBA Macro
Macro
Google
 
Home |  What's New! |  Gallery |  Introduction |  Service |  Profile

500連発・組み方講座フォロー

Big Color Pallet

[広告]
 
Excel VBA Macro
Excel DownLoad
© 1997 - 2007
Yoshioh Nagai.
All RightsReserved.
HappyTech & Co., Ltd.
www.happy500z.com
Sample Macro  コントロール・トグルボタン Previous Next
コントロール 0.  ユーザーフォーム
1.  ラベル
2-1.エディットボックス
2-2.テキストボックス
3.  コンボボックス
4-1.リストボックス(ワークシート)
4-2.リストボックス
7.  トグルボタン
9.  コマンドボタン
11. マルチページ
13. スピンボタン
17. カレンダー
7-1) トグルボタンの状態を取得する


7-1) トグルボタンの状態を取得する もくじへ 使用可能なExcelのバージョン
'=========================================================================================
' ◆ユーザーフォームのコード◆
'-----------------------------------------------------------------------------------------
' トグルボタンの状態を調べて表示する
'-----------------------------------------------------------------------------------------
Private Sub UserForm_Click()                'ユーザーフォームでクリック時に動作するマクロ
Dim TBName(3) As Object                         'オブジェクトを参照する変数
'
    Set TBName(1) = ToggleButton1               'オブジェクトを変数に代入する
    Set TBName(2) = ToggleButton2
    Set TBName(3) = ToggleButton3
'
    For t = 1 To 3                              '変数tの値が1から3になるまで
        onoff = TBName(t).Value                 'トグルボタンの状態を取得する
        If onoff Then                           'トグルボタンがオン(True)の状態なら
            a = a + 1                           '変数aに 1加える
        End If
    Next                                        '繰り返す
    MsgBox "オン(True)は全部で " & a, vbInformation, "すぐマク" 'オンの数を表示する
End Sub
'-----------------------------------------------------------------------------------------
' 例えば ToggleButton1〜ToggleButton672 という名前のトグルボタンの場合  
'-----------------------------------------------------------------------------------------
Private Sub UserForm_Click()                'ユーザーフォームでクリック時に動作するマクロ
Dim i As Long
Dim myCnt As Long

    For i = 1 To 672				'672=7×24×4
        If Controls("ToggleButton" & i).Value Then myCnt = myCnt + 1 '※1
    Next
    MsgBox myCnt
End Sub
'-----------------------------------------------------------------------------------------
' トグルボタンの名前がバラバラの場合  
'-----------------------------------------------------------------------------------------
Private Sub UserForm_Click()                'ユーザーフォームでクリック時に動作するマクロ
Dim myCtrl As Control
Dim myCnt As Long

    For Each myCtrl In Controls
        If TypeName(myCtrl) = "ToggleButton" Then
        If myCtrl.Value Then myCnt = myCnt + 1
        End If
    Next
    MsgBox myCnt
End Sub
'=========================================================================================
<コメント>
※1 Controlsコレクションのオブジェクト名を変化させている
くわしい解説が、オブジェクト名を変化させながら使うには にあります