• ベストアンサー

EXCEL 該当セルの入力値によってリストを変更

MICROSOFT OFFICE 2003を使っています。 セルAに"りんご"と入力されたら、 セルBフォーカス時に"青森,岩手,長野"というリストを作成します。 セルAに"みかん"と入力されたら、 セルBフォーカス時に"愛媛,香川,高知"というリストを作成します。 フォーカス時に該当セルの値によって、作成するリストを変えるということが可能でしょうか? エクセルでのVBAは初心者です。 できれば簡単な方法がありがたいのですが、 どなたがご存知の方がいらっしゃいましたら、 ご教授お願いいたします。

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

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

ドロップダウンリスト(入力規則)でいいなら 別シートに りんご,青森,岩手,長野 みかん,愛媛,香川,高知 という表を作成して「挿入」「名前」「作成」「左」だけにチェックしてOK セルA1に「データ」「入力規則」で入力値の種類をリストにして 元の値に「りんご,みかん」と入力してOK セルB1に「データ」「入力規則」で入力値の種類をリストにして 元の値に「=INDIRECT($A1)」と入力してOK これでA1の内容を選択してからB1の▼を押すと りんごなら、青森,岩手,長野 みかんなら、愛媛,香川,高知 が表示選択できます。

saoring
質問者

お礼

ありがとうございます!「名前」ってすごい!! 今まで使ったことのなかった技ですが、 これからどんどん活用しようと思います。 今回のも教えていただいた方法で簡単にできるようなので、使わせていただきます!!

その他の回答 (1)

  • ipsum11
  • ベストアンサー率21% (55/251)
回答No.1

簡単に、と言うことで、マクロの記録を使用して作ってみました。間違っていたら必要に応じて修正してみてください。 ・A1に「りんご」か「みかん」を入力、B1に入力規則を設定しています。 Worksheet_SelectionChangeイベントに、下記のコードを加えてみてください。 If Target = Range("B1") Then If Range("A1").Text <> "りんご" And Range("A1").Text <> "みかん" Then Exit Sub With Range("B1").Validation .Delete If Range("A1").Text = "りんご" Then .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="青森,岩手,長野" ElseIf Range("A1").Text = "みかん" Then .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="愛媛,香川,高知" End If .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .IMEMode = xlIMEModeNoControl .ShowInput = True .ShowError = True End With End If

saoring
質問者

お礼

ご回答ありがとうございます。 私も最初マクロの記録を使用してVBA書いてたんですけど、うまく改造できなかったんです。 イベントの記述など、VBAで書くことがあった際、参考にさせていただきます。

関連するQ&A

  • 入力規則のリストの使い方

    エクセル2003を使っています。 入力規則のリストをこのように使える方法はないでしょうか? A1セルに東北、関東、近畿、中国、四国、九州 と選択リストを作る A2セルは、A1で東北を選べば青森、秋田、岩手。四国を選べば高知、愛媛、香川、徳島 と選択できるようにする。 どうでしょうか?何かいい方法があればご教授ください。 現在選択リストを作成したところ200項目ほどあって選択するのが大変になるので困っています。どうぞ宜しくお願いします。

  • エクセルで「セルを結合して中央揃え」を大量にしたい

    質問致します。 エクセル2007を使用しています。 例えば A列      B列 りんご     青森 りんご     長野 りんご     福島 みかん     愛媛 みかん     和歌山 上記のように入っていて、 A列のりんごの入力されている3つのセルを選択し「セルを結合して中央揃え」をしたいのですが それをひとつずつ作業するのではなく、みかん、その下にも同じ言葉が複数あってまた違う言葉が・・・ というデータなのですがこれを簡単にセルを結合する方法はないでしょうか。 B列はそのまま生かして使用します。 イメージは以下のようになります。 A列        B列           青森 りんご      長野           福島 みかん      愛媛           和歌山 よろしくお願いします。

  • Excelの入力規則について

    Excelの入力規則について教えてください。 A1:A20に入力規則を設定します。 入力値の種類にリストを選び、元の位置で、北海道、青森、岩手、山形・・・と都道府県名を20件ほど入力し、設定が完了したとします。 A1セルでドロップダウンして、岩手を選び、次のA2のセルでドロップダウンした時、岩手をリストから消しておきたいのです。 つまり、リストから選んだものは、次のセルでドロップダウンした時、常に消えておくことができるように設定したいのですが、良い方法はありませんか?

  • エクセルにて複数の条件でセルをカウントしたいのですが方法が分かりません

    こんにちは。 他の方の質問と回答を見てやってみたのですが、 上手くいかなかったので質問させて頂きます。 <表>    A列    B列 1 条件1   条件2 2 チームA  りんご傷あり(青森) 3 チームA  みかん(愛媛) 4 チームA  りんご(岩手) 5 チームA  マンゴー(沖縄) 6 チームA  りんご(青森) 7 チームB  りんご(岩手) 8 チームB  みかん(愛媛) 9 チームB  マンゴー(沖縄) 上記の表から、 (1)りんごのセル個数     (この場合「4」) (2)Aチームのりんごセル個数 (この場合「3」) を求めたいと思っています。 (1)りんごのセル個数は =COUNTIF($B$2:$B$9,"りんご*") という計算式で「4」という答えが出ました。 (2)Aチームのりんごセル個数「3」を出そうとして =SUMPRODUCT((A2:A9="チームA")*(B2:B9="りんご*")) と入力したのですが、「*」が入っているためか、 3という数値が出てきません。 どなたか、関数を教えていただけませんか? 実際の表では、 (1)150行まで入力されています。 (2)条件1は「チームA」か「チームB」のみです。 (3)入力されている文字列は、「りんご」「みかん」という「左から3文字」という法則性はありません。 マクロは技術的に使えませんので、関数で対応したいと思っています。 また、別シートに集計表を一覧で作りたいので、フィルタ機能ではなく、関数で対応したいと思います。 以上、長々と申し訳ございません。 お分かりの方、是非回答をお願い致します。

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

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

  • EXCELでリストを作成して、そのリストを選択した値を複数の入力するよ

    EXCELでリストを作成して、そのリストを選択した値を複数の入力するようにしたいが、どうしたらいいでしょうか? 例えばA1にリストを作成、リスト中”A,B,C,D"が選択できるようにする。 ”A"を選択した場合B1のセルに”あ”が表示、同時にC1のセルに”ア”が表示。 ”B"を選択した場合B2のセルに”い”が表示、同時にC2のセルに”イ”が表示....

  • エクセル:入力規則のリストとセルの関数は同居できますか?

    エクセル:入力規則のリストとセルの関数は同居できますか? 普通にやるとセルの計算式はリストを選んだ時点でリストの文字に上書きされてしまうので困っています。 (例)   A              B         C 1 2008/08/02        =TODAY 2 ▽リスト           OK 3                NG 4 A2のセルにに =IF(A1>B1,"")と書いたとします。 で、さらにA2のセルに入力規則>リストで範囲B2:B4と設定したとします。 要は、A1に記入した日付が未来の場合は、 A2でリストで選択した文字を空白にしたいのです。 が、どうしてもリストの文字に上書きされてしまうので困っています。 やはり、関数を書いてあるセルに文字を書くと上書きされるのと同じですかね? なるべくVBA以外でなんとかしたいのですが、、、。(でもVBAでも可です)

  • エクセルで、セル入力をリスト選択の方法

    Excel で帳票を作成する必要にせまられています。 指定のセルをあらかじめ用意された文字列を選択できるようにしたいです。 調べたら(エクセルの[データ入力]→[入力の規則]→[設定/入力の条件]をリストにすれば良いとのことでした。 今回、印刷する紙のサイズを選択させたいので、「元の値」に 『'A4, 'B5, 'B4, 'A3』を設定しました。 確かに、エクセルのセル上は、▼が表示されますが、 その中のアイテムは、『'A4, 'B5, 'B4, 'A3』が表示され、選択文字の 前に(’)アポストルフィが表示され不自然です。 (選択後のアイテムは、’が表示されないのですが。。。。) ▼で選択時に(’)が表示したくないのですが、良い方法はないですか? 細かなことですが、気になって仕方がありません。 よろしくお願いします。 □Excel のバージョンは、古い2000を使っています。

  • エクセル☆関連項目のリストアップ

    あるセルに文字列を入力(選択)すると決まったセルに 関連項目がリストアップされその中から自由に選択できるようにしたいのですがたとえば A1にA商店と入力すると B1に「サンマ・アジ・マグロ・・・」などのリストが現れる。 A1にB商店と入力すると B1に「みかん・りんご・ぶどう・・・」などのリストが出現する等です

  • エクセルでのリストの抽出

    セルG1:H10にリストデータがあります G列に都道府県名 H列に人口 が入力されています A1に"北海道"と入力した場合、B1に北海道の"人口"、A2に"青森"と入力した場合、B2に青森の"人口" そして、 A1に"東京"と入力した場合、B1に東京の"人口" というように、B列には、A列で入力した都道府県の人口をリストデータより選択して表示する、という事をしたいのですが、 どのような関数を使用すればよいのでしょうか エクセル標準の関数で出来ますでしょうか よろしく御願いします

専門家に質問してみよう