タイトルのままなんですけど、
例えばA1のセルで大項目を入力する(できればプルダウン)とB1でそれに対応した中項目が選択できるようになる(同様にできればプルダウン)、ということは可能でしょうか?

入力規則でプルダウンリストから選択できるようにする方法は知っているんですが、A1に対応する内容だけを表示させる、ということがよくわからないんです。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

簡単のためA1で選択したい項目が「list1」「list2」、


「list1」に対応する内容が「A」「B」、
「list2」に対応する内容が「C」「D」とします。
数が増えても要領は同じ。
別シート(同じシートでもいいけど)の連続するセルに「list1」「list2」と入力
この範囲に名前(仮に「list0」とします)を付けます。(Ctrl+F3キーで名前が付けられます)
同様に「A」「B」に「list1」、「C」「D」に「list2」と名付けましょう。
で、A1の入力規則でリスト→元の値にカーソルがある状態でF3キー→「list0」を選択しOK。
B1の入力規則でリスト→元の値に=INDIRECT(A1)と入力しOK。

でいかがでしょう。
    • good
    • 0
この回答へのお礼

どうも有り難うございます。
まさに望んでいたとおりの回答でした。

お礼日時:2001/11/02 16:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qエクセル 列の項目をプルダウン選択して行の項目を自動表示

エクセルで列の項目をプルダウン選択して行の項目を自動表示するには
どう設定したらよいかわかりません。
・列の項目は20種類くらいあります。(A列項目)
・上記選択の際の行の項目は無しのものから10種類の項目ほどがあります。
・行項目の下の空白内には個別数字や文字を手入力します。
入力規則の設定のところだけで出来るのか、マクロを使わなければいけないのかわかりません。
マクロであればボタンクリックで表示させたいです。

Aベストアンサー

No.1です。

投稿後気になったのですが・・・
もしかしてA列の項目によってB列以降は自動で表示したい!という質問なのでしょうか?
そうであればA列だけを前回の方法で入力規則のリスト設定にしてください。
(Sheet2の表は前回のまま使用します。)
そしてSheet1のB列以降の入力規則はクリア。
Sheet2の名前定義は「名前の管理」からすべて削除してください。
(「名前の管理をクリック → 一番上の名前定義をクリック → Shiftキーを押しながら一番下の名前定義をクリック → 削除)

そしてSheet1のB1セルに
=IFERROR(HLOOKUP($A1,Sheet2!$1:$5,COLUMN(),0)&"","")

という数式を入れ B1~E2を範囲指定 → E2セルのフィルハンドルで下へ2行ずつコピー!

※ 数式内の「5」はSheet2のデータがある最大行にしてください。
もちろん20とか100などのようにデータより多い行でも構いません。

これでA列が変更するたびにB列以降の項目が表示されるはずです。m(_ _)m

QExcel:既入力項目をドロップダウンリストに(入力規則?)

Excelで、
ある列に簡単な文字列を入力していっているのですが、
それまでに同じ列で入力したのと同じ内容を入力する際に、
ドロップダウンリストを使いたいと思っております。
入力リストとも思うのですが、内容が固定でなく、
新たな内容を入力したら、それもリストで
使えるようにしたいです。

(例)
AAA
(空白)
(空白)
BBB
(空白)
CCC
(空白)
    ←ここを入力するときに、
     AAA・BBB・CCCから選択またはDDDを手入力
    ←上でDDDを入力していたらAAA・BBB・CCC・DDDから選択
     そうでなければAAA・BBB・CCCから選択
以下ずっとこんな感じ(新項目を入力したら以後それもリストに入ってほしい)

このような場合、どのように設定したらよいのか、
お分かりの方がいらっしゃいましたらご回答ください。

Aベストアンサー

こんにちは。

>自動的にリスト形式になってしまい、新たな(=リストにない)項目入力ができなくなってしまいます。

これは、私のミスです。すみません。それと、細かい点も見直してみました。また、ダブルクリックではなく、右クリックや、Alt + ↑に置き換えることも可能です。

以下のようにすれば、リストにないものでも加えられるようになります。入力規則のドロップダウンが邪魔になるときに、消すプログラムも付けておきます。シートをアクティブにすると消えます。

それと、今は、文字のリストを使っていますので、たぶん、そんなに多く入らないかもしれません。もし、そういう状況になったら、シートのどこかにリストを作ってあげれば、1000個ぐらいは可能になると思います。ただ、1000個もあったら、探すのが面倒だと思いますが。


'-------------------------------------------

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim tRng As Range
  Cancel = True
  ActiveCell.EntireColumn.Validation.Delete
  If WorksheetFunction.CountA(Target.EntireColumn) = 0 Then Exit Sub
  Set tRng = Range(Cells(1, Target.Column), Cells(Rows.Count, Target.Column).End(xlUp))
  With Target.Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
     Operator:=xlBetween, Formula1:=UniqLists(tRng)
    .IgnoreBlank = True
    .InCellDropdown = True
    .ShowError = False
  End With
End Sub

Function UniqLists(rng As Range) As String
'リスト化する関数プロシージャ
  Dim i As Long
  Dim ret As Variant
  Dim buf As String
  With rng.Columns(1)
    For i = 1 To .Rows.Count
      If .Cells(i, 1).Value <> "" Then
        ret = Application.Match(.Cells(i, 1).Value, .Cells, 0)
        If IsNumeric(ret) And ret = i Then
          buf = buf & "," & .Cells(i, 1).Value
        End If
      End If
    Next i
  End With
  UniqLists = Mid(buf, 2)
End Function

'-------------------------------------------
Private Sub Worksheet_Activate()
'シートをアクティブしたときに、入力規則のリストを削除する
Dim rng As Range
 On Error Resume Next
 Set rng = ActiveSheet.Cells.SpecialCells(xlCellTypeAllValidation)
 rng.Validation.Delete
 Set rng = Nothing
 On Error GoTo 0
End Sub

こんにちは。

>自動的にリスト形式になってしまい、新たな(=リストにない)項目入力ができなくなってしまいます。

これは、私のミスです。すみません。それと、細かい点も見直してみました。また、ダブルクリックではなく、右クリックや、Alt + ↑に置き換えることも可能です。

以下のようにすれば、リストにないものでも加えられるようになります。入力規則のドロップダウンが邪魔になるときに、消すプログラムも付けておきます。シートをアクティブにすると消えます。

それと、今は、文字のリスト...続きを読む

QA1に数字の1を入力するとB1の値がA1に表示、A2に数字の2を入力するとB2の値がA2に表示

エクセル初心者です

セルのA1に数字の1を入力するとB1の値がA1に表示、A2に数字の2を入力するとB2の値がA2に表示されるようなものを作りたいのですが・・・
どなたかご教授お願いします

例えば、A1に1を入れるとB1の値"北海道"がA1に表示され、A2に2を入れるとB2の値"青森"がA2に表示といった感じでです

宜しくお願いいたします

Aベストアンサー

No3,5,6です。
補足要求をしましたが時間がないので、No6での以下の理解、

B4がROOT,C4が♭9,D4が9,E4がm3,F4がM3~M4がM7
置き換え対象はB6:W11の範囲

ということでいいのなら以下で出来ます。

1.シートのタブを右クリックし、コードの表示を選択
2.出てきたVBエディター(白い画面)に下記をコピペ

Private Sub Worksheet_Change(ByVal Target As Range)
Dim x
If Intersect(Target, Range("B6:W11")) Is Nothing Then Exit Sub
x = Target.Value
Application.EnableEvents = False
Target.Value = Range("A4").Offset(0, x)
Application.EnableEvents = True
End Sub

3.AltキーとF11キーを一緒に押してワークシートへもどります。

Qexcelで左のセル項目にあわせた複数選択可能なプルダウンボックスを表

excelで左のセル項目にあわせた複数選択可能なプルダウンボックスを表示させたい。

添付のようなイメージのものを作成したいと考えています。
B列はプルダウンで選べる様になっており、B列の内容により、C列の選択肢を変更
したいのです。
ちなみに、今C列はリストボックスになっていますが、チェックボックスなど、
リストから複数選べるようになれば問題ありません。

このようなものは、VBAなどを組まないとできないのでしょうか。

よろしくお願いいたします。

Aベストアンサー

値を利用することで考えていました。
リストボックスは選んだ表示だけで良くて、
あとはB列のリストボックスの変更に合わせて
リストボックスの項目が変われば良いということですね。

すると、一例としてはこんな感じでしょうか?
セルB2かセルB3の値変更があった場合、
セルの内容(例では魚屋、果物屋、八百屋)に応じて、
リストボックスの内容を変更するマクロです。
設定は下記の通りとしています。
・セルB2、B3はセルE7~E9のリスト選択
・セルB2またはB3の内容に合わせてセルE14~セルG16の
 データをリストに表示する
・2行目にあるリストボックスを“ListBox1”
 3行目にあるリストボックスを“ListBox2”としています。
・リストボックスのListFillRangeは空白にしておく。

以下をVBAで操作を行うシートに貼りつけてみてください。
Excel2002ですが、セルB2を変更すると、リストボックス1の表示内容が
セルB3を変更すると、リストボックス2の表示内容が変わります。
たた、表示内容が変わったときは何も選択していない状態になります。
シートの値を参照していますが、VBA内での記載でもできると思います。

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MyRng As Range, isect As Range, i As Long

'セル変更箇所の確認
Set isect = Application.Intersect(Target, Range("B2:B3"))
If isect Is Nothing Then
Exit Sub
End If
'リストボックスの範囲設定
Select Case Target.Value
Case "魚屋"
Set MyRng = ActiveSheet.Range("F14:F16")
Case "八百屋"
Set MyRng = ActiveSheet.Range("E14:E16")
Case "果物屋"
Set MyRng = ActiveSheet.Range("G14:G16")
End Select
'リストボックスの設定
If isect.Address = Range("B2").Address Then
ListBox1.List = MyRng.Value
ElseIf isect.Address = Range("B3").Address Then
ListBox2.List = MyRng.Value
End If
End Sub

値を利用することで考えていました。
リストボックスは選んだ表示だけで良くて、
あとはB列のリストボックスの変更に合わせて
リストボックスの項目が変われば良いということですね。

すると、一例としてはこんな感じでしょうか?
セルB2かセルB3の値変更があった場合、
セルの内容(例では魚屋、果物屋、八百屋)に応じて、
リストボックスの内容を変更するマクロです。
設定は下記の通りとしています。
・セルB2、B3はセルE7~E9のリスト選択
・セルB2またはB3の内容に合わせてセルE14~セルG16の
...続きを読む

Qエクセルでプルダウンから項目が未選択だった場合にエラーを表示させる

EXCEL2016を使用しています。

プルダウンから何も項目を選択していない場合に、エラーを表示させたいのですが、上手くいきません。
画像のようにA列はプルダウンから選択必須で、入力忘れなどで未選択である場合にエラーを表示させ、入力を促すようなメッセージを表示させたいと思っています。

VBAに関しては全くわからないため、関数やツールを使用してどうにかしたいのですが方法はあるでしょうか?
よろしくお願い致します。

Aベストアンサー

一案です。条件付き書式で色を付けます。
A~C列を選択
条件付き書式の設定
数式 =AND(COUNTA($A1:$C1)<3,COUNTA($A1:$C1)>0)
塗りつぶしの色を設定
OK

同じ行に空白が 空白があれば塗りつぶしです。


このカテゴリの人気Q&Aランキング

おすすめ情報