Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1305 / 13644 ツリー ←次へ | 前へ→

【75172】VBAでオートフィルタ後に保存するとファイルサイズが大きくなる らいおん 13/12/25(水) 22:40 質問[未読]
【75173】Re:VBAでオートフィルタ後に保存するとファ... γ 13/12/26(木) 6:40 発言[未読]

【75172】VBAでオートフィルタ後に保存するとファ...
質問  らいおん  - 13/12/25(水) 22:40 -

引用なし
パスワード
   お世話になっております。

現在、保存の直前にシートをオートフィルタでソートするように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

【75173】Re:VBAでオートフィルタ後に保存するとフ...
発言  γ  - 13/12/26(木) 6:40 -

引用なし
パスワード
   こんにちは。
> 現在、保存の直前にシートをオートフィルタでソートするようにVBAを作成しています。
> しかし、ソートせずに保存するよりもファイルサイズが大きくなってしまっており、
> これを解消したいと考えています。
実現したいことを明確にしたほうがよろしいかと思います。
必要なことは何ですか?
ソートして保存することですか?
オートフィルターも必要なのですか?その理由は?
必要なことならファイルサイズが増えても致し方ないです。
手作業でしようがマクロでしようが、ファイルが増大することは同じじゃないですか?
まず、何を目的にしているのかを明確にしましょう。

>コードの書き方など、おかしい箇所がありますでしょうか。
まず、そのコードがエラーにならずに機能しているかどうかを教えてください。
オートフィルターが掛かっていなければエラーになるとか、
シートの指定は実際どうなっているのか、とか気になりますが、
それらが常にクリアされていて、問題なく機能するということならOKでしょう。

1305 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free