大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAのトグルボタンの使い方と作成方法についてご紹介します。トグルボタンもオプションボタンのように排他的に連動させて使用することができます。

はじめに

この記事ではトグルボタンの使用方法と作成方法、セルと連動させる方法、排他的に連動させる方法についてご紹介します。

トグルボタンは値を保持させて条件分岐させたいときに必要になってきます。

今回ご紹介するトグルボタンの基本的な使い方と排他的な使い方が参考になるかと思います。

この記事で紹介すること

  • トグルボタンの使用方法と作成方法
  • トグルボタンの値取得
  • トグルボタンとセルを連動
  • トグルボタンを排他的に連動

目次から見たい項目へ移動すると便利ですよ。

目次

Excel VBAでトグルボタンを使う

ユーザーフォームでトグルボタンの使用方法と作成方法について説明します。

使用方法

トグルボタンとはこんなやつです。

トグルボタン

トグルボタン

トグルボタンはオンとオフを保持してくれるフォームになります。

トグルボタンをクリックしてみます。

トグルボタンをオン

トグルボタンをオンにする

ボタンがへこんで凹の状態になりました。これがオンの状態です。この状態をキープしてくれます。

もう一度トグルボタンをクリックしてみます。

トグルボタンをオフ

トグルボタンをオフにする

ボタンが盛り上がって凸の状態になりました。これがオフの状態です。

条件分岐する際にトグルボタンを使えば今はどの条件を選択しているかがわかります。

作成方法

ユーザーフォームでのトグルボタンの作成方法について説明します。

VBAの画面の『ツールボックス』から『トグルボタン』を選択します。

ツールボックス

ツールボックスのトグルボタンの位置

これをユーザーフォームの中に挿入します。

トグルボタンを挿入

ユーザーフォームにトグルボタンを挿入

ユーザーフォームにトグルボタンを挿入することができました。これでトグルボタンが使用できます。

トグルボタンの値を取得

トグルボタンの値を取得する方法を紹介します。

VBAコード

トグルボタンの値を取得するVBAコードです。

『ユーザーフォームの中のコード』に記載します。

'トグルボタンをクリックで実行
Private Sub ToggleButton1_Click()
    'トグルボタンの値を取得
    MsgBox ToggleButton1.Value
End Sub

トグルボタンの値は『ToggleButton1.Value』で取得することができます。

トグルボタンがオン(凹)の場合は『True』、オフ(凸)の場合は『False』になります。

結果

トグルボタンの値を取得してみます。

トグルボタンをクリックしてオン(凹)のにしてみます。

トグルボタンがオンの場合

トグルボタンがオンの場合に値を取得

オンなので『True』となりました。

トグルボタンをもう一度クリックしてオフ(凸)にしてみます。

トグルボタンがオフの場合

トグルボタンがオフの場合に値を取得

オフなので『False』となりました。

トグルボタンをセルと連動させる

トグルボタンをセルと連動させる方法について説明します。

トグルボタンの初期値をセルから取得したりセルへ出力したい場合に使えます。

VBAコード

トグルボタンをセルと連動させるVBAコードを説明します。

『ユーザーフォームの中のコード』に記載します。

'ユーザーフォームを開いたときに実行
Private Sub UserForm_Initialize()
    'セルからトグルボタンに値を入力
    ToggleButton1.Value = ActiveSheet.Cells(1, 1)
End Sub

'トグルボタンをクリックしたら実行
Private Sub ToggleButton1_Click()
    'トグルボタンの値をセルに出力
    ActiveSheet.Cells(1, 1) = ToggleButton1.Value
End Sub

初期値の取得とセルへ値を出力しています。

初期値の取得

ユーザーフォームを開いた際に値を取得するコード『Private Sub UserForm_Initialize()』を使用します。

このコードの中にセルからトグルボタンへ値を取得するコード『ToggleButton1.Value = ActiveSheet.Cells(1, 1)』を記載しています。

セルへ値を出力

トグルボタンをクリックした際に実行するコード『Private Sub ToggleButton1_Click()』を使用しています。

このコードの中にトグルボタンの値をセルへ出力するコード『ActiveSheet.Cells(1, 1) = ToggleButton1.Value』を記載しています。

これでトグルボタンとセルを連動させることができます。

結果

セルとトグルボタンを連動させるVBAコードを実行してみます。

ユーザーフォームを開いて初期値を取得します。

セルからトグルボタンの初期値を取得

トグルボタンの初期値を取得

セルには『True』が入力されているのでトグルボタンは『オン(凹)』となっています。

トグルボタンをクリックしてみます。

トグルボタンの値をセルへ出力

トグルボタンの値をセルへ出力

トグルボタンがオフ(凸)になったのでセルには『False』が入力されました。

トグルボタンを排他的に連動させる

トグルボタンを排他的に連動させる方法についてご紹介します。

これはトグルボタンをオプションボタンみたいに使う方法になります。

オプションボタンって結構小さくてクリックがしづらいのでトグルボタンでできると操作がしやすくなります。

VBAコード

トグルボタンを排他的に連動させるVBAコードです。

『ユーザーフォームの中のコード』に記載します。

Dim flag As Variant

'ボタンクリックで実行
Private Sub ToggleButton1_Click()
    'フラグがオンの場合は終了
    If flag = 1 Then Exit Sub
    '1つ目のトグルボタン以外を凸にするコードを実行
    Call Test(1)
End Sub

'ボタンクリックで実行
Private Sub ToggleButton2_Click()
    'フラグがオンの場合は終了
    If flag = 1 Then Exit Sub
    '2つ目のトグルボタン以外を凸にするコードを実行
    Call Test(2)
End Sub

'ボタンクリックで実行
Private Sub ToggleButton3_Click()
    'フラグがオンの場合は終了
    If flag = 1 Then Exit Sub
    '3つ目のトグルボタン以外を凸にするコードを実行
    Call Test(3)
End Sub

'ボタンクリックで実行
Private Sub ToggleButton4_Click()
    'フラグがオンの場合は終了
    If flag = 1 Then Exit Sub
    '4つ目のトグルボタン以外を凸にするコードを実行
    Call Test(4)
End Sub

'クリックしたトグルボタン以外を凸にする
Private Sub Test(ByVal j As Variant)
    
    'フラグをオン
    flag = 1
    
    For i = 1 To 4
        'クリックしたトグルボタン以外の場合
        If i <> j Then
            'トグルボタンを凸にする
            Controls("ToggleButton" & i).Value = False
        End If
    Next
    
    'フラグをオフ
    flag = 0

End Sub

VBAコードを説明していきます。

クリック時に実行するコード

トグルボタンがクリックされた際に実行するコード『Private Sub ToggleButton1_Click()』を使います。

このクリック時に実行するコードをトグルボタンの数だけ記載します。

'ボタンクリックで実行
Private Sub ToggleButton1_Click()
    'フラグがオンの場合は終了
    If flag = 1 Then Exit Sub
    '1つ目のトグルボタン以外を凸にするコードを実行
    Call Test(1)
End Sub
'他のトグルボタンでも同じように記載します。数字の部分だけ変えます。

他のトグルボタンを凸にする

トグルボタンをクリックしたら押したトグルボタン以外のトグルボタンを凸にするコードを記載しています。

For i = 1 To 4
    'クリックしたトグルボタン以外の場合
    If i <> j Then
        'トグルボタンを凸にする
        Controls("ToggleButton" & i).Value = False
    End If
Next

フラグをオンにして繰り返しをロックする

他のトグルボタンをFalseにする際にまたこのVBAコードが実行されてしまうのでそれを回避するためにflagをオンでロックします。

トグルボタンクリック時に実行するコードの最初にフラグのオンで終了するコードを記載しています。

'フラグがオンの場合は終了
If flag = 1 Then Exit Sub

他のトグルボタンを凸にするコードの最初にflagをオンにします。

ユーザーフォームを開いている間は値を保持するので最後にflagをオフにして終わります。

Private Sub Test(ByVal j As Variant)
    
    'フラグをオン
    flag = 1
    
    'トグルボタンを凸にするコード
    
    'フラグをオフ
    flag = 0

End Sub

これでトグルボタンをオプションボタンのように使うことができます。

結果

トグルボタンを排他的に連動させたVBAコードを実行してみます。

トグルボタンをクリックしてみます。

トグルボタンをクリック

トグルボタンをクリック

ここまではトグルボタンの動作で、次に他のトグルボタンをクリックしてみます。

他のトグルボタンをクリック

他のトグルボタンをクリックして排他的に連動させる

クリックしたトグルボタン以外がオフ(凸)になってオプションボタンのように使えていることがわかります。

VBAコードが少し面倒臭いですがトグルボタンの方がオプションボタンよりクリックしやすいかと思います。

おわりに

この記事ではトグルボタンの使用方法と作成方法、セルと連動させる方法、排他的に連動させる方法についてご紹介しました。

トグルボタンは値を保持させて条件分岐させたいときに必要になってくるかと思います。

今回ご紹介したトグルボタンの基本的な使い方と排他的な使い方が参考になるかと思います。

最後までご覧くださいましてありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す