8.CSVのデータをキレイにお化粧1
 このマクロの主の部分です。帳票は店舗ごとの売上げ合計の一覧ですが、CSVデータは店舗ごとの並びではありませんので並び替えが必要です。また、CSVデータは各店舗ごとの売上げ明細なので、店舗ごとの集計も必要です。
 しかし、集計をするには並び替えが必要です。というわけで、まずはデータの並び替えから行ってみましょう。
プロシジャ「帳票編集」/まずはデータの並べ替え処理
 まずは、プロシジャを見てください。まずは、データの並べ替えを行う所まで作りました。

Sub 帳票編集()

  'CSVデータの並べ替え(キーはB列/店舗コード)
  Workbooks("uriage.csv").Activate
  Workbooks("uriage.csv").Worksheets("uriage").Range("A1:M10000").Sort _
    Key1:=Range("B1") _
   , Order1:=xlAscending _
   , Header:=xlGuess _
   , MatchCase:=False _
   , Orientation:=xlTopToBottom _
   , SortMethod:=xlPinYin

End Sub

 最初に、CSVファイルのデータを並び替えます。並び替えは、B列(店舗コード)の昇順(小さい順)で行います。並び替えには指定した範囲(Range("A1:M10000"))に対してsortというメソッドで行います。

 なお、.Sortメソッドについては、エクセルマクロTipsの7.5 並べ替えをしてみようをどうぞ。
ソートでエラーになる?
 ところで、Workbooks("uriage.csv").Activateという行があります。
 これは、指定したワークブックが エクセルの中で一番手前に表示されるという意味です。なぜここに入れているかというとこれが入っていないと、Sortメソッドがうまく行かないときがあるのですよ(泣)
 エクセルの仕様(要はバグ)ですかね。。。
テストしてみよう!
 またまた、ここまでの内容で動かしてみましょう。帳票作成プロシジャを実行します。
 うまく動いたらCSVファイルを見てください。CSVデータがこのようにきちんと並び替えされたでしょ?ただし、動かす前には必ずワークブックを保存することをお忘れ無く!

 なお、テストが終わったらCSVファイルと新しいワークブックは閉じてもかまいません。保存しますか?と聞かれても、これらについては、きっぱりいいえと答えましょう。

 ※印刷設定プロシジャの呼び出し(Call 印刷設定)でプロシジャが無いという内容のエラーが出ますが、これは気にしないでください。ここまでの状態だと、まだ作っていないため必ず出ます。でも、それ以外のエラーが出たときは気にしてください(汗)
Copyright(C) 1999-2006 結城圭介。 All rights reserved