★チェックボックスを使ったアンケート その2
 

 それでは、アンケートのコードの解説に入ります。
基本的には、チェックボックスにチェックが入った果物のカウンターを1つずつ増やす設定にすればいいんですよね。
そのカウンターを増やすタイミングは、「登録ボタンを押したら増やす」ということにしました。
また登録が完了したら、チェックボタンを元通りチェックなしに戻しますよ。
ということでコードを書いてみます。

 ではまず、ユーザーフォームをシート上に開くためのコードをシートに貼り付けた「アンケート」のコマンドボタンに記述しますよ。
Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

 これで出来上がり!
UserForm1をShow(見せてよ!)ってことですね。
続いてユーザーフォーム内の記述はどうでしょう?
Private Sub 登録ボタン_Click()

If チェックぶどう = True Then Range("B3") = Range("B3") + 1
If チェックりんご = True Then Range("C3") = Range("C3") + 1
If チェックいちご = True Then Range("D3") = Range("D3") + 1
If チェックみかん = True Then Range("E3") = Range("E3") + 1
If チェックバナナ = True Then Range("F3") = Range("F3") + 1

チェックぶどう = False
チェックりんご = False
チェックいちご = False
チェックみかん = False
チェックバナナ = False

End Sub

 今回は、「チェックボックスの値がTrueであれば(チェックが入っていると)、指定したセルの値に1を足しなさい。」とまぁこれだけのコードなんですよ。

ただし今までと違うのは、IF構文の書き方です。

If 条件式 Then
 処理内容A
Else
 処理内容B
End If

これがIfを使ったステートメントの基本形でしたが、今回はIf構文の単一行形式の書き方で書いてみました。

If 条件式 Then 処理内容A Else 処理内容B


これで処理ができるんですね。End Ifは不要になります。
それとこの

単一行形式を利用すると、If...Then ステートメントの判断結果として、複数の処理(ステートメント)を実行することができます。
同じ行にすべての処理(ステートメント)をコロン (:) で区切って指定します。

If A > 10 Then A = A + 1 : B = B + A : C = C + B
If構文はいろんな記述に登場してきますので、ネタのひとつとして知っておくと便利ですね。
では後半のステートメントですが、チェックボックスのチェックをはずして初期化する記述です。
チェックボックスにチェックが入っていない時にするにはFalseを使います。

チェックぶどう = False


こんな書き方でOKです。

では、こんなこともチェックボックスでは時々使うので紹介しておきます。
チェックボックスを作ったのはいいけど、チェックボックスの利用を出来なくする方法です。
これには、

チェックぶどう.Enabled = False

こうすることで、チェックボックスは利用できなくなります。
上のプログラムでこれを使うにはこんなふうにしますよ。
Private Sub UserForm_Initialize()

チェックぶどう.Enabled = False

End Sub


 ユーザーフォームを開いた時の初期状態で、チェックボックスの使用が出来ないようにしてしまうのです。これも何かのお役に立つかも知れませんね。
チェックボックスは以上です。

[トップ][前へ][チェックボックス][次へ]