• ベストアンサー

セルの値の一致する複数のシート名をユーザーフォームのリストボックスに表示するには?

現在エクセルにて商品原価計算表を作成しています。 ユーザーフォームのリストボックスへシート名を表示して選択できるように作成していたのですが、部門別に表示できないかとの社内から意見があり困っております。(ほぼ完成前だった為) それぞれのシートに部門記入欄を作成して、部門の一致する複数のシート名をユーザーフォームのリストボックスに表示するにはどのようなコードを入力すればよろしいでしょうか? ※シートはコピーして増やします。 ※シート名は商品名です。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
noname#89471
noname#89471
回答No.3

当方あまり詳しくなく、ご希望にそったものかはわかりませんが... > それぞれのシートでドロップダウンリストを使用して"営業1課""営業2課"のように原価を求める部門を表示させているのですが、 >そのセルへ入力された部門毎にシート名を抜き出してユーザーフォームへそのシート名を反映させたいのです。 ------------------- ドロップダウンリストで各シートの"A1"セルに部門を入力させると仮定します。 で、 "A1"に"営業1課"と入力された"ところてん"、"からし"、"青海苔"というシートを、ListBox1へ表示。 "A1"に"営業2課"と入力された"豆腐"、"納豆"、"牛乳"というシートを、ListBox2へ表示。 "A1"に"営業3課"と入力された"にんじん"、"大根"、"白菜"というシートを、ListBox3へ表示。 で、 "ところてん"シートを例にとると、"A1"が"営業1課"から"営業2課"へ変更されたら、 "ところてん"シートは、今まで、ListBox1へ表示されていたが、変更後は、ListBox2へ表示。 という勝手な解釈をしました。 そのコードは、以下のとおりですが...私の解釈が間違っていたら、ごめんなさい。 確認のため、 MsgBox ("営業2課 シート名 = " & Worksheets(i).Name) で、例として [営業2課 シート名 = ところてん] と表示させるようにしました。 不要であれば、コメントブロックしてください。 ------------------- Option Explicit ------------------- Private Sub UserForm_Initialize() Dim i As Integer For i = 1 To Worksheets.Count If Worksheets(i).Range("A1") = "営業1課" Then MsgBox ("営業1課 シート名 = " & Worksheets(i).Name) UserForm1.ListBox1.AddItem Worksheets(i).Name ElseIf Worksheets(i).Range("A1") = "営業2課" Then MsgBox ("営業2課 シート名 = " & Worksheets(i).Name) UserForm1.ListBox2.AddItem Worksheets(i).Name ElseIf Worksheets(i).Range("A1") = "営業3課" Then MsgBox ("営業3課 シート名 = " & Worksheets(i).Name) UserForm1.ListBox3.AddItem Worksheets(i).Name Else Exit Sub End If Next i End Sub ------------------- Private Sub CommandButton1_Click() Unload Me End Sub ------------------- リストボックスに表示させた後の処理は、わかりませんので、とりあえずここまで。 この処理で、よかったのですか?

hassyrock
質問者

お礼

ご回答ありがとうございます。 まさにこの処理が必要でした。 ご教授頂いた方法を参考に一部変更して、目的の処理もできるようになりました。 ※お礼が遅くなりまして申し訳ございません。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

No.1です! たびたびごめんなさい!m(__)m 入力規則のリストと大きな勘違いをしていました。 先ほどの回答は無視してください。 どうもすみませんでした!

hassyrock
質問者

お礼

いえいえ気になさらないで下さい。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! Excelの別シートの参照先をドロップダウンリスト設定にしたいということでしょうか? 通常別シートの参照先はドロップダウンリストにはできないですよね? ↓のような方法があるみたいです。覗かれてみてはどうでしょうか? リスト表示したいセル範囲を設定して 「セルの名前」をつければ出来るみたいです。 http://plaza.rakuten.co.jp/pasodairy/diary/200506020000/ 参考になれば幸いです。 もし的外れの回答ならごめんなさい。m(__)m

hassyrock
質問者

お礼

ご回答ありがとうございます。 私の説明が下手で申し訳ございません。 それぞれのシートでドロップダウンリストを使用して"営業1課""営業2課"のように原価を求める部門を表示させているのですが、そのセルへ入力された部門毎にシート名を抜き出してユーザーフォームへそのシート名を反映させたいのです。 例:部門   営業1課(シート名"ところてん")…営業1課のリストボックスへ表示   営業2課(シート名"豆腐")…営業2課のリストボックスへ表示 宜しくお願い致します。

関連するQ&A