エクセルVBAマクロを自動作成する無料アプリです。
例として「複数列のフィルターを自動実行する」VBAマクロを作成します。
事例 複数列のフィルターを自動実行するコードを作成
できました😄
アプリの設定
アプリのトップページ
⇒▼フィルター(+コピー+削除)
⇒◇複数列フィルター(文字列は部分一致でフィルター)
【ポイント】
■ フィルター条件のセル範囲は、A2やA2:F2やA2,C2,F2などが可能です。
表示されるVBAコード
アプリで作成されたコードを、VBE画面の該当のシートモジュールに貼り付ければ、マクロの完成です。
VBAコードを見る
'【重要】作成したコードは、標準モジュールではなく、対象のシートのシートモジュールに貼り付けます
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("B2:F2")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target.Select
Call デモ(Target)
Application.EnableEvents = True
End Sub
Sub デモ(Target As Range) '複数列フィルター(文字列は部分一致も可能)
Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False ' 警告表示を停止
Dim 現在列 As Long
現在列 = Target.Column - Range("B2:F2").Cells(1, 1).Column + 1
With Sheets("Sheet1").Range("b5")
If IsEmpty(Target.Value) Then
.AutoFilter Field:= 現在列
ElseIf IsNumeric(Target.Value) Then
.AutoFilter Field:= 現在列, Criteria1:=Target
ElseIf IsDate(Target.Value) Then
.AutoFilter Field:=現在列, Criteria1:=Format(Target, Sheets("Sheet1").Cells(Range("b5").Row, Range("b5").Column + 現在列 - 1).NumberFormatLocal)
Else
.AutoFilter Field:= 現在列, Criteria1:="*" & Target & "*"
End If
End With
Application.DisplayAlerts = true ' 警告表示を再開
Application.ScreenUpdating = True ' 画面描画を再開
End Sub
ChatGPTで修正
あなたが自動化したい内容と事例が少し異なる場合は、無料で使えるマイクロソフトの「BingAIチャット」でコードを修正します。とても簡単です!