• ベストアンサー

エクセルでリストの表示

皆さんこんにちは。 エクセル2002で、セルA1にリストで1と2を選べるようにしたとします。このとき1を選んだら、セルA2にはリストで「あ、い、う」が選べ、2を選んだらセルA2にはリストで「か、き、く」が選べるようには出来ませんか? VBAを使った物でもかまいませんが、なるべくシンプルに考えたいです。 もし、出来ないのであれば、どんなアプリを使えば簡単に作れるのでしょうか?VBなら少しは使えますが、今後はアクセスなんかも使えるようにしたいと思っていますので、エクセルでは不可能ならそちらで使えるかでも教えてください。 宜しく御願いします。

  • lpine
  • お礼率45% (59/131)

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

  • ベストアンサー
  • austin32
  • ベストアンサー率31% (11/35)
回答No.2

普通にドロップダウンリストを使用するのでしたら、 マクロを使わずとも関数だけで処理できそうですね。 #ぼく自身、マクロって苦手なもんで、関数でまかないます(汗)。 使用する関数は、IF文だけです。

lpine
質問者

お礼

シンプルで分かりやすかったです。 ありがとう御座いました。

その他の回答 (3)

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

(1)コントロールツールボックスのリストボックスをワークシートSheet1に2つ貼りつけます。適当な大きさにします。 (2)ワークシートのSheet1のE1:I3に(じつはどこでも良いが下記コードが多少変る。別シートでも可能。) 大阪府 大阪市 堺市 99 京都県 京都市 長岡京市 亀岡市 99 奈良県 奈良市 生駒市 99 99は終りを示すために入れた符牒です。 (3)ListBox1のプロパテイを開き、ListFillRangeに E1:E3(大阪府、京都府、奈良県のあるセル)を入れる。 ListBox1に大阪府、京都府、奈良県が出る用意が出来たわけです。(プログラムででも出来ます。) (4)それぞれのリストボックスをダブルクリックして出てくるVBE画面に Private Sub ListBox1_Click() Sub End Private Sub ListBox2_Click() Sub End の中間に、下記コードの中身部分をコピーし貼りつけ下記のようにする。 Private Sub ListBox1_Click() n = ListBox1.ListIndex ListBox2.Visible = True ListBox2.Clear For i = 6 To 10 'F列より右 If Cells(n + 1, i) = 99 Then Exit For ListBox2.AddItem Cells(n + 1, i) Next i End Sub Private Sub ListBox2_Click() ActiveCell = ListBox2.List(ListBox2.ListIndex) ListBox2.Visible = False End Sub VBE画面で、デザインモードを解除して、ワークシートに戻る。 (5)利用方法は データをセットしたいセル(例えばA3)を一旦クリックしておいて、例えばListBox1の奈良県をクリックすると、ListBox2が現れて、奈良市、生駒市が出てくるから、例えば生駒市をクリックすると、A3に生駒市がセットされ、ListBox2が消えます。

lpine
質問者

お礼

回答ありがとう御座います。 参考になりました。

回答No.3

こちらはどうでしょうか。

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

お礼

回答ありがとう御座います。 参考になりました。

回答No.1

こんにちは、Takayukiです。 以下は、自分が実際に使用しているマクロです。 ほとんどマクロ記録のままといえるようなものですが、参考になれば幸いです。 なお、複数のリスト範囲に名前を付けて入力されたセルの内容を読み出し、切り替えています。 動作はかなり高速ですので違和感はないと思います。 [ syokubamei ]=リスト範囲の名前となります。 ご参考までに・・・ Private Sub Worksheet_Change(ByVal Target As Excel.Range) ' '工程名設定 '変数宣言 Dim INP_NO, INP_LI As Integer Dim syokubamei As String '入力位置 INP_NO = Target.Row '入力された行 INP_LI = Target.Column '入力された列 M_TOP = 5 '入力範囲TOP M_END = 104 '入力範囲END '処理範囲 If INP_NO < M_TOP Or INP_NO > M_END Then Exit Sub '入力範囲以外は処理しない End If If INP_LI <> 3 Then Exit Sub '入力範囲以外は処理しない End If '変数設定 On Error GoTo END_PRO: syokubamei = Target.Value '入力内容 '工程名設定 Cells(INP_NO, INP_LI + 1).Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=" + syokubamei .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .IMEMode = xlIMEModeNoControl .ShowInput = True .ShowError = True End With END_PRO: End Sub

lpine
質問者

お礼

回答ありがとう御座います。 やっぱりマクロを使用すると複雑ですね。 参考になりました。

関連するQ&A

  • EXCEL リストボックスについて

    現在、エクセルであることをしようとしているのですが、どうやってやったらいいのかわからないので、ぜひ教えてください。 それと出来るかどうかも教えてください。 内容といたしましては、エクセルのシートの中にあるセルを選んだときにリストボックスを表示して、そのリストボックスにある内容を選んで確定するとその選んだ文字が入るようにしているのですが、入力規則からのリストボックスだとシート自体を小さくすると中の文字が見えなくなり、選びづらくなります。 そこで、コンボボックスで同じことをすると、文字のサイズが大きくなるのですが、印刷時に下向きの矢印も一緒に表示されてしまいます。 そこで、別の視点から考えて、セルを選んだ時にリストボックスみたいなユーザフォームをだし、そこで選んだ文字を選んだセルに表示すれば、印刷時に表示もしないし見た目も良くなると思うのですが、出来そうですか? 出来るのであれば、ぜひ教えてください。 出来れば、VBかVBAで出来るのか、教えてください。

  • エクセルVBA データ→入力規制→リストの作り方・・・

    いつも皆様には大変お世話になっております。 またまた、教えて頂きたい事がありますので宜しくお願い致します。 VBAでとあるセルに入力規制のリストを作りたいのですが、    A  B  C  D 1  あ        2  い 3  う 4 5 となっている状況でD1のセルにAの列のリストを作りたいのです。 但し、A4やA5に今後名前が増えていくのです。 その増えたときに、増えた分の名前もD1のセルにリストとして乗せたいのです。宜しくお願い致します。

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

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

  • エクセルのドロップダウンリストを自動で出すには?

    エクセル(2007 OLD STYLE)のドロップダウンリストを設定してますが、セルのところで▼をクリックするのではなく そのセルに来たら自動でリストを表示させるようにしたいのですが、そのためのVBAはどのように するのでしょうか?宜しくお願いします。

  • エクセルのセルの中にLIST

    エクセル2000を使用しております。 エクセルSHEETの範囲をクリックすると、リストが現れ、 その中から、入力する値を選択してクリックすると自動で 入力出来る様な方法ってありますか?  たとえば、表の中のA5~A20の範囲の各セルに「続柄」を 入力するとして、各セルをクリックすると、LISTが現れて、「配偶者」「長男」「長女」「次男」「次女」の中から、一つとクリックすると それが入力されると言った具合です。 VBAが必要なら、簡単なコードも教えていたらけるとありがたいのですが・・。 よろしくお願いします。 以上  

  • Excel、リスト、複数

    こんにちは。 Excel2000でリストから複数の値を選択し、セルに反映させる方法はありますか? 入力規則は1つしか選択できませんよね。 コントロールツールボックスを使えば良いのでしょうか? VBは超初心者のため何とぞ宜しくお願いします。

  • エクセルの入力規則のリストについて

    エクセル2013での入力規則のリストを使った方法について質問です。 例として、 A2には、「部署名」という名前のリストを作成。 A3には、INDIRECT関数を使って、A2で選択したものに応じてリストを切り替えるように。 A4に、VLOOKUP関数を使って、A3で選択したものから、他のデータを参照して売り上げを表示するようにするとします。 機能としてはうまくはたらいているのですが、A2で選択したリストに応じて即座にA3のセルが更新されないのが気になっています。 たとえば A2で営業、A3で田中、とリストで選択した後、A2で総務を選択しても、A3のセルには田中、と表示されたままになってしまいます(リストの▽を押せばリストは正しく選択できます。) できれば、A2で違う部署を選択したら、A3のセルに表示されていた名前は消える、または新しいリストで上書きされるような仕様にしたいと思っています。 また、マクロ、VBAは使用したことがないため、可能な限り使わない方向でお願いします。 文章のみで、拙い説明ですが、ご助言お願いいたします。

  • Excelにてリストから表示した月の日付を表示する

    よろしければExcelについてご教授下さい。 Excelを利用し便利なシフト表を作成するため現在勉強をしております。。 下記に添付してあるような形で、リストから月を選択し、その選択した月の日付を セルに表示していきたいと考えております。 方法としては別のシートを参照するプルダウンリストの作成で実現はできるのでしょうか? それとも、VBAを勉強する必要があるでしょうか? ご教授頂ければ幸いです。 よろしくお願いいたします。

  • Excel VBA 入力規則のリスト化

    Excel VBAにて入力規則でリスト化しようと思っています。 通常セルを範囲指定によってリスト化する場合、 以下のようなコードになると思うのですが、 (セルA1にセルB1~B10の内容がリスト化される) Range("A1").Select With Selection.Validation .Add Type:=xlValidateList, Formula1:="=B1:B10" End With 例えばB1~B3, B6~B10などのような不連続な範囲をリスト化 する方法はありませんでしょうか? 宜しくご教示の程お願い致します。

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

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

専門家に質問してみよう