
トグルボタン
トグルボタンは、二者択一、あるいは項目のオン/オフの選択状態をボタンで
表示する場合などに使われます。

前の項目で作ったユーザーフォーム(テストの点数の入力)を変更してみます。
チェックボタンを消して、トグルボタンボタンに変更。
入力したい科目を(トグルボタンで)選んで、入力できるように変更してみます。
まずはチェックボタンを消去。教科を書いてあるラベルも消去。
トグルボタンを設置します。

トグルボタン(ToggleButton1)のプロパティを設定します。
プロパティ |
設定 |
オブジェクト名 |
tglKokugo |
Caption |
国語 |
同様に、算数、理科、社会も設置します。

算数は
プロパティ |
設定 |
オブジェクト名 |
tglSansu |
Caption |
算数 |
理科は
プロパティ |
設定 |
オブジェクト名 |
tglRika |
Caption |
理科 |
社会は
プロパティ |
設定 |
オブジェクト名 |
tglSyakai |
Caption |
社会 |
2007年1月

トグルボタン その2
トグルボタンを押すと、点数を入力できるようにします。
さらに、もう一度押すと、点数の入力ができないようします。
トグルボタンを押したとき
オブジェクト名.Value = True
押されていないとき(もう一度押したとき)
オブジェクト名.Value = False
トグルボタンのValueプロパティの値が変更されたとき、Changeイベントが発生します。
イベントとは、「ブックを開く」、「シートを選択する」などの特定の操作。
イベントプロシージャは、イベントをきっかけとして実行するプロシージャ。
そして、イベントプロシージャの構文は、
Private Sub オブジェクト名_イベント名(引数)
イベント発生時に実行する処理
End Sub
今回は、Changeイベントを使って、トグルボタンが押されたとき、
または、もう一度押されたときの処理を実行します。
イベントプロシージャの作成します。
対象となるモジュールを選択。ここでは、ユーザーフォーム(frmEntry)を選択。
オブジェクトボックスで、tglKokugoを選択。

次にプロシージャボックスで、Changeを選択。

すると、イベントプロシージャができます。
Private Sub tglKokugo_Change()
End Sub
ここに処理を書きます。
2007年1月

トグルボタン その3
トグルボタンが押されたとき、テキストボックスに入力できるようにします。
テキストボックス入力可にするには、オブジェクト名.Enabled で。
Private Sub tglKokugo_Change()
'トグルボタン変更(国語)
If tglKokugo.Value = True Then
txtKokugo.Enabled = True
Else
txtKokugo.Enabled = False
End If
End Sub
同様に、理科、算数、社会もします。
Private Sub tglRika_Change()
'トグルボタン変更(理科)
If tglRika.Value = True Then
txtRika.Enabled = True
Else
txtRika.Enabled = False
End If
End Sub
Private Sub tglSansu_Change()
'トグルボタン変更(算数)
If tglSansu.Value = True Then
txtSansu.Enabled = True
Else
txtSansu.Enabled = False
End If
End Sub
Private Sub tglSyakai_Change()
'トグルボタン変更(社会)
If tglSyakai.Value = True Then
txtSyakai.Enabled = True
Else
txtSyakai.Enabled = False
End If
End Sub
これで、トグルボタンを押すと入力でき、もう一度押すと入力できなるなります。
でもユーザーフォーム(frmEntry)を開いたときは、すでに入力できる状態。
開いただけでは、入力できないように変更します。
ユーザーフォームを開いたときのイベントは、
Private Sub UserForm_Initialize()
txtKokugo.Enabled = False
txtRika.Enabled = False
txtSansu.Enabled = False
txtSyakai.Enabled = False
End Sub
前回作った、入力ボタンを押したときの処理も変更します。
オプションボタンに関係する処理を消します。
Private Sub cmdEntry_Click()
'入力ボタン
Range("B3").Value = txtNo.Value
Range("C3").Value = txtName.Value
Range("D3").Value = txtKokugo.Value
Range("E3").Value = txtSansu.Value
Range("F3").Value = txtRika.Value
Range("G3").Value = txtSyakai.Value
'性別
If optBoy.Value = True Then
Range("I3").Value = "男"
ElseIf optGirl.Value = True Then
Range("I3").Value = "女"
Else
Range("I3").Value = "?"
End If
lblComment.Caption = "ワークシートに転記しました!"
End Sub
これを実行してみると、

トグルボタンを押したときのみ、点数を入力することができるようになりました。
2007年1月