- ベストアンサー
特定のセルをフィルタするマクロを作りたい
- Excel2010で特定のキーワードが含まれるセルをフィルタするマクロの記載方法を知りたいです。
- マクロによるフィルタリングで特定の名前と点数の条件にマッチする行を抜き出す方法を学びたいです。
- 自動フィルター機能を使って、E2:E7セルに入力された名前をもとにフィルタリングを行うマクロを作成したいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! お使いのバージョンがExcel2010というコトですので、一例です。 (Excel2007以降で動くと思います) Sub Sample1() Dim i As Long, lastRow As Long, str As String, myArray lastRow = Cells(Rows.Count, "E").End(xlUp).Row If lastRow > 1 Then For i = 2 To lastRow str = str & Cells(i, "E") & "," Next i str = Left(str, Len(str) - 1) myArray = Split(str, ",") Range("A1").AutoFilter field:=2, Criteria1:=myArray, Operator:=xlFilterValues End If End Sub ※ C列点数でのフィルタは考慮していません。 こんな感じではどうでしょうか?m(_ _)m
その他の回答 (1)
- MackyNo1
- ベストアンサー率53% (1521/2850)
ご希望の操作をするにはフィルタオプションの設定の機能を利用します。 すなわち、F列の検索条件の項目名を元のデータと同じ「名前」 にしておき、数式タブの名前の定義で「抽出条件」と名前を付け、以下の式を入力します。 =OFFSET($F$1,0,0,COUNTA($F:$F),1) そして以下のコードを実施すれば(マクロの記録で作成できる)、ご希望のデータが抽出されています。 Columns("A:C").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range _ ("抽出条件"), Unique:=False
お礼
ありがとうございます。 ただ、私の理解力が足りないせいか、ご提示いただいた内容を実施してもスクリプトエラーになってしまいました。 もう少し頑張ってみます!
お礼
ありがとうございます! この内容でばっちり動きました! マクロ記録機能で作ったActiveSheet~から始まる行で、点数選択しているらしい行をご提示いただいた End If の行の前に入れると狙い通りの動作になりました。 VBスクリプトはよく知らないので、コードの内容をググっていろいろと調べてみます。