目次
概要
Excel の AdvancedFilter を利用すれば、列見出しを再活用した条件範囲を設定し、「あ・い・う・え・お」で始まるデータのみを抽出できます。抽出後はデータの並び順を保持したまま可視行が切り替わるため、後続処理も手間なく実施可能です。本記事では、条件範囲の作成手順と VBA サンプルコードを丁寧にご説明いたします。
前提条件
項目 内容 対応 Excel Microsoft 365 または 2016 以降 元データ範囲 ワークシート「Data」の A2:C31(見出し行を含む) 条件範囲 同シート H2:H7(見出しセルと条件 5 行) マクロ設置先 標準モジュール
条件範囲(Criteria Range)の設定
抽出対象列(例:「氏名」)の見出しセルを H2 にコピーします。
H3:H7 に下記の条件を入力します。
セル 条件式 H3 あ* H4 い* H5 う* H6 え* H7 お*
*
はワイルドカードで、先頭が「あ・い・う・え・お」のいずれかである文字列を意味します。
条件を同じ列に縦に並べると OR 条件、同じ行に横に並べると AND 条件になります。
VBA サンプルコード
Sub FilterKanaAGyō()
Dim srcRange As Range ' 元データ範囲
Dim condRange As Range ' 条件範囲
' 元データと条件範囲を設定
Set srcRange = Worksheets("Data").Range("A2").Resize(30, 3) ' A2:C31
Set condRange = Worksheets("Data").Range("H2:H7") ' 見出し + 条件
' AdvancedFilter をインプレースで実行
srcRange.AdvancedFilter _
Action:=xlFilterInPlace, _
CriteriaRange:=condRange
MsgBox "あ行のレコードを抽出しました。", vbInformation
End Sub
コード解説
行 説明 7 Resize(30, 3)
で 30 行 3 列の元データ範囲を指定しています。必要に応じて行数・列数を調整してください。10 条件範囲として見出しセルと 5 行分の条件セルを指定しています。 13 xlFilterInPlace
により元データの並びを維持したまま可視行が切り替わります。
応用ポイント
目的 実装方法 抽出結果を別シートへ転記 Action:=xlFilterCopy
とし、CopyToRange:=Worksheets("Result").Range("A1")
を追加します。条件行の増減に対応 condRange
を動的に再設定し、条件セルを増減させるだけで抽出内容を変更できます。抽出解除 If Worksheets("Data").FilterMode Then Worksheets("Data").ShowAllData
を実行し、元の表示に戻します。
よくある質問
質問 回答 別シートに条件範囲を置いても動作しますか。 可能です。CriteriaRange
に別シートの範囲を指定してください。 数値や日付でも同様の方法で抽出できますか。 はい。条件セルに数値の比較演算子(例:>1000
)や日付の式(例:>=2024/01/01
)を入力すると抽出できます。
まとめ
AdvancedFilter とワイルドカードを組み合わせることで、「あ行」のデータを簡潔に抽出できます。条件範囲を変更するだけで別の五十音にも対応でき、柔軟性の高いフィルター処理を実現可能です。ぜひ日常業務のデータ抽出やレポート作成にお役立てください。