• ベストアンサー

【できるだけシンプルに選択できる仕組み】

例えば「天塩郡」と入力するとポップアップ等が表示され 「豊富町」 「幌延町」 「天塩町」 が表示され選択できるような仕掛けを作成したいです。 理想はシート1に入力と表示/シート2に全国の住所データをしたいです

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

>もうちょっと「具体的にあなたの今のエクセルの正確な姿」を目に見えるように正しく情報提供して とお願いしたのにそこはスルーということなので,こちらも勝手に説明します。 準備: シート2のA列に分類,シート2のB列に個別の選択肢を記載する A    B 天塩郡  天塩町 天塩郡  豊富町 上川郡  新得町 上川郡  東川町 少なくとも同じ分類は,上下に並んで列記する シート1のA列に,分類を記入する 手順: シート1のシート名タブを右クリック,コードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub Worksheet_Change(byval Target as excel.range)  dim h as range  dim c as long  dim r as long  on error resume next  with worksheets("Sheet2")  for each h in application.intersect(target, range("A:A"))   h.offset(0, 1).validation.delete   c = application.countif(.range("A:A"), h.value)   if c > 0 then    r = application.match(h.value, .range("A:A"), 0)    h.offset(0, 1).validation.add type:=xlvalidatelist, formula1:=join(application.transpose(.cells(r, "B").resize(c).value), ",")   end if  next  end with end sub ファイルメニューから終了してエクセルに戻る 以上で,あなたはもう何もしなくて構いません,A列に記入すれば勝手にB列に選択肢がセットされます。 まぁ,上手くできないときはあなたのエクセルの配置が説明と違うからなので。

その他の回答 (3)

回答No.3

添付図参照 データはF列で昇順(or降順)に並んでいるとして B2セル 住所データの郡を検索する =MATCH(A2,F:F,0) C2セル 一致する個数を検索する =COUNTIF(F:F,A2) D2セルの 入力規則 - リストにおいて =INDEX(G:G,B2):INDEX(G:G,B2+C2-1) B2:D2セル範囲を下へオートフィル たぶんだけど現時点でこれ以上シンプルにつくれないと思う。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

ん~~~~~と。。。どういう風にお話ししたらいいんでしょうね。 再掲: >できるだけシンプルに という趣旨のご相談でしたので,それでしたら例えば A列  B列  C列 天塩郡 天塩町 豊富町 上川郡 新得町 東川町 のように作成したモノをベースに,先の回答のURLのような方法(縦と横の違いはまぁ応用問題として)で,入力規則が自動で切り替わるように作成するのが一番シンプルです。とお話ししています。 こういうシンプルさを捨てて,(追加で出てきた)ご自分の今のリストのそのとーり絶対にやりたいなら,もっとかなり大変な事をするハメになります。 シンプルはヤメた,どんなに大変でもこの通りに絶対ヤリタイという風に方針変換したいのでしたら,それなりに作り込みが必要です。その時はもうちょっと「具体的にあなたの今のエクセルの正確な姿」を目に見えるように正しく情報提供して,ご相談を出し直して下さい。

Yamamon1983
質問者

補足

シンプルの本質が説明不足でしたね。。。 ユーザー側にとってシンプルな入力です。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>できるだけシンプルに まずは下記などご参考に。 http://www4.synapse.ne.jp/yone/excel2010/excel2010_nyukisoku3.html 「野菜」「肉」に応じて選択肢を切り替える、基本の手順です。

Yamamon1983
質問者

補足

ありがとうございます。 データは縦ではなく、左から横に並んでいて A    B 天塩郡  天塩町 天塩郡  豊富町 上川郡  新得町 上川郡  東川町 となっています。

関連するQ&A