• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:特定のセルをフィルタするマクロを作りたい)

特定のセルをフィルタするマクロを作りたい

このQ&Aのポイント
  • Excel2010で特定のキーワードが含まれるセルをフィルタするマクロの記載方法を知りたいです。
  • マクロによるフィルタリングで特定の名前と点数の条件にマッチする行を抜き出す方法を学びたいです。
  • 自動フィルター機能を使って、E2:E7セルに入力された名前をもとにフィルタリングを行うマクロを作成したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.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

rept
質問者

お礼

ありがとうございます! この内容でばっちり動きました! マクロ記録機能で作ったActiveSheet~から始まる行で、点数選択しているらしい行をご提示いただいた End If の行の前に入れると狙い通りの動作になりました。 VBスクリプトはよく知らないので、コードの内容をググっていろいろと調べてみます。

その他の回答 (1)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

ご希望の操作をするにはフィルタオプションの設定の機能を利用します。 すなわち、F列の検索条件の項目名を元のデータと同じ「名前」 にしておき、数式タブの名前の定義で「抽出条件」と名前を付け、以下の式を入力します。 =OFFSET($F$1,0,0,COUNTA($F:$F),1) そして以下のコードを実施すれば(マクロの記録で作成できる)、ご希望のデータが抽出されています。 Columns("A:C").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range _ ("抽出条件"), Unique:=False

rept
質問者

お礼

ありがとうございます。 ただ、私の理解力が足りないせいか、ご提示いただいた内容を実施してもスクリプトエラーになってしまいました。 もう少し頑張ってみます!

関連するQ&A

専門家に質問してみよう