[[20170528223055]] 『既存マクロ変更のやり方』(らら) ページの最後に飛ぶ

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

 

『既存マクロ変更のやり方』(らら)

大変申し訳ないのですが
以前会社にいた人が
作って頂いたものですが
仕様変更で 改造を依頼したいと思って
相談させていただきます

下記のマクロはB列 コンボボックス1 C列コンボボックス2で
フィルターかけてくれてますが
これをA列 B列 対応に改造して頂ける方
いらっしゃいますか
お願いいたします

Private Sub CommandButton1_Click()

  Dim a, i As Long, ii As Long
     Set dic = CreateObject("Scripting.Dictionary")
     dic.CompareMode = 1
    a = Sheets("aaa").Cells(1).CurrentRegion.Offset(, 1).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

     Next
     Me.ComboBox1.List = dic.Keys

       Application.ScreenUpdating = True
       Worksheets("aaa").Select

End Sub

  Private Sub ComboBox1_Click()
   Dim W As Worksheet
    For Each W In Worksheets
        If W.AutoFilterMode Then W.AutoFilterMode = False
    Next W
    With Me
        .ComboBox2.Clear

        If .ComboBox1.ListIndex > -1 Then .ComboBox2.List = dic(.ComboBox1.Value).Keys
    End With
End Sub

 Private Sub ComboBox2_Change()
 On Error Resume Next
    Dim i As Long
     If Me.ComboBox2.ListIndex <> -1 Then
         With Sheets("aaa").Cells(1).CurrentRegion
             .Parent.AutoFilterMode = False
             For i = 1 To 2
                 .AutoFilter i + 1, Me.Controls("ComboBox" & i).Value
             Next
         End With
         End If

      Dim frng As Range
Set frng = Worksheets("aaa").AutoFilter.Range
Set frng = frng.Offset(1).Resize(frng.Rows.Count - 1)
With frng.Columns("B:B")

   End With

 End Sub

< 使用 Excel:Excel2013、使用 OS:Windows10 >


とりあえず、2箇所修正してみましょうか

 >a = Sheets("aaa").Cells(1).CurrentRegion.Offset(, 1).Resize(, 3).Value
       ↓
  a = Sheets("aaa").Cells(1).CurrentRegion.Resize(, 3).Value

 >.AutoFilter i + 1, Me.Controls("ComboBox" & i).Value
       ↓
 .AutoFilter i, Me.Controls("ComboBox" & i).Value

(マナ) 2017/05/28(日) 22:54


マナ様
有難う御座います

本当に助かりました
(らら) 2017/05/28(日) 23:35


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.