【実務直結】VBAオートフィルタで空白・空白以外を完璧に使い分ける方法

【業務効率化】VBA
スポンサーリンク

「あぁ……まただ。1,000行もある名簿の中に、数カ所だけ住所が抜けてる。これ、手で探してたら日が暮れちゃうよ……。フィルタで『空白』にチェックを入れるだけの作業だけど、これが毎日5ファイルもあると、地味に指が疲れるんだよね」

そんな風に思ったことはありませんか?

実は、私も昔はそうでした。そんな苦い経験から学んだのが、「機械にできることは、すべて機械に任せる」という鉄則です。

VBAを活用すれば、マウスをカチカチ動かす時間をほぼゼロにできます。手作業なら1回30秒かかるフィルタ操作も、100回繰り返せば50分のロス。VBAなら、その50分を丸ごと別の重要な仕事や新しいスキルの学習時間に充てることができます。

今日は、VBA初心者の方でもコピペで今すぐ使える「空白」と「空白以外」を抽出するコードをご紹介します。

【業務効率化】VBAの記事を見る 

「空白」を抽出するコード

まずは、データが入力されていないセルだけを表示させるコードです。

条件指定に「=」を用いるだけで、簡単に空白を表現できるのがポイントになります。

Sub FilterBlanks()
    ' シート「データ」の1行目2列目にある見出しに対してフィルタをかけます
    With Worksheets("データ")
        .AutoFilterMode = False ' いったんフィルタを解除してリセット
        .Range("A1").AutoFilter Field:=2, Criteria1:="="
    End With
   
    MsgBox "空白セルの抽出が完了しました!"
End Sub

「空白以外」を抽出するコード

次に、データが入っている行だけを残すコードです。

ここでは、比較演算子である「<>」を使用します。これは「〜ではない(等しくない)」という意味を持つ記号になります。

Sub FilterNonBlanks()
        With Worksheets("データ")
        .AutoFilterMode = False
        .Range("A1").AutoFilter Field:=2, Criteria1:="<>"
    End With
   
    MsgBox "データがある行だけを表示しました!"
End Sub

解説:フィルタの仕組み

VBAのオートフィルタの仕組みは、「学校の出席確認」に例えるとスムーズに理解しやすいと思います。

  • Field(フィールド): 「出席番号の列」「名前の列」など、どの列をチェックするか決めます。
  • Criteria(クライテリア): 「今日はメガネをかけている人だけ立って!」というルールのことです。
  • “=” : 「名前が書いていない人(空白)」を探します。
  • “<>” : 「名前が書いてある人(空白以外)」を探します。

ぜひ活用してみてください!

【業務効率化】VBAの記事を見る 


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でも、年間100万円以上の節約・資産管理・スキルアップで新NISAで年間360万円投資し、iDeCoもフル活用しています。日商簿記3級持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、稼ぐ力を高めるITスキルについて発信しています。

生活を豊かにしたくて、高配当株投資で年間配当金60万円をめざしています。現在は年間配当金25万円以上達成!

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

タイトルとURLをコピーしました