🍓
糸魚川市内の駅名をソート、フィルタ、フィルタ解除するマクロ
はじめに
糸魚川市内にある駅のデータを使ってエクセル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