Home » Excel VBA Rangeオブジェクト » 結合セル » Excel VBAのResize(2, 1).Mergeとは

Excel VBAのResize(2, 1).Mergeとは

対象:Excel2010, Excel2013, Windows版Excel2016

「resize(2, 1).merge意味」
という検索キーワードで、このサイト『インストラクターのネタ帳』へのアクセスがありました。

「〇〇.Resize(2, 1).Merge」といったコードをどこかで見かけ、その意味を調べていらしたのでしょう。

「resize merge マクロ」
のようなキーワードでのアクセスも時折あります。
これも同じくRange.ResizeプロパティとRange.Mergeメソッドを組み合わせたコードの意味を調べていらしたのではないかと推測しています。

[スポンサードリンク]

Range.Mergeメソッドの基本

まずRangeオブジェクトのMergeメソッドの基本を確認しましょう。

Range.Mergeはセルを結合するだけのメソッドです。

例えば、

Range("A1:A3").Merge

を実行するとA1:A3セルが結合されます。

これだけです。Range.Mergeメソッド自体は決して難しくありません。

Range.ResizeはRangeオブジェクトを返すプロパティ

RangeオブジェクトのResizeプロパティは、Rangeオブジェクトのサイズを変更するプロパティで、サイズ変更されたセル範囲を表すRangeオブジェクトを返します。

第1引数には行数を、第2引数には列数を指定します。

拙著『いちばんやさしいExcel VBAの教本』のLesson 52で、プロパティには2種類あることをお伝えしています。

プロパティは2種類あることを知っておきましょう

Range.Resizeは2種類のプロパティのうち、オブジェクトを返すほうのプロパティで、コードが実行されるとサイズ変更されたセル範囲を表すRangeオブジェクトを返します。

Range.Resizeプロパティの挙動

具体的なRange.Resizeプロパティの挙動を確認しましょう。

例えば

Cells(1, 1).Resize(2, 1)

は、Cells(1, 1)で取得したA1セルを基準にして、サイズを2行1列に変更した、A1:A2セルを表すRangeオブジェクトを返します。

これだけでは挙動を確認し辛いので、Range.Selectメソッドを組み合わせてみます。
「Cells(1, 1).Resize(2, 1)」にRange.Selectメソッドを組み合わせた、

Cells(1, 1).Resize(2, 1).Select

を実行するとA1:A2セルが選択されます。

「Cells(1, 1).Resize(2, 1)」がA1:A2セルを表すRangeオブジェクトを返し、そのRangeオブジェクトを選択するSelectメソッドが実行されたからです。

Range,Resizeプロパティの引数を変更した

Cells(1, 1).Resize(3, 1).Select

を実行すると、A1:A3セルが選択され、

Cells(1, 1).Resize(1, 3).Select

を実行すると、行数は変更されず列数だけが「3」に変更されるのでA1:C1セルが選択されます。

「Cells(1, 1)」を、別のRangeオブジェクトを返すプロパティに変更することもできます。例えば、

ActiveCell.Resize(2, 1).Select

を、G7セルがアクティブな状態で実行すれば、「ActiveCell.Resize(2, 1)」でG7セルを基準に2行・1列のセルを表すRangeオブジェクトが取得できるので、G7:G8セルが選択されます。

Resize(2, 1).Mergeの挙動

で、「〇〇.Resize(2, 1).Merge」は、

Cells(1, 1).Resize(2, 1).Select

や、

ActiveCell.Resize(2, 1).Select

の最後が、Range.Selectメソッドから、この記事の最初に確認したRange.Mergeメソッドになっているだけです。

Cells(1, 1).Resize(2, 1).Merge

は「Cells(1, 1).Resize(2, 1)」が、A1:A2セルを表すRangeオブジェクトを返し、そのRangeオブジェクトに対してResizeメソッドを実行するので、A1:A2セルが結合されます。

ActiveCell.Resize(2, 1).Merge

は「ActiveCell.Resize(2, 1)」が、アクティブセルを基準に2行1列のセル範囲を表すRangeオブジェクトを返し、そのRangeオブジェクトに対してMergeメソッドを実行してセル結合が行われます。

最終更新日時:2023-05-25 16:23

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » 結合セル » Excel VBAのResize(2, 1).Mergeとは

「結合セル」の記事一覧

検索


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

.