【ノーコード】1分でExcelを自動化する無料ツール

コードの知識不要😊ChatGPTしようぜ⚾17

MENU

【ノーコードVBA】複数列のフィルターを自動実行(文字列は部分一致も可能)

エクセルVBAマクロを自動作成する無料アプリです。

例として「複数列のフィルターを自動実行する」VBAマクロを作成します。

(ページの末尾に、VBAコード掲載)

事例 複数列のフィルターを自動実行するコードを作成

 

 

できました😄

 

アプリの設定

アプリのトップページ

 ⇒▼フィルター(+コピー+削除)

 ⇒◇複数列フィルター(文字列は部分一致でフィルター)

 

【ポイント】
 フィルター条件のセル範囲は、A2A2:F2A2,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チャット」でコードを修正します。とても簡単です!

アプリはこちらから↓↓↓↓