[[20230419182221]] 『変数を使ったフィルタ検索について』(風の試練) ページの最後に飛ぶ

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

 

『変数を使ったフィルタ検索について』(風の試練)

Excelのマクロ使用して
変数を使ったフィルタ検索について

A列〜DF列までのExcelの表があります

T列やAA列にも既に値が入っていて
選択した行の
T列セルをコピーしてT列で検索
更に
AA列セルをコピーしてAA列で検索

下記の例で言うなら、5行目を選択した状態でボタン(マクロ実行)を押すと
T列の行(T5セル)をコピーしてフィルタでその文字を検索(検索条件はT5セルの文字と等しいで検索)
そこから更にAA列も同様に
AA列の行(AA5セル)をコピーしてフィルタでその文字を検索(検索条件はAA5セルの文字と等しいで検索)

これを行うにはどのようなマクロにすれば良いでしょうか?
プラスαで選択した行に色付ける事は可能でしょうか?

下の式が過去に教えてもらった式と式を活用してみたのですができなくて...
.Row辺りでエラーになってしまって

Sub TEST()
Dim 検索文字T As String
With Selection
Range(Cells(.Row, "T"), Cells(.Row, "T").Offset(.Rows.Count - 1)).Select
End With
With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
.SetText ActiveCell.Value
.PutInClipboard
End With

    ActiveCell.Copy

ActiveSheet.Range("A1").AutoFilter Field:=20, Criteria1:= 検索文字T

End Sub

< 使用 Excel:Microsoft365、使用 OS:Windows11 >


コードだけでなく、レイアウトも提示していただければ助かります。
(フォーキー) 2023/04/19(水) 18:47:46

提示されたものをみてもピンと来てないので外してたらごめんなさいですが何点か

■1
一般的論として「Selection」とか「ActiveCell」に頼らないコードにした方がよいと思います。

■2
>フィルタでその文字を検索
細かい話ですが【検索】と【抽出】は違います。
そして、オートフィルタは【抽出】する機能です。

■3
>これを行うにはどのようなマクロにすれば良いでしょうか?
多分、提示されたコードをどうにかするより1から作った方が早いと思います。

 1.オートフィルタを解除する
 2.オートフィルタを設定する
 3.T列のうち「T5セルの文字」と一致するものを、オートフィルタで【抽出】する
 4.そのまま、AA列のうち「AA5セルの文字」と一致するものを、オートフィルタで【抽出】する
 5.適当な行の最終行を調べて、項目行でなければデータが1件以上抽出されているということだから、着色(塗りつぶし設定)する

というマクロにすればよいでしょう。
いくつかの命令は、【マクロの記録】で調べることができますから、まずはそこからトライしてみてはいかがでしょうか。

■4
なお、おっしゃってることだけであれば、色付けはマクロを使わずとも条件付き書式で可能だと思います。

(もこな2) 2023/04/19(水) 18:53:50


もこな2さん、コメントありがとうございます。

Sub TEST()

    Selection.AutoFilter
    Selection.AutoFilter
    Range("T5").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveSheet.Range("A1").AutoFilter Field:=27, Criteria1:="AAB92"

    Range("AA5").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveSheet.Range("A1").AutoFilter Field:=27, Criteria1:="TA2"
    Rows("10:10").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
End Sub

記録ではこうなるんですが、これだと、表の文字が毎回違うので使えないのですが…
そこで、変数で行う方が良いと思ったのですが

(風の試練) 2023/04/20(木) 15:18:24


フォーキーさん、今回は、T列・AA列で質問しました
別にA列・B列でも問題はありません。

実際に使ってる表がT列・AA列でフィルタしたかったので…
他には別に関数がなども入っていない普通の表になります。
(風の試練) 2023/04/20(木) 15:20:07


コピーする意図がわかりかねますが、
 1つめのキーワード T5セル
 2つめのキーワード AA5セル
 データは7行目以降(項目行は6行目)

だとしたら↓のような感じになるのではないでしょうか。

    Sub TEST_改()
        With ActiveSheet
            .AutoFilterMode = False
            .Range("A6:AA6").AutoFilter

            .AutoFilter.Range.AutoFilter Field:=20, Criteria1:=.Range("T5").Value
            .AutoFilter.Range.AutoFilter Field:=27, Criteria1:=.Range("AA5").Value

            If .Cells(.Rows.Count, "T").End(xlUp).Row > 6 Then
                Intersect(.AutoFilter.Range, .AutoFilter.Range.Offset(1)).Interior.Color = 65535
            End If
        End With
    End Sub

変数は関係なくありませんか?

(もこな2) 2023/04/20(木) 16:04:35


もこなさん、すみません。
説明不足でした。

T5やAA5は都度変わります。
今回は5行目を選択した状態での例だったので

6行目を選択した際は、T6やAA6になります。
また、色をつけたい箇所は、6行目を選択した際は6行目のみです。

(風の試練) 2023/04/21(金) 12:23:54


■5
>説明不足でした。
>T5やAA5は都度変わります。
>今回は5行目を選択した状態での例だったので6行目を選択した際は、T6やAA6になります。
>6行目を選択した際は、T6やAA6になります。

言ってることがよくわかりません。
5〜6行、4〜5で結構ですので【行・列を踏まえたレイアウト】を示して、【オートフィルタ】でどのような結果を導き出したいのか教えてください。

■6
上記とは別で、なんとなくですが↓のようなアプローチでよい気がしてきました

 ※事前に(A列から始まる表範囲に)オートフィルタが設定してあることが前提
 オートフィルタが設定されている表範囲で
    ダブルクリック・・・・・・その列を対象にダブルクリックしたセルと同じキーワードの行を抽出
    右クリック・・・・・・・・オートフィルタが設定してある範囲の、その行を塗りつぶし

【例】

     ___A__  ___B__  ___C__
  1  項目1  項目2  項目3
  2    い              A
  3    ろ              A
  4    は              B
  5    い              B
  6    ろ              C
  7    は              C
  8    い              A
  9    ろ              A
 10    は              B

      ↓ A4セルをダブルクリック(A列が「は」であるものを抽出)

     ___A__  ___B__  ___C__
  1  項目1  項目2  項目3
  4    は              B
  7    は              C
 10    は              B

      ↓ C4セルをダブルクリック(上記の状態からさらに、C列が「B」であるものを抽出)

     ___A__  ___B__  ___C__
  1  項目1  項目2  項目3
  4    は              B
 10    は              B

      ↓ A4〜C4セルのどれかを右クリック

     ___A__  ___B__  ___C__
  1  項目1  項目2  項目3
  4    は              B   ←この行を塗りつぶし
 10    は              B

上記のアプローチであれば↓で実現可能だとおもいます。

 【シートモジュール】
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Not Intersect(AutoFilter.Range, Target) Is Nothing Then
            Cancel = True
            AutoFilter.Range.AutoFilter Field:=Target.Column, Criteria1:=Target.Value
        End If
    End Sub
    '---------------------------------------------------------------------------------------
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
        If Not Intersect(AutoFilter.Range, Target) Is Nothing Then
            Cancel = True
            Intersect(AutoFilter.Range, Target.EntireRow).Interior.Color = vbYellow
        End If
    End Sub

 ※研究用に提示しています。理解していただきたいので単純に丸パクリして完成!はご遠慮ください。
   (内容を理解して結果として同じになったのであればOKです)

(もこな2) 2023/04/21(金) 16:06:11


もこな2さん、回答ありがとうございます。
説明が下手すぎてすみません、お付き合いありがとうございます。

式的には不格好ですが
下記でできました。

Sub TEST()

    With Selection
        Range(Cells(.Row, "A"), Cells(.Row, "A").Offset(.Rows.Count - 1)).Copy Range("D1")

    End With
        ActiveSheet.Range("A1").AutoFilter Field:=1, Criteria1:=Range("D1").Value

    With Selection
        Range(Cells(.Row, "B"), Cells(.Row, "B").Offset(.Rows.Count - 1)).Copy Range("E1")
    End With
        ActiveSheet.Range("A1").AutoFilter Field:=2, Criteria1:=Range("E1").Value

    With Selection
        Range(Cells(.Row, "A"), Cells(.Row, "B").Offset(.Rows.Count - 1)).Interior.Color = 65535
    End With

End Sub

■1
一般的論として「Selection」とか「ActiveCell」に頼らないコードにした方がよいと思います。
このアドバイスがありましたが、どのようにすればいいのか分からないので
上の式で見本を頂けると助かります。

以上よろしくお願いします。
(風の試練) 2023/04/24(月) 12:56:18


■7
>上の式で見本を頂けると助かります。
う〜ん。そういわれても何やってるか(やりたいか)よくわからないんですよね・・・・
 01  Sub TEST()
 02      With Selection
 03          Range(Cells(.Row, "A"), Cells(.Row, "A").Offset(.Rows.Count - 1)).Copy Range("D1")
 04      End With
 05          ActiveSheet.Range("A1").AutoFilter Field:=1, Criteria1:=Range("D1").Value
 06      With Selection
 07          Range(Cells(.Row, "B"), Cells(.Row, "B").Offset(.Rows.Count - 1)).Copy Range("E1")
 08      End With
 09          ActiveSheet.Range("A1").AutoFilter Field:=2, Criteria1:=Range("E1").Value
 10      With Selection
 11          Range(Cells(.Row, "A"), Cells(.Row, "B").Offset(.Rows.Count - 1)).Interior.Color = 65535
 12      End With
 13  End Sub

とりあえず確認。

 ★1 「02」の【Selection】はどのセルを示しているのか教えてください。
    関連して「03」の【Range(Cells(.Row, "A"), Cells(.Row, "A").Offset(.Rows.Count - 1))】はどのセルを想定しているのか教えてください。

 ★2 「02」と「05」の【Selection】は同じものとの理解でよいでしょうか?
    関連して「03」の【Range(Cells(.Row, "B"), Cells(.Row, "B").Offset(.Rows.Count - 1))】はどのセルを想定しているのか教えてください。

■8
上記のコードで【D1:E1セル】以下に書き出すのはマストな処理なのですか?
Selectionが何行・何列あるのかわかりませんが、使っているのが1行目だけですから↓でも大体同じ結果になりそうな気がします。

    Sub TEST_改二()
        With ActiveSheet
            .AutoFilterMode = False
            .Range("A1:B1").AutoFilter

            .AutoFilter.Range.AutoFilter Field:=1, Criteria1:=.Cells(ActiveCell.Row, 1).Value
            .AutoFilter.Range.AutoFilter Field:=2, Criteria1:=.Cells(ActiveCell.Row, 2).Value
            Intersect(.AutoFilter.Range, ActiveCell.EntireRow).Interior.Color = 65535
        End With
    End Sub

■9
さらに、"選択"に拘りたいのであれば、↓のような方法もあると思います。

    Sub 研究用()
        'A列以降にオートフィルタが設定されていることが前提
        '複数列対応(ただし、1列内に複数行の選択がある場合、一番下のものが採用される)

        Stop 'ブレークポイントの代わり
        Dim MyRNG As Range, tmpRNG As Range
        With ActiveSheet.AutoFilter.Range
            For Each MyRNG In Selection
                .AutoFilter Field:=MyRNG.Column, Criteria1:=MyRNG.Value
            Next MyRNG

            Set tmpRNG = Intersect(.SpecialCells(xlCellTypeVisible), .Offset(1))
            If Not tmpRNG Is Nothing Then
                tmpRNG.Interior.Color = 65535
            Else
                MsgBox "該当なし"
            End If
        End With
    End Sub

このように意図して「Selection」とか「Active○○」を使うこともありますから、見本云々ではなく、まずどのようなことをしたいのかの整理をされてみてはいかがでしょうか?

(もこな2) 2023/04/24(月) 19:18:58


お付き合いありがとうございます。

 ★1 「02」の【Selection】はどのセルを示しているのか教えてください。
    関連して「03」の【Range(Cells(.Row, "A"), Cells(.Row, "A").Offset(.Rows.Count - 1))】はどのセルを想定しているのか教えてください。
「02」の【Selection】は「03」です
「03」は、セルを選択した際のA列セルです

 ★2 「02」と「05」の【Selection】は同じものとの理解でよいでしょうか?
    関連して「03」の【Range(Cells(.Row, "B"), Cells(.Row, "B").Offset(.Rows.Count - 1))】はどのセルを想定しているのか教えてください。
「05」に【Selection】はありませんが…
【Range(Cells(.Row, "B"), Cells(.Row, "B").Offset(.Rows.Count - 1))】は、セルを選択した際のB列セルです

 02      With Selection
 03          Range(Cells(.Row, "A"), Cells(.Row, "A").Offset(.Rows.Count - 1)).Copy Range("D1")
 04      End With
これを一行で表す方法が分からないのでWith とEnd Withの間の1行に対してくくってます

「Sub TEST_改二」がまさに自分が行いたかった事です!
「研究用」もそうですね、今回の件に関しては色を付けたいのは選択している行のみだったので
「Sub TEST_改二」が一番合ってました!
ありがとうございます。

「研究用」は自分の知識ではまだ難しいので
「Sub TEST_改二」は本当に助かります!
(風の試練) 2023/04/25(火) 12:49:48


■10
ちょっと聞き方がわるかったです。(ミスタイプもありました)
聞きたかったのは↓のようなことでした。
 ★1 「02」の【Selection】はどのセルを示しているのか教えてください。【具体的なセル番地】でおしえてください
 ★2 「02」と「06」の【Selection】は同じものとの理解でよいでしょうか?

たとえば、↓のようなときに【A4〜B6セル】を選択しているということならば

     ___A__  ___B__ ... ___D__  ___E__
  1  項目1  項目2
  2    い      A
  3    ろ      A
  4    は      B
  5    い      B
  6    ろ      C
  7    は      C
  8    い      A
  9    ろ      A
 10    は      B

  Sub 研究用01()
      With Range("A4:B6")
          Range(Cells(.Row, "A"), Cells(.Row, "A").Offset(.Rows.Count - 1)).Copy Range("D1")
          Range(Cells(.Row, "B"), Cells(.Row, "B").Offset(.Rows.Count - 1)).Copy Range("E1")
      End With
  End Sub

         ↓「.Row」「.Rows.Count」を展開

  Sub 研究用01()
      With Range("A4:B6")
          Range(Cells(4, "A"), Cells(4, "A").Offset(3 - 1)).Copy Range("D1")
          Range(Cells(4, "B"), Cells(4, "B").Offset(3 - 1)).Copy Range("E1")
      End With
  End Sub

         ↓「Range」の中身を整理

  Sub 研究用01()
      With Range("A4:B6")
          Range("A4", "A6")).Copy Range("D1")
          Range("B4" ,"B6")).Copy Range("E1")
      End With
  End Sub

         ↓さらに「Range」の中身を整理

  Sub 研究用01()
      With Range("A4:B6")
          Range("A4:A6")).Copy Range("D1")
          Range("B4:B6")).Copy Range("E1")
      End With
  End Sub

         ↓踏まえると実質的にはこうなる

  Sub 研究用01()
      Range("A4:B6").Copy Range("D1")
  End Sub

           ↓実行結果↓

     ___A__  ___B__ ... ___D__  ___E__
  1  項目1  項目2       は      B
  2    い      A         い      B
  3    ろ      A         ろ      C
  4    は      B
  5    い      B
  6    ろ      C
  7    は      C
  8    い      A
  9    ろ      A
 10    は      B

これは、【A4:A6】や【F4:P6】なんかを"選択"していても同じ結果になるのは分かりますよね?

 (わからない場合は、ステップ実行してご自身で確認してみてください)

■11
次に↓のような表で【A3】と【C7:C8】を選択したと考えてみてください

     ___A__  ___B__  ___C__
  1  項目1  項目2  項目3
  2    い      あ      A
  3    ろ      い      A
  4    は      う      B
  5    い      え      B
  6    ろ      お      C
  7    は      あ      C
  8    い      い      A
  9    ろ      う      A
 10    は      え      B

コードに直すと↓になります。

  Sub 研究用02()
      With Range("A3,C7:C8")
          Range(Cells(.Row, "A"), Cells(.Row, "A").Offset(.Rows.Count - 1)).Copy Range("D1")
          Range(Cells(.Row, "B"), Cells(.Row, "B").Offset(.Rows.Count - 1)).Copy Range("E1")
      End With
  End Sub

想像通りの結果になったでしょうか?
おそらく想像とは違う結果になったのではないでしょうか?

原因は「With Range("A3,C7:C8")」のような飛び飛びのセル範囲に対して「.Row」「.Rows.Count」を取り出そうとしても1つ目のセル範囲のものしか返ってこないことです。

すなわち以下のようなことになります。

 Range("A3").Row  → 3
 Range("A3").Rows.Count → 1

したがって

  Sub 研究用02()
      Range(Cells(3, "A"), Cells(3, "A").Offset(1 - 1)).Copy Range("D1")
      Range(Cells(3, "B"), Cells(3, "B").Offset(1 - 1)).Copy Range("E1")
  End Sub
                          ↓
  Sub 研究用02()
      Range(Cells(3, "A"), Cells(3, "A").Offset(0)).Copy Range("D1")
      Range(Cells(3, "B"), Cells(3, "B").Offset(0)).Copy Range("E1")
  End Sub
                          ↓
  Sub 研究用02()
      Range(Cells(3, "A"), Cells(3, "A")).Copy Range("D1")
      Range(Cells(3, "B"), Cells(3, "B")).Copy Range("E1")
  End Sub
                          ↓
  Sub 研究用02()
      Cells(3, "A").Copy Range("D1")
      Cells(3, "B").Copy Range("E1")
  End Sub

ということになるから3行目しか取り出されないわけです。
【どのセルを選択】しているときに【どのような結果】にしたいのかと聞いていたのは上記のようなことがあったためです。

■12
>「Sub TEST_改二」がまさに自分が行いたかった事です!
研究してお分かりになったと思いますが、【Selection】から取り出しているのは「.Row」「.Rows.Count」だけですから、【列】は関係ありません。

したがって提示されたコードでやっていることは実質的には↓のようなことなりますよね

    Sub TESTのうち実質的な部分()
        With Selection
            ActiveSheet.Range("A1").AutoFilter Field:=1, Criteria1:=ActiveSheet.Cells(.Row, "A").Value
            ActiveSheet.Range("A1").AutoFilter Field:=2, Criteria1:=ActiveSheet.Cells(.Row, "B").Value
            Range(ActiveSheet.Cells(.Row, "A"), ActiveSheet.Cells(.Row, "B")).Interior.Color = 65535
       End With
   End Sub

このように「変数に入れる」「D列以降にコピペする」などの必要がないので、【見本云々ではなく、まずどのようなことをしたいのかの整理をされてみてはいかがでしょうか?】と申し上げた次第です。

■13
>「研究用」は自分の知識ではまだ難しいので「Sub TEST_改二」は本当に助かります!
こちらの意図としては、どのコードも完成品のプレゼントではなく研究用や説明用として提示しているつもりです。
きちんと【ステップ実行】して研究のうえ、理解してから必要な部分のみご自身のコードに組み込んでください。

なお、【ステップ実行】という言葉を聞いたことがなければ↓を読んでみてください。

 【ステップ実行】
https://www.239-programing.com/excel-vba/basic/basic023.html
http://plus1excel.web.fc2.com/learning/l301/t405.html

また、↓も覚えておいて損はないと思います。

 【ブレークポイント】
https://www.239-programing.com/excel-vba/basic/basic022.html
https://www.tipsfound.com/vba/01010

 【イミディエイトウィンドウ】
https://www.239-programing.com/excel-vba/basic/basic024.html
https://excel-ubara.com/excelvba1/EXCELVBA486.html

 【ローカルウィンドウ】
https://excel-ubara.com/excelvba4/EXCEL266.html
http://excelvba.pc-users.net/fol8/8_2.html

(もこな2) 2023/04/26(水) 06:17:15


ものすごい親切な講習ありがとうございました。

もちろん、完璧とは言えませんが
だいぶシコリが取れた気がします。

ただ、少しづつ謎がほぐれてきて思ったのですが
「Row」の使い方がいまいちよく分かりません。

ネットで行番号を取得するという事は分かったのですが
どういう風に使うのかがまだよく分かりません。

今回の下記については、なぜ選択したセルが選ばれる様になっているのか分かっていません。
その仕掛けは何なのでしょうか?
With Selection

	ActiveSheet.Range("A1").AutoFilter Field:=1, Criteria1:=ActiveSheet.Cells(.Row, "A").Value
	ActiveSheet.Range("A1").AutoFilter Field:=2, Criteria1:=ActiveSheet.Cells(.Row, "B").Value
	Range(ActiveSheet.Cells(.Row, "A"), ActiveSheet.Cells(.Row, "B")).Interior.Color = 65535
 End With
(風の試練) 2023/04/27(木) 17:31:30

人に聴いてばっかりで全然試練になってないようです
(獄中) 2023/04/27(木) 18:03:43

■14
>「Row」の使い方がいまいちよく分かりません。
>〜その仕掛けは何なのでしょうか?
【ステップ実行】や【イミディエイトウィンドウ】で確認してみましたか?

また、「With(ステートメント)」は理解できていますか?

(もこな2) 2023/04/27(木) 18:50:25


【ステップ実行】は必ず行っています

【イミディエイトウィンドウ】は、行いましたがいまいち意味が分かりませんでした。

Withは、理解しているつもりです。
(風の試練) 2023/05/10(水) 14:17:33


■15
>「Row」の使い方がいまいちよく分かりません。
>【ステップ実行】は必ず行っています
>【イミディエイトウィンドウ】は、行いましたがいまいち意味が分かりませんでした。

わからない部分がわかりませんが、以下をステップ実行したときに想像通りのものが表示されたということなら概ね理解できていると思います。そうでないなら「■11」を読み返してください。

    Sub 実験()
        Stop
        Range("A3").Select
        Debug.Print " 【Address】      " & Selection.Address(0, 0)
        Debug.Print " 【Areas(1)】     " & Selection.Areas(1).Address(0, 0)
        Debug.Print " 【Row】            " & Selection.Row
        Debug.Print " 【Rows.Count】" & Selection.Rows.Count & vbLf

        Stop
        Range("A7:C7").Select
        Debug.Print " 【Address】      " & Selection.Address(0, 0)
        Debug.Print " 【Areas(1)】     " & Selection.Areas(1).Address(0, 0)
        Debug.Print " 【Row】            " & Selection.Row
        Debug.Print " 【Rows.Count】" & Selection.Rows.Count&; vbLf

        Stop
        Range("A3:C8,B1").Select
        Debug.Print " 【Address】      " & Selection.Address(0, 0)
        Debug.Print " 【Areas(1)】     " & Selection.Areas(1).Address(0, 0)
        Debug.Print " 【Row】            " & Selection.Row
        Debug.Print " 【Rows.Count】" & Selection.Rows.Count&; vbLf

        Stop
        Range("A3,C7:C8").Select
        Debug.Print " 【Address】      " & Selection.Address(0, 0)
        Debug.Print " 【Areas(1)】     " & Selection.Areas(1).Address(0, 0)
        Debug.Print " 【Row】            " & Selection.Row
        Debug.Print " 【Rows.Count】" & Selection.Rows.Count&; vbLf

        Stop
        Range("A9:B57,C7,G7,P1,O22").Select
        Debug.Print " 【Address】      " & Selection.Address(0, 0)
        Debug.Print " 【Areas(1)】     " & Selection.Areas(1).Address(0, 0)
        Debug.Print " 【Row】            " & Selection.Row
        Debug.Print " 【Rows.Count】" & Selection.Rows.Count&; vbLf
    End Sub

■16
>Withは、理解しているつもりです。

 > 今回の下記については、なぜ選択したセルが選ばれる様になっているのか分かっていません。
 > その仕掛けは何なのでしょうか?
 > With Selection
 >     ActiveSheet.Range("A1").AutoFilter Field:=1, Criteria1:=ActiveSheet.Cells(.Row, "A").Value
 >     ActiveSheet.Range("A1").AutoFilter Field:=2, Criteria1:=ActiveSheet.Cells(.Row, "B").Value
 >     Range(ActiveSheet.Cells(.Row, "A"), ActiveSheet.Cells(.Row, "B")).Interior.Color = 65535
 > End With

理解できてるなら↓ですよね

 ActiveSheet.Range("A1").AutoFilter Field:=1, Criteria1:=ActiveSheet.Cells(.Row, "A").Value
                    ↓
 ActiveSheet.Range("A1").AutoFilter Field:=1, Criteria1:=ActiveSheet.Cells(Selection.Row, "A").Value
                                                                           ~~~~~~~~~~~~~

何がわかりませんか?

(もこな2) 2023/05/10(水) 16:28:55


コメント返信:

[ 一覧(最新更新順) ]


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