エクセルマクロで、オートフィルタで「~で始まる」を抽出するVBAコードをご紹介します。
特定の数値から始まるデータの抽出方法も掲載しています。
ぜひ、お試しください。
オートフィルタ「で始まる」:特定文字
以下のExcelVBAを実行すると、アスタリスクを使ってオートフィルタで絞り込みします。
Sub オートフィルタ特定の値で始まるデータ抽出()
ActiveSheet.Range("A1").CurrentRegion.AutoFilter _
Field:=3, _
Criteria1:="=宮*", Operator:=xlAnd
End Sub
マクロ実行後
C列で「宮」から始まるデータのみ表示します。
[Field:3] にて列指定します。(C列の列番号は ”3” )
オートフィルタ「で始まる」:複数条件
以下のExcelVBAを実行すると、オートフィルタで「~から始まる」データを抽出します。
Sub オートフィルタデータ抽出()
ActiveSheet.Range("A1").CurrentRegion.AutoFilter _
Field:=3, _
Criteria1:="=宮*", _
Operator:=xlOr, Criteria2:="=山*"
End Sub
マクロ実行後
ワイルドカード「*」を使って、
C列で「宮」か「山」から始まるデータを抽出します。
オートフィルタ「で始まる」:複数列
以下のExcelVBAを実行すると、オートフィルタで複数列から「~で始まる」を抽出します。
Sub フィルタ特定の値から始まるデータ検索()
ActiveSheet.Range("A1").CurrentRegion.AutoFilter _
Field:=3, _
Criteria1:="=宮*", Operator:=xlAnd
ActiveSheet.Range("A1").CurrentRegion.AutoFilter _
Field:=4, _
Criteria1:="=101*", Operator:=xlAnd
End Sub
マクロ実行後
C列で「宮」から始まるデータと、
D列で「101」から始まるデータを抽出します。
オートフィルタ「で始まる」:数値
以下のExcelVBAを実行すると、オートフィルタで「特定の数字から始まる」データを抽出します。
Sub オートフィルタ特定数値から始まるデータ抽出()
Dim i As Long
Dim j As Long
Dim myAry As Variant
Application.ScreenUpdating = False
j = 0
myAry = Array()
'2~20行目までループ
For i = 2 To 20
'「12」から始まる値を配列格納
If Left(Cells(i, 1), 2) = 12 Then
ReDim Preserve myAry(j)
myAry(j) = Str(Cells(i, 1))
j = j + 1
End If
Next i
'フィルタ
ActiveSheet.Range("A1").CurrentRegion.AutoFilter _
Field:=1, _
Criteria1:=myAry, Operator:=xlFilterValues
Application.ScreenUpdating = True
End Sub
マクロ実行後
A列で「12」から始まるデータを表示します。
数値がフィルターで抽出できなかったため、裏ワザとして、
配列 [myAry] に該当する数字を入れた後、フィルタ抽出する方法にしています。
この記事がお役に立ちますと幸いです。
・【エクセルマクロ】オートフィルタ処理を自動化する使用例まとめ
【エクセルマクロ】オートフィルタ処理を自動化:超便利28選
...
「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説
リンク