概要
Excel の AdvancedFilter は、列見出しを再利用した「条件範囲(Criteria Range)」を設定することで、AND・OR 条件を柔軟に組み合わせた抽出が可能です。本記事では、VBA から インプレース抽出(表示切替のみ) を実行するサンプルコードを示し、条件範囲の作り方と注意点を丁寧に解説いたします。
前提条件
| 項目 | 内容 |
|---|---|
| 対応 Excel | Microsoft 365 または 2016 以降 |
| 元データ | ワークシート「Data」に名前付き範囲 InvoiceData が設定済み |
| 条件範囲 | ワークシート「Criteria」の F2:G4 (見出し込み) |
| マクロ配置 | 標準モジュール |
条件範囲(Criteria Range)の構成ルール
| セル | 設定内容 |
|---|---|
| F2・G2 | 元データの列見出しをコピー(例:Region, Amount) |
| F3 | = "East"(文字列はダブルクォーテーションで囲む) |
| G3 | >10000 |
| F4 | = "West" |
| G4 | >5000 |
- 同一行は AND 条件 → F3 と G3 は「Region 列が East かつ Amount 列が 10,000 超」。
- 行が異なれば OR 条件 → F4・G4 は別行のため、上記 AND 条件と OR で結合。
サンプルコード(VBA)
Sub RunAdvancedFilter()
Dim srcRange As Range ' 抽出対象データ
Dim critRange As Range ' 条件範囲
'--- 範囲オブジェクトの設定 ---
Set srcRange = Worksheets("Data").Range("InvoiceData")
Set critRange = Worksheets("Criteria").Range("F2:G4")
'--- AdvancedFilter をインプレースで実行 ---
srcRange.AdvancedFilter _
Action:=xlFilterInPlace, _ ' 表示切替のみ
CriteriaRange:=critRange
MsgBox "指定条件でデータを抽出しました。", vbInformation
End Sub
コード解説
| 行 | 説明 |
|---|---|
| 6 | InvoiceData は元データ全体(見出し行を含む)に定義した名前付き範囲です。 |
| 9 | CriteriaRange に条件範囲 F2:G4 を指定します。見出しと条件を含めた範囲であることが必須です。 |
| 11 | xlFilterInPlace を指定すると、元データの並びを保持したまま可視行が切り替わります。 |
応用ポイント
- 抽出結果を別シートへ転記 vbaコピーする編集する
srcRange.AdvancedFilter _ Action:=xlFilterCopy, _ CriteriaRange:=critRange, _ CopyToRange:=Worksheets("Result").Range("A1")xlFilterCopyを使用し、CopyToRangeに転記先セルを指定します。 - 条件範囲を動的に拡張
条件が増減する場合は、最終行を変数で取得しcritRangeを再設定すると柔軟に対応できます。 - 抽出解除
If Worksheets("Data").FilterMode Then Worksheets("Data").ShowAllDataでフィルター解除が可能です。
よくある質問
| 質問 | 回答 |
|---|---|
| 条件範囲の見出しが元データと完全一致していないとどうなりますか。 | 一致しない列は無視されます。誤った結果を防ぐため、必ずコピー&ペーストで見出しを作成してください。 |
| 数式を条件に使えますか。 | はい。条件セルに数式を入力すると、結果が TRUE になる行だけが抽出されます。 |
まとめ
AdvancedFilter を VBA から操作すると、複雑な AND/OR 条件をノーコーディングで組み合わせられます。サンプルコードを実行し、条件範囲に応じてデータが正しく抽出されることをご確認ください。条件行を追加・削除するだけでロジックを変更できるため、定期レポートやデータ分析の効率化に大いに役立ちます。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
