[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ドロップダウン3連続』(xxxx)
ドロップダウン-ドロップダウン-ドロップダウンなのですが、
ドロップダウン1-ドロップダウン2-ドロップダウン3
A-a-α
A-a-β
A-a-γ
A-a-δ
A-a-ε
A-b-α
A-b-β
A-b-γ
A-b-δ
A-b-ε
B-a-α
B-a-β
B-a-γ
B-a-δ
B-a-ε
B-b-α
B-b-γ
B-b-δ
B-b-ε
C-a-α
C-a-β
C-a-γ
C-a-δ
C-a-ε
C-b-α
C-b-β
C-b-γ
C-b-ε
(A,B,Cは文字列、a,b,α〜εは数字)
これをドロップダウン1,2,3の順で連動させたいです。
名前定義ではうまくいかない(ドロップダウンで重複する)のでうまくいきません
http://www.geocities.jp/chiquilin_site/data/101109_screening3.html
↑この方法が一番有力かと思いますが、1枚のシートで行いたいので、
なにかいい方法はないでしょうか?(excel2003です)
面倒で無ければ [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [1] A-a A-b B-a B-b C-a C-b 項目1 項目2 項目3 [2] β α α α α α B a β [3] γ β β γ β β [4] δ γ γ δ γ γ [5] ε δ δ ε δ ε [6] ε ε ε [7] A2:A5を A_a B2:B6を A_b C2:C6を B_a D2:D5を B_b ・・・・・・ の様に名前定義し、J2の入力規則で 元の値に =INDIRECT($H2&"_"&$I2) の式を入れて 「元の値はエラーと判断されます。続けますか?」と脅されても [OK]で設定するのはどうでしょう?
(HANA)
実際にやってみてうまくいきました。
現在マクロでこれが出来ないか?いう話があるので、
同様のことをマクロで出来ないでしょうか?
よろしくおねがいします。(xxxx)
データ位置は A1:An 。。。。。。。(項目名なし)
入力規則は H1:J1000で良いですか。
(Cod)
データの位置はA,B,Cのの行でお願いします。
入力位置はD1、E1、F1の順で連動するようにお願いできますでしょうか?
(xxxx)
私からのお願いです!!!
もしも他のサイトにも類似の質問をされていて、そちらがマルチ禁止なら
放置せずに回答頂いている方にお礼を言った上で『終了』させて下さい。
注)私の誤解ならご容赦願います。<m(__)m>
''---------------------------------------------/*Data のある シート・モジュールに貼り付け
''---------------------------------------------/*★最初にA1をダブルクリック
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target(1).Address = "$A$1" Then
ToDic
Vlist Range("D1:D1000"), Dic.keys
Cancel = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target(1).Column
Case 4
Vlist Range("E1:E1000"), Dic(Target(1).Value).keys
Case 5
Vlist Range("F1:F1000"), Dic(Target(1).Offset(0, -1).Value)(Target(1).Value).keys
Case Else
End Select
End Sub
''---------------------------------------------/*Module1 など標準モジュールに貼り付け
Public Dic
Sub ToDic() 'Dictionaryに登録
Dim W1, Wx, i
Set Dic = CreateObject("Scripting.Dictionary")
W1 = Range("A1").CurrentRegion.Value
For i = LBound(W1) To UBound(W1)
Wx = Array(W1(i, 1), W1(i, 2), W1(i, 3))
If Not Dic.exists(Wx(0)) Then Set Dic(Wx(0)) = CreateObject("Scripting.Dictionary")
If Not Dic(Wx(0)).exists(Wx(1)) Then Set Dic(Wx(0))(Wx(1)) = CreateObject("Scripting.Dictionary")
Dic(Wx(0))(Wx(1))(Wx(2)) = True
Next
End Sub
Function Vlist(P1, P2) '入力規則の作成
With P1.Validation
.Delete
.Add Type:=xlValidateList, Formula1:=Join(P2, ",")
End With
End Function
(Cod)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.