「vba sort applyとは」
という検索キーワードでのアクセスに気づきました。
2007以降のExcelで、並べ替え操作をマクロ記録すると、SortオブジェクトのApplyメソッドを使った、
VBAのコードが作られます。
このSort.Applyメソッドについて調べていた方による検索です。
ステップ実行しながらよく観察しましょう
Sort.Applyメソッドのヘルプには、
「現在適用されている並べ替え状態に基づいて範囲を並べ替えます。」
という記述がありますが、この説明ではピンと来ないということでしょう。
ヘルプを読んだだけでピンと来なくても、ワークシート上のデータをよく観察しながらステップ実行すると、意味がわかるはずです。
下図のような単純な表で並べ替えが行われる様子を、
観察しつつステップ実行してみましょう。
ステップ実行してSort.Applyメソッドの役割を確認する
ワークシート上のデータと、VBEのコードウィンドウが両方見える状態にしておいてから、以下のSubプロシージャをステップ実行します。
Dim srt As Sort
Set srt = ActiveSheet.Sort
srt.SortFields.Clear
srt.SetRange Range("A1:B6")
srt.Header = xlYes
srt.SortFields.Add Key:=Range("B1")
End Sub
既存の並べ替え条件をクリアして、
srt.SortFields.Clear
A1:A6セルを並べ替え範囲に、
srt.SetRange Range("A1:B6")
先頭行をヘッダーに指定し、
srt.Header = xlYes
B列のデータで並べ替えを設定しています。
srt.SortFields.Add Key:=Range("B1")
ここまでをショートカットキー[F8]でステップ実行を進めても、下図のとおりワークシート上には何の変化もありません。
しかし、SortオブジェクトのApplyメソッドを呼ぶ、
srt.Apply
の行が実行されると、下図のように並べ替えが実行されます。
これがヘルプに書かれている、
「現在適用されている並べ替え状態に基づいて範囲を並べ替えます。」
です。
マクロ学習でもステップ実行を活用しましょう
2018年1月に発売となった拙著『いちばんやさしいExcel VBAの教本』では、ステップ実行を何度も利用しています。Lesson 26「Subプロシージャを1行ずつ実行するステップ実行を活用しましょう」には、書籍などで紹介されているマクロを、ただ読むだけでは理解できないこともありますが、そのような場合でも、1行ずつステップ実行して、コードとその行の実行結果を見比べることで、意味が理解できるケースがよくあります。
と書きました。
この記事で解説したSort.Applyメソッドも、
「1行ずつステップ実行して、コードとその行の実行結果を見比べることで、意味が理解できる」
一例です。
Home » エクセルマクロ・Excel VBAの使い方 » Sortオブジェクト » Sort.Applyとは