• ベストアンサー

リストから選択して入力する場合

Win2000/Excel2000です。 例えば、リスト1に都道府県名を作成しておき、「入力規則」を利用してリスト1から都道府県名を選択入力するに際し、政令都市(“区”がある)の場合は引き続き区名が現れてそれをポイントして区名を選択入力できるようにしたい。ちょうどWindows[スタート]→[アクセサリ]→[電卓]のように。 リスト2として区名表を作成しておき、リスト1の「東京都」をリスト2を使って区名の選択入力ができるようにするなど試しましたが駄目でした。

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

  • ベストアンサー
  • comv
  • ベストアンサー率52% (322/612)
回答No.2

こんにちは リストに使う元表を別シートに以下のように作成して下さい 1行目に都道府県名 2行目は空白 3行目以降に1行目の都道府県に連動させるリスト2 の値(区名など)    A  B・・・・・・X 1 東京 神奈川・・・・・ 2 3 港  川崎 : 中央 横浜 : :   : n :   : ・A1:Xnまで選択 ・挿入 名前 作成 上端にチェック OK ・A1:X1まで選択 ・挿入 名前 定義 適当な名前 例:都道府県 入力規則設定シート ・都道府県名のリストを設定したいセルを選択(仮にA1)  入力規則 設定タブ リスト▼  元の値欄 =都道府県 (イコールと定義名) ・区名を表示したいセルを選択(仮にB1)  入力規則 設定タブ リスト▼  元の値欄 =INDIRECT(A1) (エラーメッセージが出る場合も強硬してOKです) あとは必要行まで複写

ubonoti01
質問者

お礼

ご丁寧な回答を有り難うございました。早速ご指示の方法を試行してみました。 が、小生の希望目的とは少し違うようです。小生の目的は「操作性」なのです。解がA列とB列の2箇所分かれているのも目的と異なります。 ともあれ丁重な回答に感謝しております。

その他の回答 (6)

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

#4のお礼部分のご返事ありがとうございました。初めから、ご質問は住所録の問題ではないな、という感じを持っていました。初めからアンケートと言う言葉を出された方が、解答をしようとする人には良いのではなかったかと思いました。しかしアンケート調査であるなら、「解が2つのセルに分かれる」のがなぜよくないのか判りません。長くなるので止めますが、非力感を持ちつつ、最後に私の感じを述べさせていただくと (1)要求水準を上げると、プログラムが必要。 (2)アンケートなら、チェックボッックスが使われることが多いのでは。それなりの合理性がある。 (3)前の解答の選択肢・種類で、その後の設問を左右して行く問題だと思いますが、状態推移図を良く考えてやってください。 解答入力直後だけでなく、以後全て解答不要なんてのも出てきて次段だけに影響は止まらないですよね。 (今不動産所有状況の調査が回っていますが、持っていなければ、以後の解答は全て不要と言ったケース。) 出来れば見える設問そのものを変えてしまいたい(余分な設問は消したい)ですよね。難しそう。 そんなニーズには私の既解答など役立ちませんでしょうね。

ubonoti01
質問者

お礼

当方の力不足、質問の表現不足もあって、当初の質問解決には至りませんでしたが、この辺で締め切りにしたいと思います。 皆さんには大変お世話になりました。有り難うございました。

  • comv
  • ベストアンサー率52% (322/612)
回答No.6

#2のcomvです >小生の目的は「操作性」なのです。 >解がA列とB列の2箇所分かれているのも目的と異なります。 前提が「入力規則を利用して」のご質問で文面上 補足の部分は読み取れないのですが、要は1つの リストで多段リストを作ればよろしいのでしょうか? であれば前回の単純な応用で リストと手順は前回と同じ+政令都市名範囲に 名前定義 <仮に:政令都市> セルA1 入力規則 リスト 元の値欄に =IF(COUNTIF(政令都市,A1),INDIRECT(A1),都道府県) 必要セルへ複写 でできます。

ubonoti01
質問者

お礼

毎度有り難うございます。 仰せの通りやってみましたが、うまくゆきません。 (以下、Sheet1が入力用シート,Sheet2がリスト用シートの前提です) 今回いただいた回答では、 (1)Sheet1セルA1選択で▼をクリックすると全都道府県名がリストされますが、 (2)そこで「東京都」をポイント(クリック)しても政令都市名(中央区等)がリストされません。 (3)一旦、「東京都」に確定した後、セルA1を選択し直しても(1)と同じ状態です。   (3)でセルA1を選択すると政令都市名(中央区等)がリストされる趣旨の回答かと思われるのですが、そうであれば小生の操作ミスかもしれません。(何回も慎重に操作しているのですが・・・) 初回の質問にも書きましたように、Windowsの「電卓」を起動するときの操作(スタート→プログラム→アクセサリ→電卓)のように、マウスのスライドだけで「中央区」に行き着きたいのです。

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

#4のお礼の「解が2つのセルに分かれる点」が意に満たないようですが、確かに都道府県と市区町村は1つの列に入れるでしょうが(1)concatenate関数や&で別列に結合することはたやすいのですが、だめですか。 (2)入力規則では、2つ目のリストボックスを選んだ時 都府県と結合させてセルにその値を出すのは難しい。 (3)VBAなら都府県をワークエリアに持ち、その段階ではセルに出さず、市区町村が決まってから結合して1つのセルにセットすることはたやすいですが。

ubonoti01
質問者

お礼

有り難うございます。 この質問の最終目的は、ある企業内の社員から設問形式のアンケートをとり、集計するためのものです。 すなわち、アンケート回答者の入力が簡単で、かつ主宰者(小生側)の集計が容易であることが望まれるのです。

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

#1です。済みません、出来ないと思ったけれど、入力規則でできますね。参照範囲が即ち府県・市区の数が動的に伸縮しなくても良いなら (1)府県名を出す仕掛け A1:D1に例えば 東京都 神奈川県 埼玉県 茨城県 と入れる。 府県名を出すセルをポイントして データ-入力規則-「設定」タブをクリック-(入力値の種類)リスト-(元の値)$A$1:$D$1-OK (2)市区を出す仕掛け A列からD列に 中央区 川崎市 さいたま市 水戸市 千代田区 横浜市 川口市 牛久市 港区 神奈川区 川越市 つくば市 目黒区 麻生区 和光市 大田区 志木市 豊島区 新座市 と例えば入れる。 市区を出すセルをポイントして データ-入力規則-「設定」タブをクリック-(入力値の種類)リスト-(元の値)に =OFFSET($A$1,2,MATCH(G1,$A$1:$D$1,0)-1,6)といれ-OK (本例では、G1に都府県をセットするようにしてます。) これで都府県の東京をクリックし、市区のセルでクリックすると東京の列の市区名が出ます。

ubonoti01
質問者

お礼

再三のご回答、感謝します。 未だ試してはいませんが、解が2つのセルに分かれる点で#2comvさんの回答と結果的に同じようですね。

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.3

リスト1で選択した内容によってリスト2の候補を変更するには、VBAを使わなくても 出来ますよ。 さらにリスト2の選択内容により、リスト3の候補を変えることもできると思います。 ただ、ここでその手順を説明するには、図解も必要ですし、だいぶ長くなりますので ちょっと困難です。 Webを検索すれば、この件を解説しているサイトがあるかと思います。 見たことありますが、忘れてしまいました。ごめん。

ubonoti01
質問者

お礼

>Webを検索すれば、 そうですか、腰を据えて探してみます。ヒントになります。有り難うございました。

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

WINDOWS(OS)でここかしこに、便利な仕組みが披露されるので、つい自分でも作って利用したい気になるのは判りますが、これらはMS社の専門家が作ったものです。通常ユーザーには、そのように仕組んでくれていない以上、どうにもならず、入力規則やその他では出来ないように思います。 VBAで2段構えの検索をする仕組みの、リストボックスやコンボボックスやメニュー(バー上のメニュー)のプログラムを組まないと出来ないのではと思います。 VBAでも中上級の技と思いますが、お望みですか。 アクセスのVBAならSQLと言うのが使えて、少しプログラムがすっきりするように思います。

ubonoti01
質問者

お礼

有り難うございます。 どうも小生には手に負えないテーマのようですね。VBAもSQLも殆んど判っていませんので。 有り難うございました。

関連するQ&A