VBA Step2 2

(4).処理2:[並び替え]の処理

[並び替え処理]には「マクロの記録」を流用します。
その中には今までの説明にない命令(ステートメント)も出てきていますが、変更が必要な箇所のみ分かれば問題なく、その他についてはVBAに慣れてからでもよいでしょう。
それでは復習も兼ね、並び替えに関するマクロの記録を作成します。

 

「マクロの記録」作成

1).[開発]タブ・[マクロの記録]をクリックする。
マクロの記録の開始

 

2).「マクロ名」の変更は任意とし、[OK]をクリックする。
マクロ名の確認

 

3).シート[検索結果]の全データを選択(セル[A1]の斜め左上)・[データ]タブ・[並び替え]をクリックする。
表示されるダイアログボックス[並び替え]の[最優先されるキー:日付・セルの値・古い順]を選択・[OK]をクリックする。(図クリックで拡大表示)

並び替え操作

 

4).[記録終了]をクリックする。
マクロの記録の終了
以上の操作で[マクロの記録]が終了しましたので、作成されたVBAを次の操作で確認しましょう。

 

「マクロの記録」確認

1).[マクロ]をクリックする。
マクロの記録の確認

 

2).上記(1)-2)で指定した[マクロ名](この場合は[Macro1])を選択し、[編集]をクリックする。
確認するマクロの選択

 

3).[標準モジュール]・[Moddule5]に、プロシージャ[Sub Macro1 ~ End Sub]が表示される。(このマクロの記録内容はモジュール[マクロ_Step2_並び替え]にも入っています)(図クリックで拡大表示)

確認するマクロのVBA

※.この例では[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になります。

 

 
  このエントリーをはてなブックマークに追加

 

スポンサーリンク