Excel VBA入門 | 基本形「オブジェクト.メソッド 引数 := 値」の派生形(その1)

Excel VBA入門

更新日:2018年1月7日 公開日:2018年1月6日

Excel VBAを学ぶ上で、文法の基本を学ぶことは言うまでもなく重要です。

ここではオブジェクト式のうち、「オブジェクト.メソッド 引数 := 値」の派生形について解説します。

※オブジェクト式や基本形「オブジェクト.メソッド 引数 := 値」については「Excel VBA入門 | オブジェクト式とプロパティ、メソッド」をご参照ください。引数の設定方法などについても解説しています。

【注意事項】オブジェクト式の派生形について
サイト管理者の実務経験から帰納的に派生形としてまとめています。従って当サイト独自の考え方に基づくものです。また実務経験に基づくものであるため、不定期に更新する可能性があります。この点をご理解頂いたうえでお読みください。

1.「オブジェクト.メソッド 引数 := 値」の派生形

「オブジェクト.メソッド 引数 := 値」の派生形には、次の式があります。

今回解説→【派生形2-1】 オブジェクト.メソッド 引数1 := 値1 , 引数2 := 値2 ・・・ , 引数N := 値N
【派生形2-2】 オブジェクト1.オブジェクト2 ・・・ .オブジェクトN .メソッド 引数 := 値
【派生形2-3】 オブジェクト.メソッド 引数 := オブジェクト

【補足】もう一つのオブジェクト式(基本形)である、「オブジェクト.プロパティ = 値」の派生形には、次の式があります。ご参考ください。

【派生形1-1】 オブジェクト1.プロパティ1 = オブジェクト2.プロパティ2
【派生形1-2】 オブジェクト1.オブジェクト2・・・.オブジェクトN.プロパティ = 値
【派生形1-3】 オブジェクト.プロパティ1.プロパティ2 ・・・ .プロパティN = 値
【派生形1-4】 オブジェクト.プロパティ = 関数( 引数1,引数2,・・・引数N )

2.【派生形2-1】 オブジェクト.メソッド 引数1 := 値1 , 引数2 := 値2 ・・・ , 引数N := 値N

Nは数字を表します。

この派生形は、メソッドの引数を複数設定するケースです。

この派生形で使用される代表的なプロパティとして、RangeオブジェクトのSortメソッドが存在します。

3.使用例

次の例では、ワークシート上のA1からA8までの範囲セルを指定して、「数字Sort」をキー項目として数字を昇順で並べ替えます。

【VBA実行前】

Excel VBA オブジェクト式の派生形

【プログラム】

Sub 数字を昇順に並べ替え()

Range("A1:A8").Sort Key1:="数字Sort", Order1:=xlAscending, Header:=xlYes '(1)

End Sub

【VBA実行後】

Excel VBA オブジェクト式の派生形

【解説】

(1)Range("A1:A8").Sort Key1:="数字Sort", Order1:=xlAscending, Header:=xlYes
→RangeオブジェクトのSortメソッドを使用して、セルA1を起点として、A1からA8までの範囲セルを指定して、「数字Sort」をキー項目として数字を昇順で並べ替えます。

派生形「オブジェクト.メソッド 引数1 := 値1 , 引数2 := 値2 ・・・ , 引数N := 値N」の典型例になります。

Rangeオブジェクトは、「Range("セル")」でワークシート上のセルを表します。「"セル"」の部分には「"A2"」のように、「"(ダブルクォーテーション)」でセル記号を囲みます。

「"セル"」部分には範囲セルを表す「"セル:セル"」を設定することも可能です。今回の使用例ではRange("A1:A8")で、セルA1からA8までの範囲のセルを表しています。

SortメソッドはRangeオブジェクトで指定したセルを並べ替える操作をします。

Range("A1:A8").Sortで、並べ替える対象となるセルがA1からA8までの範囲セルであることを表しています。

次に引数ですが、Microsoftのサイトである「Excel VBAリファレンス」で調べると分かりますが、Sortメソッドには10以上もの引数(パラメータ)が用意されています。

今回の使用例では、その引数のうちKey1、Order1、Headerの3種類の引数を使用しています。

Key1は、並べ替える基準となる項目を設定します。今回の使用例では、項目は「数字Sort」だけですが、複数の列に様々なデータが入ったデータベースを並べ替える場合には、複数の項目が存在するため、並べ替える基準となる項目を設定することは重要です。

今回の使用例では、Key1:="数字Sort"とします。「"数字Sort"」と値が文字列の場合には、「"(ダブルクォーテーション)」で文字列を囲む必要があります。

次に引数Order1で昇順か降順かの選択をします。今回は昇順のため、「Order1:=xlAscending」としますが、降順であれば「Order1:=xlDescending」と設定します。

最後に引数Headerですが、先頭行が項目である場合には「Header:=xlYes」とします。

その他、引数のコーディング(記述)ですが、「引数 := 」の部分は省略して記述することも可能です。その他引数に関するコーディングについては、「Excel VBA入門 | オブジェクト式とプロパティ、メソッド」をご参照ください。