• 締切済み

Excelの選択肢をポップアップリストにしたい

Excelでとあるアンケートを作っております。 質問の選択肢が多いため、プルダウンリストではなく、ポップアップリストから 選択するようにしたいのですが、どのようにやればできるのでしょうか。VBA で組まないとできないのでしょうか。 ご教示願えますと幸甚です。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

エクセルには「ポップアップリスト」のような仕組みは無いのでは。 ーー VBAのイベントの仕組みを使っている。 それらしく、シートを選択リストとすることを考えると Sheet1に最終的にデータ入力するものとする。そのための仕掛けである。 Sheet1のG列に大分類の項目を作る G1:G5 野菜 鮮魚 日配 果物 雑貨 入力規則のドロップダウンにも出来るが、この回答では、これらのセルを選択してクリックすることにする。 Sheet2のシート名を「野菜」にする(G列の分類名とあわせる)。 このシートにこの分類(野菜)のデータを用意する。 例 きゅうり 福岡産 200 ねぎ 大分産 100 ホウレンそう 岡山産 80 ・・・ 以下略。 Sheet3のシートの名前を「鮮魚」にする。 このシートにこの分類のデータを用意する。 例 さば 大分産 300 アジ 宮崎産 200 ・・・ 以下略。 ーーーー 以下のシートの説明略。 ーーー 標準モジュールに Sub test01() a = Selection b = Selection.Offset(0, 1) c = Selection.Offset(0, 2) d1 = Worksheets("Sheet1").Range("A65536").End(xlUp).Row Worksheets("Sheet1").Cells(d1 + 1, "A") = a Worksheets("Sheet1").Cells(d1 + 1, "B") = b Worksheets("Sheet1").Cells(d1 + 1, "C") = c End Sub 選択した行の各列データをSheet1へ代入する。 ーー 「野菜」シートの「コードの表示」の画面に Private Sub Worksheet_SelectionChange(ByVal Target As Range) test01 Worksheets("Sheet1").Select End Sub 「鮮魚」シートの「コードの表示」画面に Private Sub Worksheet_SelectionChange(ByVal Target As Range) test01 Worksheets("Sheet1").Select End Sub ・・ 以下のシートも同じだが、説明略。 ーーー 操作 Sheet1でシート名のセル(またはドロップダウン)を選ぶ(仮に「鮮魚」のセルをクリック)と 「鮮魚」シートが開く そこで「さば」をクリックすると、そのデータがSheet1に入力される。 「野菜」シートで「ねぎ」をクリックすると Sheet1 さば 大分産 300 ねぎ 大分産 100 ーー 不安定(間違って選択してクリックなどの点)なところがあって、(チェックなど)他の人に使ってもらうレベルではないが。 だからあきらめた方が良かろう。

ds1977
質問者

補足

やはりVBAでしっかり組まなければ駄目なんですかね。ありがとうございます。

回答No.2

参考になりそうなサイトがありました ポップアップ・リスト・ウィンドウ http://www.microlab.jp/xcutedoc/Documents/manual/XCuteHelpNew/ValidPopUp.htm ドロップダウンリストでも入力規則で範囲を狭めつつ選択する方法も考えられます http://www.kenzo30.com/ex_kisopoint/onepoint_sonota3.htm

  • seorank
  • ベストアンサー率0% (0/0)
回答No.1

VBAで組まないと難しいかと。 そもそもポップアップにする必要があるのかどうか・・・

ds1977
質問者

補足

やはりVBAですかね。選択肢の数が多すぎ、また一文一文が長いので、視覚的に全部見えるようにしたいんです。

関連するQ&A