• 締切済み

エクセルVBA 別シートからのコンボボックス連動

エクセルVBA 別シートからのコンボボックス連動について Book1(多人数入力用ブック) ・入力シート ・データ用シート Book2(反映用ブック) ・シート1 Book1にコンボボックスが2列 テキストボックスが2列 * 6行のユーザーフォームを作成しました。 コンボボックス1 コンボボックス2 テキストボックス1 テキストボックス2 コンボボックス3 コンボボックス4 テキストボックス3 テキストボックス4 ・ ・ ・ 左のコンボボックスで「あ」が選ばれたときには、右のコンボボックスで「あ行の顧客」・・・というように連動させたいと考えております。 データ用シートのデータは、   A      B          C 1 あ あ行で始まる顧客 か行で始まる顧客 2 か 3 さ 4 た 5 な 6 Private Sub UserForm_Initialize() Dim c As Range ComboBox1.RowSource = "データ用シート!A1:A9" End Sub Private Sub ComboBox1_Change() 'Dim Rng As Range 'Dim i As Long i = ComboBox1.ListIndex If i > -1 Then Dim c As Range Set Sh = Worksheets("データ用シート") Set Rng = Worksheets("データ用シート").Range("B2:I30") ComboBox2.Value = "" ComboBox2.RowSource = Rng.Columns(i + 1).Address End If End Sub 上記コードですと、コンボボックス2が入力シートのデータを表示してしまいうまくいきません。 欲をいえば、 Book1(多人数入力用ブック)入力シートの特定セルに コンボボックス2・テキストボックス1 コンボボックス4・テキストボックス3というように続けて1セルに反映 Book2(反映用ブック)シート1に コンボボックス2・テキストボックス1・テキストボックス2 を各1セル 1行に反映させたいと考えております。 まったく知識がないのですが 仕事上どうしても必要となったので、各種サイトを見よう見真似でやっております。 ご助力いただければ幸いです。

みんなの回答

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.2

> 上記コードですと、コンボボックス2が入力シートのデータを表示してしまいうまくいきません。 デバッグ用コードを3行追加します。出力をイミディエイトウィンドウで 確認してみて下さい。 >  ComboBox2.RowSource = Rng.Columns(i + 1).Address   Debug.Print "設定値:" & Rng.Columns(i + 1).Address   Debug.Print "ComboBox2:" & ComboBox2.RowSource   Debug.Print "ComboBox1:" & ComboBox1.RowSource デバッグして確認すればすぐ分かった話ですね。シート名が 指定されていないから Active なシートのセルからデータが 取られているだけです。 > 欲をいえば、 他の Book を開く方法は分かるの?って所から始まり、何ができて 何が分からないのかの説明をして下さい。 現時点では丸投げしてるだけなのでスルー対象ですね。

hiposi
質問者

お礼

回答ありがとうございました。 御礼が遅くなり申し訳ございませんでした

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

コンボボックス2の設定は、 ComboBox2.RowSource = "データ用シート!" & Rng.Columns(i + 1).Address 他の質問は、具体的に何をどうしたいのか、分かりにくいです。

hiposi
質問者

お礼

お礼が遅くなり申し訳ございませんでした。 回答ありがとうございます。 コンボボックス1と2の設定は教えていただいたコードでできました。

関連するQ&A