• ベストアンサー

エクセルの入力規則リストで1行目に空白を設定したい

エクセル2000です。 入力規則でリストからの入力をさせる場合、リストの最初の一行目に空白を設定したいのです。 もちろんシートにそのようなリストを作ってリストをセル範囲で指定すればそうなるのですが、セル範囲指定でなく、「元の値」に直接入力でリストを指定する場合、カンマ区切りの先頭に何も入れず、 ,選択肢1,選択肢2,選択肢3 とすると、最初のカンマの前は反映せず3択のリストになってしまいます。最初のカンマの前を全角スペースとすればできるのですが全角スペースは空白ではありません。 これはどうしようもないのでしょうか?

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

  • ベストアンサー
  • higekuman
  • ベストアンサー率19% (195/979)
回答No.7

> 1.何も選択しない段階では空白 > 2.リストからA、B、Cのどれかを選択。 > 3.やはり選択止めたという場合に空白を再度選べる どうやら、質問者様がやりたいことそのものは、できそうにないみたいですね。 私がやるとすれば、 1.何も選択しない段階では[未選択]と表示。 2.リストから[未選択]、A、B、Cのどれかを選択。 3.やはり選択止めたという場合に[未選択]を再度選べる ですかねぇ。 初期状態はどうしても空白にしたい、だけど名前を定義して参照することもしたくない、というのであれば、 1.何も選択しない段階では空白。 2.リストからA、B、C、[キャンセル]のどれかを選択。 3.やはり選択止めたという場合に[キャンセル]を再度選べる という入力規則にしておき、シートモジュールのWorksheet_Changeイベントで、Targetが[キャンセル]だったらTargetをクリアするようにします。

merlionXX
質問者

お礼

> シートモジュールのWorksheet_Changeイベントで、Targetが[キャンセル]だったらTargetをクリア 素晴らしいアイディアですね! とても参考になりました、有難うございます。 (o。_。)o

その他の回答 (8)

  • izmlz
  • ベストアンサー率55% (67/120)
回答No.9

 先頭がブランク(空白)なのを忘れてました。参照範囲の式に「+1」を加えるだけですが、混乱されないように、修正後の前提と回答を再掲します。 【前提】  シート「リスト」の1行目に項目名、2行目以降にそれぞれの選択肢を入力していく。たとえば、A1:C6に以下のように入力されている。 項目1 項目2 項目3 aaa1 bbb1 ccc1 aaa2 bbb2 ccc2 aaa3 bbb3 aaa4  シート「入力」に、入力規則のリストを利用してデータを入力していく。例えば、A1:D4に以下のようなフォーマットになっている。 氏名 項目1 項目2 項目3 田中 鈴木 佐藤 【回答】  まずは名前定義です。 1. シート「入力」のセルB2がアクティブセルの状態で、 2. Ctrl+F3(または、メニュー[挿入]-[名前]-[定義]) 3. 名前に LIST と入力 4. 参照範囲に以下の式を入力 =INDEX(リスト!$2:$2,MATCH(入力!B$1,リスト!$1:$1,0)):INDEX(INDEX(リスト!$1:$65536,,MATCH(入力!B$1,リスト!$1:$1,0)),COUNTA(INDEX(リスト!$1:$65536,,MATCH(入力!B$1,リスト!$1:$1,0)))+1) 5. [OK]ボタンをクリック  続いて入力規則です。 1. シート「入力」のセルB2がアクティブセルの状態で、 2. メニュー[データ]-[入力規則] 3. [設定]タブの[入力値の種類]ボックスの[リスト]をクリック 4. [元の値] ボックスでF3(ファンクションキーのF3)を押す 5.「LIST」を選択してEnterを押す 6. [OK]ボタンをクリック  最後にセルB2をB2:D4にコピー&ペーストして完了です。  なお、入力規則の手順の1.で、セルB2がアクティブセルでB2:D4を選択している状態、としていれば、それで入力規則を設定できます。  これにより、それぞれの項目に選択肢が増えても自動的に名前定義の参照範囲が拡大されますし、項目自体を増やしてもそれも自動的に反映してくれます。  これなら、リストを直接列挙のやり方よりも楽じゃないかと思うのですが、いかがでしょうか?

merlionXX
質問者

お礼

なんどもありがとうございます。 わたしのやりたいこととは違いましたが勉強になりました。 ありがとうございます。

  • izmlz
  • ベストアンサー率55% (67/120)
回答No.8

>リストの種類が多いからなんです。  だから、可変範囲の名前定義をリストごとに設定するのが面倒、ということですね。  一回だけ名前定義の設定をすれば、全リストについて可変範囲の名前定義が設定される方法を考えてみました。 【前提】  シート「リスト」の1行目に項目名、2行目以降にそれぞれの選択肢を入力していく。たとえば、A1:C5に以下のように入力されている。 項目1 項目2 項目3 aaa1 bbb1 ccc1 aaa2 bbb2 ccc2 aaa3 bbb3 aaa4  シート「入力」に、入力規則のリストを利用してデータを入力していく。例えば、A1:D4に以下のようなフォーマットになっている。 氏名 項目1 項目2 項目3 田中 鈴木 佐藤 【回答】  まずは名前定義です。 1. シート「入力」のセルB2がアクティブセルの状態で、 2. Ctrl+F3(または、メニュー[挿入]-[名前]-[定義]) 3. 名前に LIST と入力 4. 参照範囲に以下の式を入力 =INDEX(リスト!$2:$2,MATCH(入力!B$1,リスト!$1:$1,0)):INDEX(INDEX(リスト!$1:$65536,,MATCH(入力!B$1,リスト!$1:$1,0)),COUNTA(INDEX(リスト!$1:$65536,,MATCH(入力!B$1,リスト!$1:$1,0)))) 5. [OK]ボタンをクリック  続いて入力規則です。 1. シート「入力」のセルB2がアクティブセルの状態で、 2. メニュー[データ]-[入力規則] 3. [設定]タブの[入力値の種類]ボックスの[リスト]をクリック 4. [元の値] ボックスでF3(ファンクションキーのF3)を押す 5.「LIST」を選択してEnterを押す 6. [OK]ボタンをクリック  最後にセルB2をB2:D4にコピー&ペーストして完了です。  なお、入力規則の手順の1.で、セルB2がアクティブセルでB2:D4を選択している状態、としていれば、それで入力規則を設定できます。  これにより、それぞれの項目に選択肢が増えても自動的に名前定義の参照範囲が拡大されますし、項目自体を増やしてもそれも自動的に反映してくれます。  これなら、リストを直接列挙のやり方よりも楽じゃないかと思うのですが、いかがでしょうか?

  • izmlz
  • ベストアンサー率55% (67/120)
回答No.6

>一々名前を定義するのが正直面倒なんです。 >だからリストを直接入力だからリストを直接入力したいのです。  状況理解しました。それでは、名前定義の参照範囲を可変にするのはいかがでしょう?具体的な手順は、以下です。  別シートのセルA1がブランクで、A2以降に選択肢が入力されているとします。 1.リストを入力しているシートを選択 2.Ctrl+F3 3.「名前」に「LIST」と入力 4.「参照範囲」に=$A$1:INDEX($A:$A,COUNTA($A:$A)+1) 5.Enterキーを押す  一回、こうして名前定義しておくと、A列に選択肢を追加/削除したら自動的に名前の参照範囲が拡張/縮小されます。  最初の名前定義の設定が面倒ですが、一回設定してしまえば、セルに入力できるので、入力規則のリストの元の値に入力するよりも使いやすいと思います。

merlionXX
質問者

お礼

> 一回、こうして名前定義しておくと、A列に選択肢を追加/削除したら自動的に名前の参照範囲が拡張/縮小されます。 こういうやり方があるんですね、勉強になりました。 ただ、今回めんどうと書いたのは選択肢を追加/削除ではなく、リストの種類が多いからなんです。 有難うございました。

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

質問がむつかいい表現になっているが、表現がピンとハズレでは。 リストがA、B、Cと設定しても、Dが、セルに!入れられるようにすれば済む話ではないの。 ーー 注意情報が出るのは我慢しなければならないが。 データー入力規則ーリストー範囲F1:F3 「エラーメッセージ」タブ 情報 (そしてエラーメッセージボックスは空白)

merlionXX
質問者

補足

リストがA、B、Cと設定しても、Dが、セルに!入れられるようにしたいのではありません。 1.何も選択しない段階では空白 2.リストからA、B、Cのどれかを選択。 3.やはり選択止めたという場合に空白を再度選べる というようにしたいのです。 3の段階でセルをクリアすればいいことなのですが、それがわからない使用者が多いので「空白」も選択肢のひとつに含めたいのです。 現在、別シートに空白行を先頭にしたリストを作り、名前を定義して参照させてますが、選択肢は少ないけど異なったリストがたくさんあるので、一々名前を定義するのが正直面倒なんです。 だからリストを直接入力したいのです。 御理解いただけたでしょうか。

  • sytkn
  • ベストアンサー率43% (54/125)
回答No.4

空白の状態のセルに入力規則をリストで作り選択するのでしょう? > リストの最初の一行目に空白を設定したいのです。 空白のセルに空白を選択させる意味があるのでしょうか? 選択がない=空白なのだから、三択の状態になるのでは? ちなみに、全角スペースを入れて四択にしても、実際には全角スペースが入力されている状態になるので、空白に見えてもその上に入力をしようとすると規則違反でエラーが出ます。

merlionXX
質問者

補足

有難うございます。 文字を入力させたいのではなく、どれも選択されていない状態としての空白を「選択」出来るようにしたのです。

  • izmlz
  • ベストアンサー率55% (67/120)
回答No.3

入力規則の元の値に、選択肢を直接列挙するのではなく、選択肢を入力したセル範囲を入れるのはいかがでしょう?それだと「何も入力しない」を選択可能です。 同じシート上に選択肢のリストを表示させたくない、とのことでしたら、他のシートに選択肢のリストを入力して、その選択肢のリストに名前をつけ、その名前を入力規則の元の値に指定すれば良いと思います。その選択肢のリストが入力されたシートを非表示にすることも検討されればよいと思います。

参考URL:
http://www2.odn.ne.jp/excel/waza/validation.html#SEC2
merlionXX
質問者

お礼

有難うございます。 セル範囲で指定すれば大丈夫だということは存じており、質問にもそう書いたと思います。 今回は理由があって入力規則の元の値に、選択肢を直接列挙する方法を使いたいのです。すみません。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

本当の空白では無いですが Shift+7で ' を設定して ',選択肢1,選択肢2,選択肢3 では駄目でしょうか?

merlionXX
質問者

お礼

なあ~るほど! 選択時にシングルクォーテーションが見えるのが難点ですが、シングルクォーテーションなら関数上、"" と見てくれますね。 有難うございます。

回答No.1

>全角スペースは空白ではありません。 というのがよく理解できないのですが…補足をお願いします。 文字を入力したいのであればエラーメッセージのチェックをはずせばすむんですが・・・

merlionXX
質問者

補足

文字を入力させたいのではなく、どれも選択されていない状態としての空白を「選択」出来るようにしたのです。 (ほんとはセルをクリアすれば済むことなんですが、そのよなリクエストがありまして・・・・)

関連するQ&A

  • エクセル入力規則の空白について

    エクセル2007を使用しています。 エクセルの入力規則で下記の条件を満たす方法を教えて下さい。  1.選択できる言葉の中に空白(全角スペースは不可)が存在する  2.セルの範囲指定ではない方法 自分では、リストでカンマを二個連続でやってみましたが駄目でした。 よろしくお願いします。

  • Excelでの入力規則について

    Excel2000を使用しています。 Excelでの入力規則で「リスト」を選択し、範囲指定をしてリストを作成したいと考えているのですが、その範囲の中に空白セルが存在するとリストにもその空白が出てきます。 これを表示させないようにするにはどうしたらよいでしょうか? よろしくお願いします。

  • Excelの入力規則のリストにカンマを表示したい

    Excelの「データの入力規則」でリストにカンマ(,)を表示したいです。 手順としてはメニューの「データ」-「入力規則」を選択し、 表示された画面で「設定」タブを選択し「入力値の種類」で「リスト」を 選択します。 その後、「元の値」でカンマ(,)が含まれたシートのセル範囲を選択すれば 表示されますが、直に値を「元の値」に指定する場合にカンマ(,)をエスケープする方法が分かりません。 お分かりの方は教えてください。

  • 入力規則-リスト選択で,リストの頭の行から表示させたいのに。

    1シート目に入力規則-リスト選択したいセルがあり, 2シート目にあるデータから選択するため,名前-定義で「行」に名前をつけて,範囲設定した。 ↓ 入力規則設定では空白を無視にチェックしてみたのですが・・・ 1シート目でプルダウン?(▼)で選択しようとすると,窓には2シート目リストの入力のない行(空欄)がデフォルトとして表示されてしまいます。 ↓ リストの先頭行から表示されるようにするにはどうしたら良いでしょうか?そのような技がありましたら教えて下さい。 (「行」を範囲選択するのがマズイでしょうか?行が増えても1シート目の範囲を設定し直さなくて良いかな,と思って行を範囲設定してみました。) ちなみに,Offset関数(?)は全くわかりません。

  • Excel 入力規則_リスト 連続しないデータの空白行削除

    お世話になります。 Excel2003を使用しています。 あるブックのSheet1に"リストデータ"と名前のついている範囲があります。 Sheet2の任意のセルで、リストデータを基に入力規則から リスト選択をさせています。 このリストデータにはユーザが任意でデータを入力するのですが 必ずしも連続するデータにはならず データの途中に空白セルが生じたり データの最下行が人によって異なってしまいます。 そこで、不要な空白を削除したいのですが VBAを使わない方法で何かいいアイディアはありますでしょうか。 皆様のお知恵を拝借いたしたく、よろしくお願いいたします。

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

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

  • Excel2010の入力規則:リスト、@

    Excel2010の入力規則のリストで、最初の文字に「@」を入力し、セルから選択してもなぜか、空白になってしまいます。 「@」を表示するにはどうしたらいいでしょうか? 回答よろしくお願いします。

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

    エクセル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"人"を設定しておけばクリアできました。 でも、たかだか数件のリストを指定するのにいちいちリストをワークシート上に作成し、そこにもユーザー定義の書式を設定しなければならないのは腑に落ちません。

  • エクセル2000の入力規則で困っています。

    エクセル2000のセルの入力規則で、条件の設定を 入力値の種類が「リスト」、 元の値が、カンマ区切りで  2,3,4,5  としております。 さらに、セルには書式設定で、表示形式が「ユーザー定義」で、0"年" にしてあります。 これで、セルを選択すると、ドロップダウンから 2~5 のいずれかしか選択できなくなり、セルには○年と正しく表示されますが、手入力で2~5の整数を入れようとすると「リストから選択してください」とはじかれてしまいます。 しかし、セルの表示形式が「ユーザー定義」でなければ、手入力でも2~5の整数値を問題なく入れることができます。 セルの書式は、あくまで見かけだけのことで、セルの中は同じ数値データのはずなのにどうしてこうなるのでしょうか? セルに○年を表示させながら、2~5の整数値の手入力を可能にする方法はないでしょうか?

  • Excelの入力規則で2列表示したい

    入力規則を使って、社員コードを入力する際に 10001 山田太郎 10002 鈴木花子 10003 佐藤大介 のように、ドロップダウンリストに「社員コード」「社員名」と2列表示させたいのです。 そして、例えば山田太郎を選択すると、セルには「10001」だけが入力されるようにしたいのですが・・・ (Accessのルックアップフィールドみたいな感じ) [入力規則]-[リスト]で、社員コード表を選択しても、単一の列または行でなければいけませんとエラーが出ます。 かといって[入力規則]-[リスト]で範囲指定をカンマ区切りで 10001 山田太郎,10002 鈴木花子,・・・と入力しても、エラーは出ませんがドロップダウンリストから選択したときに社員コード表と社員名が一緒にセルに入力されてしまいます。 なにか良い方法はありませんでしょうか? よろしくお願いいたします。

専門家に質問してみよう