Excel VBA質問箱 IV

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

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


12746 / 13644 ツリー ←次へ | 前へ→

【8864】シート名を変数で指定したい まめ 03/11/6(木) 16:28 質問
【8866】Re:シート名を変数で指定したい INA 03/11/6(木) 16:50 回答
【8868】Re:シート名を変数で指定したい まめ 03/11/6(木) 17:48 質問
【8869】Re:シート名を変数で指定したい INA 03/11/6(木) 18:00 回答
【8878】Re:シート名を変数で指定したい まめ 03/11/7(金) 9:46 お礼

【8864】シート名を変数で指定したい
質問  まめ  - 03/11/6(木) 16:28 -

引用なし
パスワード
   はじめまして。
質問です。
ひとつのブックの中にシートが5枚あるとします。
シート2〜4はデータベース的な役割をしていて、シート名はそれぞれ
シート2:北海道
シート3:東北
シート4:関東
とシート名がついています。
各シートにはそれぞれの地方の市町村名とその市町村に関する情報などが入っています。
シート1にオプションボタンがついており、そこで北海道、東北などの地域を選ぶと、その下にあるコンボボックスにそのオプションボタンに合う市町村名が表示されるようになっています。
例えばオプションボタンで北海道を選択すると、シート"北海道"2の市町村名の入っている列を見に行き、Additemでコンボにアイテムを追加していきます。
これでコンボボックスの中に旭川、稚内、釧路…などとリストが表示されます。

このコンボボックスから市町村名を選択すると、それに対応する情報をシート1の表に表示させたいのですが、どうしたらよいのでしょう??

例えば旭川と選択したら、シート1の一覧表に旭川の人口などの情報をシート(”北海道”)の市町村名列が("旭川")のレコードを見つけ、人口などの情報をシート1に表示したいのです。

要はシート1で地域、都市を選択するだけで、特定シートの特定行のデータをすべて閲覧できるようにしたいのです。

よろしくお願いします。

【8866】Re:シート名を変数で指定したい
回答  INA  - 03/11/6(木) 16:50 -

引用なし
パスワード
   worksheets("北海道")
とか
Worksheets(combobox1.value)
とか
dim mysheet as string
mysheet=combobox1.value
Worksheets(mysheet)
とか?

【8868】Re:シート名を変数で指定したい
質問  まめ  - 03/11/6(木) 17:48 -

引用なし
パスワード
   ▼INA さん:
>worksheets("北海道")
>とか
>Worksheets(combobox1.value)
>とか
>dim mysheet as string
>mysheet=combobox1.value
>Worksheets(mysheet)
>とか?

シート名はオプションボタンのキャプションで変わります。
例えば
オプションボタンで"北海道"を選択すると、"北海道"シートにある、市町村名Rowのデータをコンボボックスのアイテムにしていくようになっています。
そのコンボボックスから市町村名を選択すると、その市町村に対応するレコードを引っ張るようにしたいんです。

現在はオプションボタンのクリックイベントで、各オプションボタンを選択すると、そのキャプションがstrSheetNameに格納されるようになっています。
以下はSheet1のコンボボックスのチェンジイベントプロシージャのソースです。
コンボで選択した市町村名をシート1のセルA32に入れ、それをもとにVlookupを使って
B32,C32…とその市町村に対応するデータを入れたいのですが、  「Set RS = Range(strSheetName & "!B5:G58")」
でいつもRangeメソッドエラーになり、実行できません。
どうしたらいいでしょう?


Private Sub ComboBox1_Change()

  Dim RS As Range
  
     Sheets(strSheetName).Activate
    Set RS = Range(strSheetName & "!B5:G58")

    Range("A32").Value = ComboBox2.Text
    Range("B32").Value = WorksheetFunction.VLookup(Range("A32"), RS, 2)
    Range("C32").Value = WorksheetFunction.VLookup(Range("A32"), RS, 3)
    Range("D32").Value = WorksheetFunction.VLookup(Range("A32"), RS, 4)
    Range("E32").Value = WorksheetFunction.VLookup(Range("A32"), RS, 5)
    Range("F32").Value = WorksheetFunction.VLookup(Range("A32"), RS, 6)
   
End Sub
長々とすみませんが、よろしくお願いします。

【8869】Re:シート名を変数で指定したい
回答  INA  - 03/11/6(木) 18:00 -

引用なし
パスワード
   >Set RS = Range(strSheetName & "!B5:G58")

Set RS = worksheets(strSheetName).Range("B5:G58")

としては?

【8878】Re:シート名を変数で指定したい
お礼  まめ  - 03/11/7(金) 9:46 -

引用なし
パスワード
   ▼INA さん:
ありがとうございましたっ!!
できました!!

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