こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

エクセル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行に反映させたいと考えております。

まったく知識がないのですが 仕事上どうしても必要となったので、各種サイトを見よう見真似でやっております。
ご助力いただければ幸いです。

投稿日時 - 2011-08-31 12:34:30

QNo.6979739

暇なときに回答ください

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.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 を開く方法は分かるの?って所から始まり、何ができて
何が分からないのかの説明をして下さい。
現時点では丸投げしてるだけなのでスルー対象ですね。

投稿日時 - 2011-08-31 17:35:15

お礼

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

投稿日時 - 2011-09-05 12:08:00

ANo.1

コンボボックス2の設定は、
ComboBox2.RowSource = "データ用シート!" & Rng.Columns(i + 1).Address


他の質問は、具体的に何をどうしたいのか、分かりにくいです。

投稿日時 - 2011-08-31 17:12:53

お礼

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

投稿日時 - 2011-09-05 12:03:38

あなたにオススメの質問