No.1ベストアンサー
- 回答日時:
やり方はいくつもあるのですが、とりあえず簡単な方法。
都道府県名のリストと、市町村名のリストをワークシートに書いておく方法です。
まず最初に都道府県名のリストを作成します。
Sheet1(シートはどこでも構いません)の A1 に「東京都」A2 に「栃木県」A3 に「茨城県」と入力します。
(本番では A1 から下に向かって都道府県名を入力していってください。)
全部入力が終わったら A1~A3(47都道府県を入力したのなら A47 まで)を選択し、Excel ツールバーの左端の「名前ボックス」に「都道府県」と入力します。
場所わかるかなぁ・・・多分 A1~A47 を選択した状態だと A1 って表示されてると思います。(数式バーの左です)
次に各市町村のリストを作成します。
B1 に「江東区」B2 に「墨田区」B3 に「足立区」と、B列を下に向かって入力。
C1 に「宇都宮市」C2 に「日光市」C3 に「佐野市」と、C列を下に向かって入力。
D1 に「水戸市」D2 に「日立市」D3 に「鹿嶋市」と、D列を下に向かって入力。
B1~B列の最後に入力したセルまでを選択し、先ほどと同様、名前ボックスに「東京都」と入力。C列に入力した範囲は「栃木県」、D列に入力した範囲は「茨城県」と入力します。
ポイントは、A列に入力した都道府県名と全く同じ文字で名前をつける所です。
ここまでやったことを解説します。
都道府県名を入力し、その入力範囲に名前をつけました。
同じく、各都道府県ごとの市町村名にも都道府県の名前をつけました。
次にユーザーフォームでの作業です。
ユーザーフォームに ComboBox を 2つ準備します。名前はデフォルトのまま ComboBox1 と ComboBox2 とします。
ユーザーフォームに下記のコードを書きます。
Private Sub UserForm_Initialize()
Me.ComboBox1.RowSource = "都道府県"
Me.ComboBox2.RowSource = ""
End Sub
Private Sub ComboBox1_Change()
Me.ComboBox2.Value = ""
Me.ComboBox2.RowSource = Me.ComboBox1.Value
End Sub
これでユーザーが ComboBox1 で都道府県を選択すると、ComboBox2 には選択した都道府県の市町村リストが配置されます。
ここまでを解説します。
フォームの初期化イベントで ComboBox1 のリストに、シートで「都道府県」という名前がつけられた範囲の値をセットします。
Me.ComboBox1.RowSource = "都道府県"
「都道府県」という名前の範囲は A列に入力した各都道府県名がありますので、ComboBox1 には 47都道府県の名前が表示されます。
さらに ComboBox2 のリストを空っぽにします。
Me.ComboBox2.RowSource = ""
フォームの初期状態ではどの都道府県も選択されていないわけですから ComboBox2 は空っぽじゃなくてはいけません。
次に ComboBox1 でどこかの都道府県を選択したときの処理です。
まずは ComboBox2 で選択されている(かもしれない)どこかの市町村名をクリアします。
Me.ComboBox2.Value = ""
そして ComboBox1 で選択した都道府県名と同じ名前の市町村名リストを ComboBox2 のリストにセットします。
Me.ComboBox2.RowSource = Me.ComboBox1.Value
こんな感じです。
早速の回答ありがとうございます。また、懇切丁寧な説明もして頂いてありがとうございます。希望していたことができました。すごいの一言です。なんか涙が出るくらいうれしい!感謝×2です。
一寸背伸びをしてVBAというものを勉強してみようと思い立ち、とりあえず住所録の入力が簡単に行える仕組みを作ろうと思い、いざ本屋さんやWeb検索をしてみましたがわからずに諦め掛けていました。最後にと思いこちらに投稿したところです。まだ、先があるので解らないことがあったら質問させていただきます。
temtecomai2さん今後もよろしくお願いします。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Outlook VBAについて 1 2023/07/10 12:41
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 日本の全市区町村を人口密度が低 1 2023/06/18 19:51
- Excel(エクセル) オートフィルターをかけ、#N/A以外で絞込みするVBA記述をご教示ください 2 2022/04/01 14:35
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Excel(エクセル) コンボボックス及びリストボックスを5段階連動させる方法をご存知の方ご教授頂きたいです。 Excelで 3 2022/04/03 21:43
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Excel(エクセル) Excel VBAのことでお聞きしたいことがあり、ご教授お願いします。 下記の3つの図形があり、この 3 2022/08/08 17:57
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数字以外の入力をエラーにする...
-
Excel-VBAでInputBox+Pulldown...
-
エクセルVBA テキストボックス...
-
VBAでInputBoxの再入力をさせる...
-
DataGridViewの桁数制限に関して
-
初歩的な事だと思います。 Sub...
-
TextBoxから数字が文字...
-
EXCEL VBA で指定した範囲に入...
-
エディットボックスの入力制限...
-
excel vba でユーザーフォーム...
-
「イ分」・・・フンという文字...
-
テキストボックスの番号を使っ...
-
X(元Twitter)で問題があり、お...
-
アクセスのマクロ
-
c#でTextBoxの入力制限
-
ExcelVBAのユーザーフォームで...
-
ACCESS テキストボックスの入力...
-
VBA R1C1形式で変数の入力について
-
phpMyAdmin/テーブル作成エラー...
-
教えて!全角文字「μ」の半角
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA テキストボックス...
-
テキストボックスの番号を使っ...
-
数字以外の入力をエラーにする...
-
初歩的な事だと思います。 Sub...
-
EXCEL VBA で指定した範囲に入...
-
Windowsのアプリ開発ってなんの...
-
入力フォームの値をQRコードで...
-
教えて!全角文字「μ」の半角
-
Excel-VBAでInputBox+Pulldown...
-
VBAでInputBoxの再入力をさせる...
-
エディットボックスの入力制限...
-
TextBoxから数字が文字...
-
VBAの質問になります メッセー...
-
指定した演算を実施の結果を表...
-
excel vba でユーザーフォーム...
-
アルファベットGの小文字の入力
-
DataGridView 列ごとの入力制限
-
accessで該当するレコードがな...
-
c#でTextBoxの入力制限
-
VBA R1C1形式で変数の入力について
おすすめ情報