- ベストアンサー
【できるだけシンプルに選択できる仕組み】
例えば「天塩郡」と入力するとポップアップ等が表示され 「豊富町」 「幌延町」 「天塩町」 が表示され選択できるような仕掛けを作成したいです。 理想はシート1に入力と表示/シート2に全国の住所データをしたいです
- みんなの回答 (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)
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
- keithin
- ベストアンサー率66% (5278/7941)
ん~~~~~と。。。どういう風にお話ししたらいいんでしょうね。 再掲: >できるだけシンプルに という趣旨のご相談でしたので,それでしたら例えば A列 B列 C列 天塩郡 天塩町 豊富町 上川郡 新得町 東川町 のように作成したモノをベースに,先の回答のURLのような方法(縦と横の違いはまぁ応用問題として)で,入力規則が自動で切り替わるように作成するのが一番シンプルです。とお話ししています。 こういうシンプルさを捨てて,(追加で出てきた)ご自分の今のリストのそのとーり絶対にやりたいなら,もっとかなり大変な事をするハメになります。 シンプルはヤメた,どんなに大変でもこの通りに絶対ヤリタイという風に方針変換したいのでしたら,それなりに作り込みが必要です。その時はもうちょっと「具体的にあなたの今のエクセルの正確な姿」を目に見えるように正しく情報提供して,ご相談を出し直して下さい。
- keithin
- ベストアンサー率66% (5278/7941)
>できるだけシンプルに まずは下記などご参考に。 http://www4.synapse.ne.jp/yone/excel2010/excel2010_nyukisoku3.html 「野菜」「肉」に応じて選択肢を切り替える、基本の手順です。
補足
ありがとうございます。 データは縦ではなく、左から横に並んでいて A B 天塩郡 天塩町 天塩郡 豊富町 上川郡 新得町 上川郡 東川町 となっています。
補足
シンプルの本質が説明不足でしたね。。。 ユーザー側にとってシンプルな入力です。