(4).処理2:[並び替え]の処理
[並び替え処理]には「マクロの記録」を流用します。
その中には今までの説明にない命令(ステートメント)も出てきていますが、変更が必要な箇所のみ分かれば問題なく、その他についてはVBAに慣れてからでもよいでしょう。
それでは復習も兼ね、並び替えに関するマクロの記録を作成します。
「マクロの記録」作成
1).[開発]タブ・[マクロの記録]をクリックする。
2).「マクロ名」の変更は任意とし、[OK]をクリックする。
3).シート[検索結果]の全データを選択(セル[A1]の斜め左上)・[データ]タブ・[並び替え]をクリックする。
表示されるダイアログボックス[並び替え]の[最優先されるキー:日付・セルの値・古い順]を選択・[OK]をクリックする。(図クリックで拡大表示)
4).[記録終了]をクリックする。
以上の操作で[マクロの記録]が終了しましたので、作成されたVBAを次の操作で確認しましょう。
「マクロの記録」確認
1).[マクロ]をクリックする。
2).上記(1)-2)で指定した[マクロ名](この場合は[Macro1])を選択し、[編集]をクリックする。
3).[標準モジュール]・[Moddule5]に、プロシージャ[Sub Macro1 ~ End Sub]が表示される。(このマクロの記録内容はモジュール[マクロ_Step2_並び替え]にも入っています)(図クリックで拡大表示)
※.この例では[Moddule5]に入っていますが、新規にマクロの記録作成時は、毎回[Moddule5]とは限りません。
作成されたVBAの内容は次の通りですが、全てを理解する必要はありません。
このVBAは、作成条件を[会社:C社]として作成していますが、各社のデータ件数は異なります。データ件数に関係する命令を「変数」に変更すれば、他の会社のデータでも利用可能なVBAになりますので、赤字の部分に注目しましょう。
Sub Macro1()
'
' Macro1 Macro
'
Sheets("検索結果").Select
Cells.Select
ActiveWorkbook.Worksheets("検索結果").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("検索結果").Sort.SortFields.Add Key:=Range("A2:A42"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("検索結果").Sort
.SetRange Range("A1:H42")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
上記赤字の部分に「変数」を使えば、処理2のVBAになります。