お疲れ様です
髙﨑です。
今年も残すところ1ヶ月ですね
あっという間に11月も過ぎ去った気がします。
本日は自分がほぼ初めてまともに作ったであろうマクロ(VBA)であろう
Excelシートに自動で昇順ソートをかけるマクロについて書きます。
以下がコードとなります。
1.Sub ソート用_Click()
2.If ActiveWorkbook.Worksheets(“シート名”).FilterMode Then _
3.ActiveWorkbook.Worksheets(“シート名”).ShowAllData
4.ActiveWorkbook.Worksheets(“シート名”).Range(Range(“A1:E1”), Cells(Rows.Count, 1).End(xlDown)).Select
5.ActiveWorkbook.Worksheets(“シート名”).Sort.SortFields.Clear
6.ActiveWorkbook.Worksheets(“シート名”).Range(Range(“A1:E1”), Cells(Rows.Count, 3).End(xlDown)).Sort Key1:=Range(“A1”), Order1:=xlAscending
7.End Sub
1.Sub XXXX_Click()→マクロの見出し、Sub~End Subで一つのマクロ(プロシージャ)
2.対象のシートにフィルターがかかっているか確認します。
FilterMode Then _→フィルター有無の確認
3.対象のシートにフィルターがかかっていた場合、フィルター解除します。
ShowAllData→全てのセルを表示する=フィルター解除
4.対象のシートのA1~E1セルの最終行まで選択します。
Range(“A1:E1”), →A1~E1セル、Cells(Rows.Count, 1).End(xlDown)→最終行まで
5.ソートする際の並べ替えの条件を一旦クリアします。
Sort.SortFields.Clear →並べ替えの条件をクリア
6.A1セルを基準に昇順にソートをかけます。
Sort Key1:=Range(“A1”)→A1セルを基準にする
Order1:=xlAscending →昇順にソート
7.End Sub→マクロを終了
セルの値が入っている最終行を選択するにはどうすれば良いか
最初は苦戦しましたが、わかってみればそんなに難しくありませんでした。
最終行選択は他のマクロでも使えるので便利です。
簡単なものになりますが、今回は以上となります。