【Excelマクロ】特定の条件を満たす人材データをフィルターで抽出

人材データの中から、希望勤務地や経験年数などの条件で対象者を絞り込みたい場面は多くあります。

しかし、毎回フィルター条件をマクロの中に書いてしまうと、条件変更のたびに修正が必要になってしまいます。

今回は、ユーザーがセルに記入した条件を元に、人材データを自動で抽出するマクロをご紹介します。

条件はシート上に記入するだけで反映されるため、汎用性が高く、業務にすぐ取り入れやすい構成です。

条件セルを参照して人材データを抽出するマクロ

次のマクロでは、勤務地(G1セル)と経験年数(G2セル)を抽出条件として使います。

Sub FilterCandidateFlexible()

    Dim ws As Worksheet
    Dim loc As String
    Dim exp As Variant

    Set ws = Sheets("人材データ")

    ' 条件セルの値を取得
    loc = ws.Range("G1").Value
    exp = ws.Range("G2").Value

    With ws
        .AutoFilterMode = False
        .Range("A1:E1").AutoFilter

        ' 勤務地でのフィルター
        If loc <> "" Then
            .Range("A1:E1").AutoFilter Field:=4, Criteria1:=loc
        End If

        ' 経験年数でのフィルター(以上)
        If exp <> "" Then
            .Range("A1:E1").AutoFilter Field:=5, Criteria1:=">=" & exp
        End If
    End With

    MsgBox "条件に一致する人材を抽出しました", vbInformation
End Sub

このコードでは、「人材データ」シートの次の列を対象としています。

  • A列:氏名
  • B列:年齢
  • C列:性別
  • D列:希望勤務地
  • E列:経験年数
  • G1セル:勤務地の抽出条件
  • G2セル:経験年数の抽出条件

条件が未入力の場合は、その条件での抽出をスキップします。

実装するメリット

この方法を取り入れることで、次のようなメリットがあります。

  • 抽出条件をセルから柔軟に変更できる
  • マクロの修正が不要になる
  • 誰が見ても条件が明確でわかりやすい
  • 定型業務の効率が上がる

また、勤務地や経験年数に限らず、他の条件(年齢や性別など)にも簡単に応用が可能です。

まとめ

人材データの抽出は、セルから条件を参照することで柔軟かつメンテナンスしやすくなります。

  • G列に入力された条件をもとに、フィルター抽出
  • マクロの修正不要で、利用者自身が抽出条件を管理可能
  • 汎用的な構造で、応用の幅が広がる

条件付きのフィルター処理は、VBAの中でも実務でよく使われるテクニックです。

日々の管理作業にうまく組み込んで、Excel業務を効率化していきましょう。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール