VBA別館・Python別館

64586

OptionButton(完) - Tak

2018/08/24 (Fri) 08:31:53

checkboxと同じくらい使用頻度の高いオプションボタンの使い方をお話しします。

① 選択肢の表示に使うのが多いです。

作例はExcel VBAで作った「百人一首ゲーム」です。 

今回の例では、OptionButtonが五個使用されております。

Re: OptionButton - Tak

2018/08/24 (Fri) 13:18:17

② OptionButtonを3個sheetに張り付けましょう

3個でも何個でも良いのですが、このうちの一個しか選択できません。

他のオプションボックスをクリックすると、今まで選択されていたOptionButtonはoffになります。

お試しください。

Re: OptionButton - Tak

2018/08/24 (Fri) 15:04:34

③ OptionButton操作用のデータを作っておきました

このデータから

・氏名を抽出する

・クラスが同じ人が何人いるか

・同じ地区の人は何人いるか

・男女の人数はそれぞれ何人か

などを抽出するプログラムを作りましょう。

たった15人ならこのプログラムは意味有りませんが、メンバーが100人、200人と増えて行ったら役に立ちますよ。 

Re: OptionButton - Tak

2018/08/25 (Sat) 10:06:38

④ オプションボタン貼り付け

図の様になりました。 氏名は入力検証の時間短縮のため姓だけとしました。



Re: OptionButton - Tak

2018/08/25 (Sat) 10:10:04

⑤ 氏名探索

寺田さんを探索してます。 図示したように寺田さんが存在しているときは、「ハイ、居ります」と表示されセル背景が赤くなります。

Re: OptionButton - Tak

2018/08/25 (Sat) 10:12:13

⑥ 寺田さんのセルを赤くする

図示したように寺田さんが存在しているときは、「ハイ、居ります」と表示されセル背景が赤くなります。

Re: OptionButton - Tak

2018/08/25 (Sat) 10:15:26

⑦ 名前検索のcodeを書きます

’コメントで簡単説明を追加しました。

----------------------------

Option Explicit

Dim i As Integer 'for~nextの回数変数


Private Sub OptionButton1_Click()
 Dim str As String ’インプットボックスで使用する名前の変数
 Dim name As String ’名前の変数

'全てのセルの色を消しておく ’赤色が残っていないようにする
Range("C:C").Interior.Pattern = xlNone


'名前の検索をする

str = InputBox("名前を入れて下さい。")

If str = "" Then OptionButton1.Value = False:
  'もしinputboxに何も入っていなければ、このsubから抜け出す

Exit Sub

For i = 1 To 15
name = Cells(i + 12, 3) ’セルC13-C18までの氏名をnemeに取り込む

If name = str Then 'inputboxの名前とセルの名前が合致するとmsgboxが表示される
MsgBox ("はい、在籍しております。")
Cells(i + 12, 3).Select
Selection.Interior.Color = 255 7そのセルの背景を赤くする
OptionButton1.Value = False: Exit Sub 'もしが当社が居なければ、subから出る
End If

Next

MsgBox ("いいえ、その名前の方は在籍しておりません。")
OptionButton1.Value = False ’Checkboxの☑を外しておく

End Sub

--------------------------------


Re: OptionButton - Tak

2018/08/25 (Sat) 13:03:14

⑧ 組人数検索のcodeを書きます

-----------------------------


Private Sub OptionButton2_Click()
Dim kumi As String  ’組番号用変数。integerでもよかった。
Dim kumininzu As Integer ’組人数用変数

'全てのセルの色を消しておく
Range("C:C").Interior.Pattern = xlNone


'組の人数を検索する

kumi = InputBox("組番号を入れて下さい。")

If kumi = "" Then OptionButton2.Value = False: Exit Sub

kumininzu = WorksheetFunction.CountIf(Range("D13:D27"), kumi)


MsgBox (kumi & "組の人数は = " & kumininzu & "人です")

OptionButton2.Value = False


End Sub

Re: OptionButton - Tak

2018/08/25 (Sat) 14:46:24

⑨ 同地域の人数検索code

図は同じですので省略

-------------------


Private Sub OptionButton3_Click()

Dim chiiki As String
Dim chiikininzu As Integer

'全てのセルの色を消しておく
Range("C:C").Interior.Pattern = xlNone

'地域の人数を検索する

chiiki = InputBox("地域の名前を入れて下さい。")

If chiiki = "" Then OptionButton3.Value = False: Exit Sub

chiikininzu = WorksheetFunction.CountIf(Range("E13:E27"), chiiki)


MsgBox (chiiki & "の人数は = " & chiikininzu & "人です")

OptionButton3.Value = False


End Sub

-------------------------------------

Re: OptionButton - Tak

2018/08/25 (Sat) 14:55:08

⑩ 男女別の人数チェックcode

Checkbox4、5のcodeを纏めて書きます。

----------------------------

Private Sub OptionButton4_Click()

Dim woman As String
Dim womanninzu As Integer

'全てのセルの色を消しておく
Range("C:C").Interior.Pattern = xlNone


'女性の人数を検索する

woman = InputBox("Wと入れて下さい。")

If woman = "" Then OptionButton4.Value = False: Exit Sub

womanninzu = WorksheetFunction.CountIf(Range("B13: B27 "), woman)


MsgBox ("女性の人数は = " & womanninzu & "人です")

OptionButton4.Value = False


End Sub

Private Sub OptionButton5_Click()

Dim man As String
Dim manninzu As Integer

'全てのセルの色を消しておく
Range("C:C").Interior.Pattern = xlNone


'男性の人数を検索する

man = InputBox("Mと入れて下さい。")

If man = "" Then OptionButton4.Value = False: Exit Sub

manninzu = WorksheetFunction.CountIf(Range("B13: B27 "), man)


MsgBox ("男性の人数は = " & manninzu & "人です")

OptionButton5.Value = False


End Sub

Re: OptionButton - Tak

2018/08/25 (Sat) 15:13:37

⑪ プロパティの設定

OptionButtonを使う場合に、忘れていけないことが一つあります。 それはただ一つのボタンしか選択できないことです。

だから複数のグル-プがある場合は、ボタンのプロパティにどのグループに属するかを指定してやる必要があるということです。

そこを図に書いておきました。

以上でOpetionButtonの使い方は終了です。

名前
件名
メッセージ
画像
メールアドレス
URL
文字色
編集/削除キー (半角英数字のみで4~8文字)
プレビューする (投稿前に、内容をプレビューして確認できます)

Copyright © 1999- FC2, inc All Rights Reserved.