一般社団法人 全国個人事業主支援協会

COLUMN コラム

お疲れ様です
髙﨑です。
今年も残すところ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→マクロを終了

セルの値が入っている最終行を選択するにはどうすれば良いか
最初は苦戦しましたが、わかってみればそんなに難しくありませんでした。
最終行選択は他のマクロでも使えるので便利です。
簡単なものになりますが、今回は以上となります。

The following two tabs change content below.

takasaki_m0620

最新記事 by takasaki_m0620 (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア