Home » Excel VBA Rangeオブジェクト » 結合セル » VBAで結合セルの行数・列数を取得する

VBAで結合セルの行数・列数を取得する

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

VBAで結合セルの行数・列数を取得する

「vba 結合セルの行数と列数を取得」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あります。

結合されたセルがあるときに、何行・何列のセルが結合されているのかを調べるには、どのようなコードを書けばいいのかを探している方による検索です。

[スポンサードリンク]

結合セルの行数・列数を取得するサンプルマクロ

以下のようなマクロで結合セルの行数・列数を取得できます。

Sub 結合セルの行数と列数を取得する()

 MsgBox ActiveCell.MergeArea.Rows.Count
 MsgBox ActiveCell.MergeArea.Columns.Count

End Sub

上記のマクロを実行すると、アクティブなセルが、2行・3列のセルを結合した状態だったときには、行数を表す「2」列数を表す「3」の順でメッセージボックスが表示されます。

アクティブなセルが結合セルではなかった場合には、行数を表す「1」列数を表す「1」の順でメッセージボックスが表示されます。

サンプルマクロで利用しているオブジェクト式について

RangeオブジェクトのMergeAreaプロパティで結合されているセル範囲を表すRangeオブジェクトを取得できますから、

VBAで結合セルの行数・列数を取得する

「ActiveCell.MergeArea」というオブジェクト式で、アクティブなセルの、結合されているセル範囲を表すRangeオブジェクトを取得できます。

RangeオブジェクトのRowsプロパティで行を表すRangeオブジェクトを取得できますから、

VBAで結合セルの行数・列数を取得する

「ActiveCell.MergeArea.Rows」というオブジェクト式で、アクティブなセルの、結合されているセル範囲の、行を表すRangeオブジェクトが取得できます。

最終的にRangeオブジェクトのCountプロパティを使った、

VBAで結合セルの行数・列数を取得する

「ActiveCell.MergeArea.Rows.Count」というオブジェクト式で、アクティブなセルの、結合されているセル範囲の、行を表すRangeオブジェクトのCountプロパティで、行を表すRangeオブジェクトの数、すなわち結合セルの行数を取得できます。

列数のほうは、行数と考え方は同じで、途中に登場するプロパティが列を表すRangeオブジェクトを返すColumnsになっているので、

VBAで結合セルの行数・列数を取得する

「ActiveCell.MergeArea.Columns.Count」というオブジェクト式で、アクティブなセルの、結合されているセル範囲の、列を表すRangeオブジェクトの数、なわち結合セルの列数を取得できるわけです。

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » 結合セル » VBAで結合セルの行数・列数を取得する

「結合セル」の記事一覧

検索


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

.