ユーザーフォームを使った住所録で男女を選ぶボタン

オプションボタン

スポンサーリンク


スポンサーリンク


スポンサーリンク

ユーザーフォームのオプションボタンを使おう

ホームページなどでよく見かける性別などを選択させるボタン。

男性をクリックすると男性黒い●印が付き、女性をクリックすると女性に黒い●印が付いて、両方を選ぶことができなくなっていますよね。

エクセルで住所録を作った時にも、わざわざ「男性」や「女性」なんて入力しなくても、この機能がエクセルでも使えればとっても便利で簡単なので時間の短縮にもなり作業効率が格段に上がります。

そこでユーザーフォームというエクセルの機能を使ってこのボタン(オプションボタンといいます)を配置して住所録などを簡単にできるようにしましょう。

ユーザーフォームがよくわからない方はこちらを参考にしてくださいね。

オプションボタンを設定する

Visual Basic Editor(VBE)を起動してユーザーフォームを抽入すると、ツールボックスが表示されると思います。

ユーザーフォーム・ツールボックス

エクセル2007のユーザーフォームのツールボックス

ユーザーフォーム・ツールボックス

エクセル2016のユーザーフォーム・ツールボックス

このツールボックスの中から見た目を気にして、フレームを選択し、ユーザーフォームに配置します。

配置したフレームをクリックするとプロパティが左下に表示されるのでCaption名を「性別」にします。

次にオプションボタンを選択してユーザーフォームのフレームの内側に配置したら、もう1回オプションボタンを選択・配置します。

先ほどのフレームと同じように、ユーザーフォームに配置された、「OptionButton1」をクリックしてプロパティのCaption名を「男性」に変更し、「OptionButton2」のCaption名を「女性」に変更します。

 

次に、コマンドボタンを押した時に指定したセルに転記されるように設定をします。

Private Sub CommandButton1_Click()
If OptionButton1.Value = True Then
Worksheets(“sheet1”).Range(“A1”).Value = OptionButton1.Caption
ElseIf OptionButton2.Value = True Then
Worksheets(“sheet1”).Range(“A1”).Value = OptionButton2.Caption
End If
End Sub

  1. もし、オプションボタン1が選択されたら
  2. シート名(sheet1)のセル(A1)にオプションボタン1のキャプション名を転記する
  3. それ以外のもし、オプションボタン2が選択されたら
  4. シート名(sheet1)のセル(A1)にオプションボタン2のキャプション名を転記する
  5. Ifステートメント終了

って感じです。

こんな要望もあります

ユーザーフォームに表示されているオプションボタンの名前と実際にセルに転記する文字を変えたい時ってあるんですよね。

そんな時は、イコールの右側OptionButton1.Captionを変更したい文字を指定してあげれば大丈夫です。

例えば、「男性」ではなくて「男」という文字にしたい場合はOptionButton1.Captionの部分を(“男”)とすれば変更できます。

(””)にして””の間に文字を入れてあげればいいのです。

数字の場合は(1)で””が必要なくなります。

簡単ですよね。

ただし、住所録などで使う場合は、このままでは使いようがありません。なぜならば、いつも同じセルに男性・女性が転記されてしまう為に住所録リストになりません。

住所録リストにするならば、最後に入力した行(セル)の1つ下のセルに入力されなくてはいけないので、指定したセル(“A1”)と.Valueの間に.End(xlDown).Offset(1, 0)を付け加えてあげます。

これは「最終セルを見つけ出してその1つ下のセル」という意味です。

この.End(xlDown).Offset(1, 0)を付け加えるだけで、追加した性別が毎回最終行のセルの1つ下に転記されるので絶対に必要なのです。

出来上がりが、これです。

Private Sub CommandButton1_Click()
If OptionButton1.Value = True Then
Worksheets(“sheet1”).Range(“A1”).End(xlDown).Offset(1, 0).Value = OptionButton1.Caption
ElseIf OptionButton2.Value = True Then
Worksheets(“sheet1”).Range(“A1”).End(xlDown).Offset(1, 0).Value = OptionButton2.Caption
End If
End Sub

そんなに難しくないですよね。実際に使っている住所録でもこの機能を付け加えています。

スポンサーリンク

各コントロールまとめて転記シリーズ

ユーザーフォームを使うと配置したコントロール(テキストボックスやラベルなど)とセルとの間で値のやり取りが多くなります。

よく使うのでまとめてみました。

値の場所転記したい場所説明ページ
セルの値ラベル名VBAコード
セルの値テキストボックスの値VBAコード
セルの値コマンドボタンの表示名VBAコード
セルの値セルの値VBAコード
テキストボックス入力値セルの値VBAコード
波乗りアヒル
波乗りアヒル

成績表作成には知っておきたいExcel-VBAもくじ

ボウリングハンデキャップのつけ方
HDCPの種類はリーグのルールにより複雑に ボウリングの成績表(リーグ戦)で必ず必要になるのが、ハンデキャップ(HDCP)です。 ボウリングご予約の時に一番多く使われているのが、女性にだけハンデキャップをつけてあげることが多いですね。 だいだい何点ぐらいのハンデキャップが多いの?
ボウリングリーグ対戦表の数字を名前に自動変換する方法
リーグ戦の対戦表をエクセルで作る時、数字で表されている番号を名前に自動的に変換できると作業時間が短くなり効率的ですね。たった2つのエクセル関数を使うだけで、簡単にできるんです。今回の回戦数を入力するだけで一発変換完了。もちろんお客様にスケジュール対戦表として渡すことも簡単ですよ。
人数に応じてリーグ対戦表を自動選択する方法
複数の表があり、条件に合った表を選んで、さらにセルの値を選んで数字を名前に自動変換できると、とても便利なエクセルができますよね。ボウリングのリーグ対戦表も人数により表が異なるので、参加人数が決まったら、自動的に表を選んで対戦番号がこれも自動的に参加者名に変換されると便利で作業効率がアップして時間短縮になりますよ。
波乗りアヒル
波乗りアヒル

エクセルの勉強お疲れ様です。ちょっとひと休みしませんか?

タイトルとURLをコピーしました