[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『コンボボックス検索』(ゆかり)エクセル2010 ウインドウズ7
マクロ初心者です
正直全然できていません
[[20131105121455]] の質疑を利用しようと思ったのですが
上手に出来ない為
教えてください
この質問の場合
シートsss対象に
コンボボックス6個の検索ですがsheet6でコンボボックス3個の場合の
マクロを教えていただけませんか
よろしくお願いします
ComboBox3が選択された時点で何がしたいのかわからないので、 とりあえず
Option Explicit
Private dic As Object
Private Sub UserForm_Initialize()
Dim a, i As Long, ii As Long
Set dic = CreateObject("Scripting.Dictionary")
dic.CompareMode = 1
a = Sheets("sheet6").Cells(1).CurrentRegion.Resize(, 3).Value
For i = 2 To UBound(a, 1)
For ii = 1 To UBound(a, 2)
a(i, ii) = CStr(a(i, ii))
Next
If Not dic.exists(a(i, 1)) Then
Set dic(a(i, 1)) = CreateObject("Scripting.Dictionary")
dic(a(i, 1)).CompareMode = 1
End If
If Not dic(a(i, 1)).exists(a(i, 2)) Then
Set dic(a(i, 1))(a(i, 2)) = CreateObject("Scripting.Dictionary")
dic(a(i, 1))(a(i, 2)).CompareMode = 1
End If
If Not dic(a(i, 1))(a(i, 2)).exists(a(i, 3)) Then
Set dic(a(i, 1))(a(i, 2))(a(i, 3)) = _
CreateObject("System.Collections.ArrayList")
End If
dic(a(i, 1))(a(i, 2))(a(i, 3)).Add i
Next
Me.ComboBox1.List = dic.keys
End Sub
Private Sub ComboBox1_Change()
ClearComb 2, 3
With Me
If .ComboBox1.ListIndex <> -1 Then
.ComboBox2.List = dic(.ComboBox1.Value).keys
End If
End With
End Sub
Private Sub ComboBox2_Change()
ClearComb 3, 3
With Me
If .ComboBox2.ListIndex <> -1 Then
.ComboBox3.List = dic(.ComboBox1.Value)(.ComboBox2.Value).keys
End If
End With
End Sub
Private Sub ClearComb(myStart, myEnd)
Dim i As Long
For i = myStart To myEnd
Me.Controls("ComboBox" & i).Clear
Next
End Sub
(seiya) 2013/11/23(土) 17:52
Private Sub ComboBox3_Change()
Dim i As Long
If Me.ComboBox3.ListIndex <> -1 Then
With Sheets("Sheet6").Cells(1).CurrentRegion
.Parent.AutoFilterMode = False
For i = 1 To 3
.AutoFilter i, Me.Controls("ComboBox" & i).Value
Next
End With
End If
End Sub
かな?(未検証) (seiya) 2013/11/23(土) 19:06
本当にありがとうございました
(ゆかり) 2013/11/23(土) 19:13
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.