[[20130417213938]] 『ドロップダウン3連続』(xxxx) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ドロップダウン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)


稼働条件としてはシートのA1を最初に1度ダブルクリック。
 注)ご自分でシートのイベントを勉強してください。

私からのお願いです!!!
 もしも他のサイトにも類似の質問をされていて、そちらがマルチ禁止なら
 放置せずに回答頂いている方にお礼を言った上で『終了』させて下さい。
 注)私の誤解ならご容赦願います。<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.