HOME技術ExcelExcel VBA:フィルタを操作して絞り込む

Excel VBA:フィルタを操作して絞り込む

Excel VBAでフィルタ操作をして、行を絞り込みむ方法です。

コード

Sub autoFilter(Retsu, Atai)
Worksheets(“シート名”).Range(“A3”).CurrentRegion.autoFilter Field:=Retsu, Criteria1:=Atai
End Sub

“シート名”のワークシートのA3セルを基準として、Retsu番の列のAtaiと同じ値のセルがある行のみを表示します。

autoFilterを呼び出すときは、引数に列番号と絞り込む値を指定します。
例えば、B列のセルの値が「あ」の行だけ表示したい場合には、以下のようにします。

autoFilter 2, “あ”

フィルタリングする範囲は、本来ならば、Range(A3:B4)などと指定するのですが、Excelが表形式につくられているときには、Range(“A3”)などの、データがあるセルを指定すると、自動的に範囲を認識してフィルタリングしてくれます。

関連記事

Excel:保存先の場所を常にデスクトップにする

Microsoft Excel2019で新規に保存をしようとするとOne Driveなどが最初に候補にあがってきてしまい、コンピュータ上に保存したいときに、いちいちデスクトップを指定するのに手間取りま…続きを読む

Excelで起動時にフォームのみ表示する

Excelで起動時にフォームを表示し、Excelそのものの表画面は非表示にする方法です。 起動時にフォームを表示する 「開発」→「コードの表示」から「Microsoft Visual Basic fo…続きを読む

Excel VBA:特定のシートをコピーして別ブックを生成する

Excel VBAで、特定のシートの値をすべてコピーして、新しい別のExcelブックを生成してそのシートに貼りつけます。 なお、ブックを生成した後は、各自で保存します。 コード Worksheets(…続きを読む

Excel VBAでログイン管理をする

Excelを開いたときに「閲覧のみ」ユーザか「管理者」ユーザかを選び、「閲覧のみ」ユーザの場合にはExcelを閉じるときに保存できないようにして、「管理者」ユーザの場合には、Excelを閉じるときに変…続きを読む

Excel VBAでシートを並び替える

ExcelVBAでシート内のデータを並び替える方法です。 VBAのコード Endrow  = Worksheets(SheetName).Range(“A1”).End(xlD…続きを読む

Excelで複数部印刷しようとしても指定部数印刷されない

Excelを開いて複数部印刷しようとしても、指定部数が印刷されない不具合への対処法です。 例えば、5部印刷しようとしても、1部ないしは2部しか印刷されません。 そして、エラーメッセージとして「【プリン…続きを読む

Excel:改行を含むテキストを置換する

Microsoft Excelで、セルの中で改行しているテキストを置換する方法です。 以下のように、 あああ いいい という改行を含むテキストを「おおお」というテキストに置換します。 改行を含めたテキ…続きを読む

Excelで計算式を入れたセルに計算結果が反映されない

Excelで計算式を予め設定していたにもかかわらず、数値を入力してもそのセルに計算結果が反映されない時があります。 通常、自動計算する設定になっていますが、これが手動計算に変わっていることが原因です。…続きを読む

Excel VBAでフィルタの絞り込みを解除する

ExcelVBAを使って、フィルタで絞り込んだ内容を解除する方法です。 VBAコード If Worksheets(“シート名”).FilterMode Then Workshe…続きを読む

Excel VBA:指定した列を非表示にする

Excel VBAで、予め指定した列を非表示にします。 コード hiddenColumn = Array(3, 4, 5, 6) For i = 0 To UBound(hiddenColumn) W…続きを読む