Excel入力規則で1つのセルから参照したリストをプルダウンする方法

このQ&Aのポイント
  • Excel 2007を使用している場合、入力規則の設定でリストを参照する際に1つのセルから値を取得する方法について知りたいです。
  • 具体的には、A1セルに"0,1,2,3"という値を入力しておき、B1セルで入力規則を設定し、A1セルを参照してプルダウンリストを作成したいです。
  • しかし、現在の設定では"0,1,2,3"を1つの文字列として扱っており、プルダウンリストが正しく表示されません。解決策を教えてください。
回答を見る
  • ベストアンサー

Excel 入力規則のリスト参照元を1セルとしたい

Office:Excel 2007 お世話になっております。 相変わらずタイトルの文字制限少ないですね・・・。 と、それはおいといて・・・。 当方Excel2007を使用しているのですが、 入力規則の設定で、入力値の種類を「リスト」とした場合の 「元の値」を1つのセルから参照し、プルダウンしたいと考えています。 例えばA1に"0,1,2,3"という値を入れておき、 B1に入力規則を設定して、「元の値」の参照元をA1としたときに "0","1","2","3"がプルダウンしてくれるのかなと 思っていたのですが、やはり"0,1,2,3"で1文字列として扱っているためか、 ちゃんとプルダウンしませんでした。 何か方法をご存じの方いらっしゃいましたら、ご教示の程お願い致します。

  • ctske
  • お礼率81% (44/54)

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

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

No.1です。 >出来れば直接「元の値」を指定しないように出来ないか・・・ とありましたので、顔を出しました。 無理やりって感じになりますが、一案として、 仮にC1~C10セル程度(A1セルにカンマ区切りで入力する数以上)を元の値としておいて A1セルにデータが入力されるたびにC1セル以降にA1セルデータをカンマで区切って表示させてみてはどうでしょうか? 手動で データ → 区切り位置 → 「カンマ」で区切ってもよいのですがこの際ですので、VBAでやってみました。 まず、リスト表示させたいセルを範囲指定 → リスト → 元の値の欄に =$C$1:$C$10 としておきます。 次に操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてA1セルにカンマ区切りでデータを入力 → Enter としてみてください。 C1セル以降C列にそれぞれ表示されますので、それがリスト候補となります。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から Dim k As Long, myArray If Target.Address = "$A$1" Then Range("C:C").ClearContents If InStr(Target, ",") > 0 Then myArray = Split(Target, ",") For k = 0 To UBound(myArray) Cells(k + 1, "C") = myArray(k) Next k Else Range("C1") = Target End If End If End Sub 'この行まで ※ C列が目障りであればC列を非表示にしておきます。 ※ この程度しか思いつきませんが、ごめんなさいね。m(_ _)m

ctske
質問者

お礼

お礼が遅くなってしまい大変申し訳ありません。 別件でバタバタしてしまってなかなかお礼が出来ずにいました。 tom04さんのやり方もなるほどと思ったのですが、 今回やろうとしていることにはちょっとそぐわない感じがしました。 せっかくコードまで教えていただいて申し訳ないですが…。 そもそもこうしなくてはならないような作りにしてしまったせいもありますので、 もっと根本から見直してみようと思います。 これまでアドバイスを下さった方々には申し訳ないですが、 これで一応"解決"とさせていただきます。 (解決はしてませんが…。) ありがとうございました。

その他の回答 (3)

回答No.3

NO2より追記・・・ 0から表示させる場合も同様「元の値」に「0,1,2,3,4,5」と入力します。

ctske
質問者

お礼

ご回答ありがとうございます。 申し訳ありません。 その方法自体は存じていたのですが、 なんとか1セル内の値を「元の値」として使えないか模索しておりました。 理由は「回答No1」のお礼に記載してます。

回答No.2

>「元の値」を1つのセルから参照し、プルダウンしたいと考えています。 例えばセルA1に「1,2,3,4,5」のようなドロップダウンを作りたい場合 リストの「元の値」には普通に「1,2,3,4,5」と入力します 添付画像の様に入力です。

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

こんにちは! 入力規則のリストを設定する場合ですね! >例えばA1に"0,1,2,3"という値を入れておき とありますが、基本的には 複数セルを範囲指定 → 範囲指定セルがリスト候補(元の値)となる → 1セルを選択 といった流れが一般的だと思います。 すなわち今回の質問の内容ではA1セルだけがリスト候補(元の値)になります。 今回のようにリスト表示させたいデータが判っている場合はセルを指定するのではなく、 直接リストの元の値の欄に 0,1,2 とだけ入力すればそれぞれがリスト候補として表示されます。m(_ _)m

ctske
質問者

お礼

>複数セルを範囲指定 → 範囲指定セルがリスト候補(元の値)となる → 1セルを選択 といった流れが一般的だと思います。 すなわち今回の質問の内容ではA1セルだけがリスト候補(元の値)になります。 やっぱりそうですか。 セル自体が所謂リストの選択候補として表示されるという認識になるということですね。 直接「元の値」にリストデータをいれないで、1つのセルを参照して、セルの値を「元の値」として扱えれば便利だなぁと 思っていたのですが…^^; >今回のようにリスト表示させたいデータが判っている場合はセルを指定するのではなく、 直接リストの元の値の欄に 0,1,2 とだけ入力すればそれぞれがリスト候補として表示されます。m(_ _)m 表示させたいリストがわかっているといえばわかっているのですが、 リスト化しているセルが複数ありまして、また、場合によって 「元の値」が変わることも普通にあるため 出来れば直接「元の値」を指定しないように出来ないか模索していました。 複数セルを範囲指定する方法も存じてましたが、 今回の作り上その方法は出来るだけ避けたかったのです。 もっと目的をはっきりを書いておけばよかったですね、申し訳ありません。 ご回答ありがとうございました。

関連するQ&A

  • EXCELの入力規則のリストについて。その2(IFで空白にしたセル)

    EXCEL2000で入力規則のリストを設定しています。 IF(セル番号="","",VLOOKUP(…))を使用して表を作っています。 表は途中からIFによって空白行になっています。 この表全体をリストの「元の値」に設定しているのですが、プルダウンメニューに空白が延々と表示されてしまいます。 この空白を表示させない方法はあるでしょうか? どうかよろしくお願いします。 もう1つ「EXCELの入力規則のリストについて。その1」という質問もさせていただいています。 併せてよろしくお願いします。

  • セル相対参照で入力規則をコピーしていく

    こんにちは。 お知恵をお貸し下さい。 仕様ソフトはExcel2013です。 今、A1セルに10という値が入っています。 A2~A50までに整数を入力していくのですが、それらがA1の値である10以下となり、それ以外の数である11や20などを入力不可という入力規則を設定します。 A1セルを絶対参照して、「A1の値以下の整数」という設定です。 このようにして、A列はA1以下の整数、B列はB1以下の整数という設定を行っていきます。 B~Z列に関しても上記と同じ設定を行いたいのですが、 B1~Z1までのセルに入っている値がそれぞれ異なるので、単に入力規則をコピーしていったのでは、参照セルがA1のままですので、目的を果たせません。 また、一列ずつ入力規則を設定していったのでは時間が掛かってしまいます。 そこで、参照セルを相対参照しながら入力規則をコピーしていく方法があればよいと考えているのですが、そのやり方を教えて頂きたいのです。 または、もっと違う簡単な解決方法がありますでしょうか。 よろしくお願いいたします。

  • Excelのセルをリストから入力

    Excel2000ユーザーです。 任意のセルをリストからデータ入力(選択)するように設定した場合、リストに含まれない値を入力する方法はありますか? ■現状 [データ]→[入力規則]で入力規則プロパティ画面を表示し、 「入力規則の種類」:リスト 「元の値」:リストに含めるデータ 「ドロップダウンメニューから選択する」にチェック と設定しています。

  • VBAで入力規則のリスト参照元の値取得

    エクセル2007を使っています。 VBAツールを作っており、その処理で使われる一機能として 「任意のセルに設定されている入力規則のリストの元の値をVBAで取得する」処理を コード中に書きたいと思っております。 ■質問概要  「入力規則のリスト」が設定されている任意のセルを選択したときに、そのセルに設定されている  「入力規則のリスト」の「元の値」をVBAで取得する方法について教えてください。  ※取得した値は配列型の変数に代入するものとします ■想定イメージ  たとえば、次のようなブックで使うことを想定しております(画像参照)  ※実際はもっとデータ量が多いブックで使う予定です  ・「リスト元の値」というシートで「選択言語」という名前でリストを定義化  ・「通常操作するシート」では値を入力したいセルに対し、「入力規則のリスト」の「元の値」を   「=選択言語」で設定  VBAではこの「通常操作するシート」の入力欄のセルを選択している時に「選択言語」で定義されている  データをすべて取得し配列型変数に代入するという動作をさせたいと思っています。     この方法について教えてくださいますようお願いします。

  • excelの入力規則リストで重複不可にするには

    エクセルの入力規則でリストを利用して【プルダウンメニュー】を作成しています。 リストのデータを重複して選択できないようにするにはど のようにすればいいでしょうか? 例をあげるとしして 仮にA、b、Cの3つのセルに入力規則のリストを設定していずれも元の値が 『リンゴ』『みかん』『バナナ』とした場合。 Aのセルでリンゴを選択した時BやCのセルでリンゴを選択できないようにするに します。 VBAは全く分からないのでできれば関数で やる方法をご教授頂ければと思います。 宜しくお願いします

  • 入力規則のリストで入れたセルの色を変えたい!

    エクセルで入力規則のリストで入れたセルの色を変えたいのですが どなたか方法ご存知ですか? 参照セルの色を変えてもプルダウンの際、色が変わりません。

  • (MS-Excel)「入力規則」で「リスト」に空白セルを含めない方法

    (MS-Excel)「入力規則」で「リスト」に空白セルを含めない方法 たとえば、A1,B1,D1,G1は何らかの文字列が入力されていて、C1,E1,F1が空白セルだとします。 「入力規則」の「リスト」で、「元の値」にA1:G1を指定した場合は、空白もリストされてしまいます。 空白を表示させたくないのですが、作業セルに空白以外をリストさせて元の値とする、という方法は使いたくないです。 調べたところ、名前の定義方法で実現できるみたいですが、良く解りませんでした。

  • エクセル 入力規則

    エクセル2007を使っています。 入力規則で, 入力値の種類→リスト に設定しています。 何も入力しない(ヌル)と○のどちらかしか入力できないようにしたいのですが, 元の値に ,○ "",○ とか入れてみたのですが,ダメでした。 どのように入れればいいのでしょうか。 なお,他のセルを参照するようにすればうまくいくので,最悪そうしようと思っています。

  • エクセルの「入力規則」についてお尋ねします。

    エクセル2010です。 あるセルにデータの入力規則を設定します。 条件設定の入力値の種類を「リスト」にし、リストの値は、0,1,2,3と直接指定します。 これで設定したセルにはプルダウンで0,1,2,3を選択するか、直接0~3の数値の入力しかできなくなります。 ここまでは問題ないのですが、このセルにユーザー定義の書式、0"人"を設定して、1は1人と表示されるようにしました。そうすると、直接0~3の数値の入力ははじかれ、プルダウンで0,1,2,3を選択するしか入力ができなくなります。 リストに設定した値を正しく入力しているのに排除されるのはなぜでしょう? いろいろ試し、リストの値を、0,1,2,3と直接指定せず、セル範囲のリスト指定とし、そのセル範囲にもユーザー定義の書式、0"人"を設定しておけばクリアできました。 でも、たかだか数件のリストを指定するのにいちいちリストをワークシート上に作成し、そこにもユーザー定義の書式を設定しなければならないのは腑に落ちません。

  • リストの入力規則

    どなたか教えてください。 リストデータの入力規則の設定をすると、セルにカーソルをあてると指定した文字列がプルダウンで表示されますが、その指定した文字列のひとつが、あらかじめ表示されている状態にしたいのです。 可能でしょうか? 宜しくお願いします。

専門家に質問してみよう