Excel VBAでテキストの長さでフィルタリングを行う方法

この記事では、Excel VBA(Visual Basic for Applications)を使って業務効率化における「テキストの長さでフィルタ」の処理を行う方法について、詳しく説明します。VBAコードの詳細解説、さらには実用性を高めるための応用例も3つ以上提供します。VBA初心者でも取り組みやすいように、具体的なコード例とその解説も豊富に用意しています。

日程Fit。無料・登録不要。「いつ空いてる?」を、ひとつのリンクで。リンクを送って、○△×でかんたん日程調整。無料で日程を作る。
目次

基本的なフィルタリングコード

Excel VBAを使用して、テキストの長さでフィルタリングを行う基本的なコードは以下の通りです。


Sub FilterByTextLength()
    Dim rng As Range
    Set rng = Worksheets("Sheet1").Range("A1:A10")
    
    rng.AutoFilter Field:=1, Criteria1:=">5", Operator:=xlAnd
End Sub

コードの解説

1. `Dim rng As Range`:`rng`という名前のRangeオブジェクトを宣言します。
2. `Set rng = Worksheets(“Sheet1”).Range(“A1:A10”)`:`rng`に`Sheet1`の`A1:A10`の範囲を指定します。
3. `rng.AutoFilter Field:=1, Criteria1:=”>5″, Operator:=xlAnd`:指定した範囲にフィルタを適用します。この場合、テキストの長さが5より大きいセルがフィルタリングされます。

応用例

応用例1:特定の列にフィルタをかける

特定の列(例えば、B列)だけにフィルタをかける場合のコードです。


Sub FilterSpecificColumn()
    Dim rng As Range
    Set rng = Worksheets("Sheet1").Range("A1:B10")
    
    rng.AutoFilter Field:=2, Criteria1:=">5", Operator:=xlAnd
End Sub

コードの解説

`Field:=2`という部分がキーポイントです。これにより、B列だけにフィルタがかかります。

応用例2:複数条件でフィルタ

テキストの長さが5より大きく、かつ10より小さい、という複数の条件でフィルタリングする場合のコードです。


Sub FilterMultipleConditions()
    Dim rng As Range
    Set rng = Worksheets("Sheet1").Range("A1:A10")
    
    rng.AutoFilter Field:=1, Criteria1:=">5", Operator:=xlAnd, Criteria2:="<10"
End Sub

コードの解説

`Operator:=xlAnd`と`Criteria2:="<10"`により、2つの条件でフィルタがかかります。

応用例3:特定の文字を含むセルをフィルタ

特定の文字(例:"ABC")を含むセルだけをフィルタする場合のコードです。


Sub FilterBySpecificText()
    Dim rng As Range
    Set rng = Worksheets("Sheet1").Range("A1:A10")
    
    rng.AutoFilter Field:=1, Criteria1:="=*ABC*", Operator:=xlAnd
End Sub

コードの解説

`Criteria1:="=*ABC*"`により、"ABC"を含むセルがフィルタされます。

まとめ

Excel VBAを用いてテキストの長さでフィルタをかける方法と、その応用例について解説しました。これらの技術は、業務でのデータ整理や分析に非常に役立つものです。VBAの力を借りて、効率的な業務遂行を目指しましょう。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次