|
初めて投稿します。Excel VBAで以下のことを行いたいと考えています。
データ参照用のシートに、世界の大陸と所属する国のデータを用意します。
縦方向に大陸が、横方向に各大陸の国が記載されています。
各大陸から1つの大陸を選択し、その大陸の中から1つの国を選択します。
その結果をExcelの別のシートに書き出すというものです。
これを行うため、ComboBoxのRowSource機能を用いて、データ参照用のシート上で
大陸の範囲を縦方向に特定し、その後国の範囲を横方向に特定する方法で行います。
問題は、最初に大陸を選択する時にドロップダウンボタンを押すと、縦方向にデータが表示され正常に選択もできるのですが、国で行うと横方向のため、横表示となり、選択すると常に一番左の国名しか選択できません。
どのようにすれば、国名も縦方向に表示され、国が1つだけ選択することができるでしょうか?お知恵を拝借したいと存じます。なお、以下にソースの一部を掲載します。また、Transpose関数を使って何かできないか考えましたが、良い考えが浮かびませんでした…
(大陸の選択に関する記述)
With Selection
column = .Rows.Count '同上領域の列数を取得する
area = .Cells(1, 1).Address & ":" & .Cells(column, 1).Address '同上領域のアドレスを変数に
End With
ComboBox1.RowSource = sht_name & "!" & area 'コンボボックスのリストのソースを設定する
(国の選択に関する記述)
With Selection
row = .Columns.Count '同上領域の列数を取得する
area2 = .Cells(column, 2).Address & ":" & .Cells(column, row).Address '同上領域のアドレスを変数に
End With
ComboBox2.RowSource = sht_name & "!" & area2 'コンボボックスのリストのソースを設定する
|
|