Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


76736 / 76738 ←次へ | 前へ→

【2577】Re:コンボボックスで選択、そしてまた次のコンボボックスで選択
回答  ichinose  - 03/1/6(月) 16:55 -

引用なし
パスワード
   ▼EBA さん:
こんにちは。
>またまたお世話になります。
>Excel VBA初心者です。
>早速質問なのですが、シート1に下のようなリストがあるとします。
>
>   A       B
>1  東京都  渋谷区
>2  東京都  新宿区
>3  東京都  港区
>4  茨城県  水戸市 
>5  茨城県  つくば市
>6  茨城県  ひたちなか市      
>.   .    .
>.   .    .
>.   .    .
>
>ユーザーフォームを作り、そこにコンボボックス1、
>コンボボックス2を作ります。
>コンボボックス1で都道府県名を選択し、
>コンボボックス2で、1で選択した都道府県の「区市郡」
>を選択できるようにするにはどうしたらよいのでしょう。
>どなたかご教授お願いいたします。

A列が全て空白だった場合のエラー処理をしていませんが、
A列の重複なしのデータを取り出すのにC列をワークで使いました。
他の列が都合がよければ変更してください。
当該フォームモジュールに・・・
'===============================================================
Sub set_combo_item(cmb As MSForms.ComboBox, func_str As String)
'input: cmb データをセットするコンボボックス
'input: func_str データ抽出のための関数式
  Dim rng As Range
  Dim rng2 As Range
  Dim rng3 As Range
  With ThisWorkbook.Worksheets(1)
   Set rng = .Range("a1", .Range("a65536").End(xlUp))
   End With
  rng.Offset(0, 2).Formula = func_str
  rng.Offset(0, 2) = rng.Offset(0, 2).Value
  Set rng2 = rng.Offset(0, 2).SpecialCells(xlCellTypeConstants)
  cmb.Clear
  For Each rng3 In rng2
   cmb.AddItem rng3.Value
   Next
  cmb.ListIndex = 0
  rng2.Value = ""
  Set rng = Nothing
  Set rng2 = Nothing
  Set rng3 = Nothing
End Sub
'==============================
Private Sub ComboBox1_Change()
  Dim func_str As String
  func_str = "=if(a1=""" & ComboBox1.Text & """,b1,"""")"
  Call set_combo_item(ComboBox2, func_str)
End Sub
'==========================================================
Private Sub UserForm_Initialize()
  Dim func_str As String
  func_str = "=if(countif($a$1:a1,a1)>1,"""",a1)"
  Call set_combo_item(ComboBox1, func_str)
  func_str = "=if(a1=""" & ComboBox1.Text & """,b1,"""")"
  Call set_combo_item(ComboBox2, func_str)
End Sub

A列の重複なしデータの抽出は、他にも方法がありそうですよ。

0 hits

【2574】コンボボックスで選択、そしてまた次のコンボボックスで選択 EBA 03/1/6(月) 11:07 質問
【2576】Re:コンボボックスで選択、そしてまた次のコ... ポンタ 03/1/6(月) 16:53 回答
【2659】Re:コンボボックスで選択、そしてまた次のコ... EBA 03/1/9(木) 17:31 お礼
【2577】Re:コンボボックスで選択、そしてまた次のコ... ichinose 03/1/6(月) 16:55 回答
【2596】Re:コンボボックスで選択、そしてまた次のコ... EBA 03/1/7(火) 13:16 お礼
【2604】Re:コンボボックスで選択、そしてまた次のコ... ichinose 03/1/7(火) 18:41 発言
【2614】Re:コンボボックスで選択、そしてまた次のコ... EBA 03/1/8(水) 10:39 お礼
【9653】Re:コンボボックスで選択、そしてまた次のコ... ぴ〜ちゃん 03/12/12(金) 1:39 質問
【9697】Re:コンボボックスで選択、そしてまた次のコ... ichinose 03/12/13(土) 2:48 回答
【9698】Re:コンボボックスで選択、そしてまた次のコ... ichinose 03/12/13(土) 9:52 発言
【9701】Re:コンボボックスで選択、そしてまた次のコ... ぴ〜ちゃん 03/12/14(日) 0:40 質問
【9703】Re:コンボボックスで選択、そしてまた次のコ... ぴ〜ちゃん 03/12/14(日) 9:07 お礼
【18724】Re:コンボボックスで選択、そしてまた次... ぴ〜こ 04/10/7(木) 15:23 質問
【18734】Re:コンボボックスで選択、そしてまた次... ichinose 04/10/7(木) 20:12 発言
【18735】Re:コンボボックスで選択、そしてまた次... ぴ〜こ 04/10/7(木) 20:53 質問
【18736】Re:コンボボックスで選択、そしてまた次... ichinose 04/10/7(木) 21:27 発言
【18752】Re:コンボボックスで選択、そしてまた次... ぴ〜こ 04/10/8(金) 20:55 お礼

76736 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free