🍓

糸魚川市内の駅名をソート、フィルタ、フィルタ解除するマクロ

2024/04/03に公開

はじめに

糸魚川市内にある駅のデータを使ってエクセルVBAのマクロを作成しました

データの紹介

エクセルで下記のデータを作成しました。

駅名でソート

駅名を五十音順に並べるVBAのソースコードです。

'駅名でソート
Sub station_sort()
    Dim ws As Worksheet
    Dim name As String
    name = "糸魚川市"
    Set ws = ThisWorkbook.Worksheets(name)
    With ws.Sort
        With .SortFields
            .Clear
            .Add Key:=ws.Range("D4"), Order:=xlAscending
            
        End With
        .SetRange ws.Range("B4:H18")
        .Header = xlYes
        .Apply
    End With
End Sub

実行すると、データは次の画像のように駅名でソートされます。

路線名でソート

路線名を五十音順に並べるVBAのソースコードです。

'路線名でソート
Sub line_sort()
    Dim ws As Worksheet
    Dim name As String
    name = "糸魚川市"
    Set ws = ThisWorkbook.Worksheets(name)
    With ws.Sort
        With .SortFields
            .Clear
            .Add Key:=ws.Range("E4"), Order:=xlAscending
            
        End With
        .SetRange ws.Range("B4:H18")
        .Header = xlYes
        .Apply
    End With
End Sub

VBAマクロを実行すると下記の画像のように、路線名でソートされます

路線名でフィルタ

路線名でフィルタするVBAのソースコードです。

'路線名でフィルタ
Sub line_filter()
    Dim ws As Worksheet
    Dim name As String
    Dim line_name As String
    Dim bws As Worksheet
    
    name = "糸魚川市"
    Set ws = ThisWorkbook.Worksheets(name)
    Set bws = ThisWorkbook.Worksheets("ボタン")
    ws.Range("B4:H18").AutoFilter 4, bws.Range("H10").Value
End Sub

VBAマクロで、「ボタン」シートのH10セルに「えちごトキめき鉄道」の値を選択して実行すると下記の画像のように「えちごトキめき鉄道」の駅名のみ表示されます。

フィルタの解除

フィルタの解除のVBAソースコードです。

'フィルタが設定されていれば解除する
Sub Filter_clear()
    Dim ws As Worksheet
    Dim name As String
    Dim line_name As String
    Dim bws As Worksheet
    
    name = "糸魚川市"
    Set ws = ThisWorkbook.Worksheets(name)
    Set bws = ThisWorkbook.Worksheets("ボタン")
    If ws.AutoFilterMode = True Then
        ws.Range("B4:H18").AutoFilter
    End If
End Sub

VBAマクロを実行すると、画像のようにフィルタが解除されます。

最後に

ソート、フィルタの使い方、解除の仕方のVBAマクロを紹介しました。是非VBAマクロに挑戦してみてください。

Discussion