Home » エクセルマクロ・Excel VBAの使い方 » Sortオブジェクト » Sort.Applyとは

対象:Excel 2010, Excel 2013, Windows版Excel 2016

「vba sort applyとは」
という検索キーワードでのアクセスに気づきました。

2007以降のExcelで、並べ替え操作をマクロ記録すると、SortオブジェクトのApplyメソッドを使った、

オブジェクトブラウザーのSort.Apply

VBAのコードが作られます。

[スポンサードリンク]

このSort.Applyメソッドについて調べていた方による検索です。

ステップ実行しながらよく観察しましょう

Sort.Applyメソッドのヘルプには、
「現在適用されている並べ替え状態に基づいて範囲を並べ替えます。」
という記述がありますが、この説明ではピンと来ないということでしょう。

ヘルプを読んだだけでピンと来なくても、ワークシート上のデータをよく観察しながらステップ実行すると、意味がわかるはずです。

下図のような単純な表で並べ替えが行われる様子を、

データのサンプル

観察しつつステップ実行してみましょう。

ステップ実行してSort.Applyメソッドの役割を確認する

ワークシート上のデータと、VBEのコードウィンドウが両方見える状態にしておいてから、以下のSubプロシージャをステップ実行します。

Sub SortオブジェクトのApplyメソッドを確認する()
 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")

 srt.Apply
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
の行が実行されると、下図のように並べ替えが実行されます。

Sort.Apply実行後

これがヘルプに書かれている、
「現在適用されている並べ替え状態に基づいて範囲を並べ替えます。」
です。

マクロ学習でもステップ実行を活用しましょう

2018年1月に発売となった拙著『いちばんやさしいExcel VBAの教本』では、ステップ実行を何度も利用しています。Lesson 26「Subプロシージャを1行ずつ実行するステップ実行を活用しましょう」には、
書籍などで紹介されているマクロを、ただ読むだけでは理解できないこともありますが、そのような場合でも、1行ずつステップ実行して、コードとその行の実行結果を見比べることで、意味が理解できるケースがよくあります。

と書きました。

この記事で解説したSort.Applyメソッドも、
「1行ずつステップ実行して、コードとその行の実行結果を見比べることで、意味が理解できる」
一例です。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Sortオブジェクト » Sort.Applyとは

「Sortオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.