出産前後の痔にはご注意!

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

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

A 回答 (4件)

普通にドロップダウンリストを使用するのでしたら、


マクロを使わずとも関数だけで処理できそうですね。
#ぼく自身、マクロって苦手なもんで、関数でまかないます(汗)。

使用する関数は、IF文だけです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/01/14 17:05

(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が消えます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/01/14 17:13

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



参考URL:http://www2.odn.ne.jp/excel/waza/validation.html …
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/01/14 17:13

こんにちは、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
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/01/14 17:04

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


人気Q&Aランキング