この記事では、Excel VBAを使って特定の公式・計算式を含むセルをフィルタリングする方法について解説します。具体的なコード例、その詳細な解説、さらに実践的な応用例を3つを提供します。この記事を参考に、業務の効率化を図る手段としてVBAの活用を考えてみてください。
基本的なフィルタリング処理
Excel VBAを使って特定の公式・計算式を含むセルをフィルタリングする際の基本的なコードは以下の通りです。
Sub FilterFormulaCells()
Dim cell As Range
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
'フィルタリングを解除
ws.AutoFilterMode = False
For Each cell In ws.UsedRange
If cell.HasFormula Then
'ここで何らかの処理
cell.Interior.Color = RGB(255, 255, 0)
End If
Next cell
End Sub
このコードは、”Sheet1″という名前のワークシートを対象にしています。`cell.HasFormula`プロパティを使用して、セルが計算式を含むかどうかを判断しています。
コードの詳細解説
– `Dim cell As Range, Dim ws As Worksheet`: cellとwsという変数を定義しています。
– `Set ws = Worksheets(“Sheet1”)`: wsを”Sheet1″というワークシートに紐づけます。
– `ws.AutoFilterMode = False`: 既存のフィルタを解除します。
– `For Each cell In ws.UsedRange`: 使用されている各セルに対してループを開始します。
– `If cell.HasFormula Then`: セルが公式を含む場合、そのセルの背景色を黄色に変更します。
応用例
応用例1: 公式の種類によるフィルタ
特定の公式だけをフィルタリングする場合、以下のようにコードを書くことができます。
Sub FilterSpecificFormula()
Dim cell As Range
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
ws.AutoFilterMode = False
For Each cell In ws.UsedRange
If InStr(cell.Formula, "SUM") > 0 Then
cell.Interior.Color = RGB(0, 255, 0)
End If
Next cell
End Sub
応用例2: セルの値によるフィルタ
公式の計算結果に基づいてフィルタリングする場合は、以下のようにします。
Sub FilterByFormulaValue()
Dim cell As Range
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
ws.AutoFilterMode = False
For Each cell In ws.UsedRange
If cell.HasFormula And cell.Value > 100 Then
cell.Interior.Color = RGB(255, 0, 0)
End If
Next cell
End Sub
応用例3: 複数シート対応
複数のシートでフィルタリングを行う場合のコードは以下のようになります。
Sub FilterMultipleSheets()
Dim cell As Range
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.AutoFilterMode = False
For Each cell In ws.UsedRange
If cell.HasFormula Then
cell.Interior.Color = RGB(0, 0, 255)
End If
Next cell
Next ws
End Sub
まとめ
Excel VBAを使って特定の公式・計算式を含むセルを効率的にフィルタリングする方法について解説しました。基本的なフィルタリングから応用例まで、業務効率化に役立ついくつかの方法を提供しました。
コメント