|
お世話になっております。
現在、保存の直前にシートをオートフィルタでソートするようにVBAを作成しています。
しかし、ソートせずに保存するよりもファイルサイズが大きくなってしまっており、これを解消したいと考えています。
下記の様に、保存前に標準モジュールに作成したSorting()を呼び出し、対象のシートを昇順でソートしています。
コードの書き方など、おかしい箇所がありますでしょうか。
よろしくお願いいたします。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call sorting(SheetName)
End Sub
Sub sorting(sName As String)
ActiveWorkbook.Worksheets(sName).AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets(sName).AutoFilter.Sort.SortFields.Add Key _
:=Range("B8"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets(sName).AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
|
|