PR

【VBA】指定セルを含む結合セルを参照する

これで楽に!?VBA活用
記事内に広告が含まれています。

こんにちは、Ryoです。
指定したセルが含まれる結合セルの範囲や列数・行数はMergeAreaプロパティを利用することで取得することができますので、今回はその内容について書いていきます。

スポンサーリンク

1.サンプル概要

下の簡易的な表はサンプルとして準備したものですが、その中でセルA1からD1が結合されています。

「セルA1を含む」結合セル範囲を取得し、Addressプロパティでセルアドレスを求めてメッセージボックスで表示します。

また、同様の表でセルA1を含む列数を求めてメッセージボックスで表示したものが以下になります。

行数を求めることもできますので、セル結合範囲をA1~D2にしたもので行数を取得しメッセージボックスで表示してみます。

以上がサンプル概要になります。

2.サンプルコード

◆結合セル範囲の取得

Sub Sample1()
'※セルA1を含む結合セルのアドレスをメッセージ表示

 MsgBox "セルA1を含む結合セル範囲「 " & _
 Range("A1").MergeArea.Address(False, False) & " 」"

End Sub

指定セルを含む結合セルを参照するにはMergeAreaプロパティを利用します。

構文:オブジェクト.MergeArea

このプロパティを使用してセルA1を含む結合セル範囲を取得し、Addressプロパティでセルアドレスを取得してメッセージボックスで表示しています。

セルA1からD1までセル結合されていますので、セルB1やC1・D1を指定した記述でも同様の結果になります。

◆結合セルの列数取得

Sub Sample2()
'※セルA1を含む結合セルの列数をメッセージ表示

 MsgBox "結合セルの列数 : " & _
 Range("A1").MergeArea.Columns.Count & " 列"

End Sub

ここではセルA1を含む結合セル範囲の列数を求めるのでColumns.countを使用して取得しメッセージボックスで表示します。

◆結合セルの行数取得

Sub Sample3()
'セルA1を含む結合セルの行数をメッセージ表示

 MsgBox "結合セルの行数 : " & _
 Range("A1").MergeArea.Rows.Count & " 行"

End Sub

セルA1を含む結合セル範囲に対して行数を求めますのでRows.Countを使用して取得しメッセージボックスで表示します。

3.まとめ

処理する上では厄介なことも多いので個人的にはセル結合を多用しないのですが、便利な機能でもあるので結合されたセルは多々見かけますから扱い方を知っておくことで対処の幅も広がると思います。



結合セルの範囲や列数・行数などは上に書いたように簡単に取得できますので、機会があれば活用などをご検討くださいませ。

以上、指定セルを含む結合セルを参照する方法についてでした!今回の記事が何かの参考になれば幸いです。

Ryo

タイトルとURLをコピーしました