Home » ExcelVBA Rangeオブジェクト » 結合セル » 結合セルの範囲を広げるExcelマクロ

結合セルの範囲を広げるExcelマクロ

対象:Excel2010, Excel2013, Windows版Excel2016

プログラムなどで処理するためには使って欲しくないけれど、ヒトが見るための資料を作成するのに便利なExcelの機能があります。

セル結合です。

セルを右クリックした表示されるミニツールバーにも[セルを結合して中央揃え]コマンドが用意されていることが、

ミニツールバー:[セルを結合して中央揃え]コマンド

セル結合を使っている方が多いことを表しています。

そんなセル結合について
「excel vba セル結合されているセルにセルを追加」
という検索キーワードでのアクセスがあることに気付きました。

既に結合されているセルが存在するときに、その結合範囲を広げたいということでしょう。

データを目視確認しながら、結合セルの範囲を少しずつ広げたいというニーズは確かにありそうです。

結合セルの範囲を広げるサンプルマクロ

以下のSubプロシージャを実行すると、アクティブセルから下方向に、結合範囲が拡張されていきます。

Sub 結合セルの範囲を下方向に広げる()
 Range(ActiveCell, ActiveCell.Offset(1, 0)).Merge
End SubEnd Sub

サンプルマクロで利用しているオブジェクトを取得するコードについて

Lesson 59「Rangeオブジェクトを取得するプロパティについて学習しましょう」

拙著『いちばんやさしいExcel VBAの教本』の、Lesson 59「Rangeオブジェクトを取得するプロパティについて学習しましょう」でもお伝えしたとおり、Rangeプロパティには引数を2つ指定できます。

Rangeプロパティの、1つ目の引数に「ActiveCell」を、2つ目の引数に「ActiveCell.Offset(1, 0)」を指定したのが、
  Range(ActiveCell, ActiveCell.Offset(1, 0)).Merge
の部分です。

1つ目の引数に指定された「ActiveCell」でアクティブなセルを表すRangeオブジェクトが、2つ目の引数に指定された「ActiveCell.Offset(1, 0)」でアクティブなセルから1行0列オフセットした(ずれた)セルを表すRangeオブジェクトを取得できます。

ですから「Range(ActiveCell, ActiveCell.Offset(1, 0))」で、アクティブセルと、アクティブセルの1つ下のセルを含むセル範囲を表すRangeオブジェクトが取得できます。

そのセル範囲に対して、RangeオブジェクトのMergeメソッドを実行することで結合を行っています。

横方向に結合範囲を広げたい場合

縦方向に結合範囲を広げたいというケースが多いように感じますけれど、
  Range(ActiveCell, ActiveCell.Offset(0, 1)).Merge
とすれば、横方向に結合範囲を広げられます。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » 結合セル » 結合セルの範囲を広げるExcelマクロ

「結合セル」の記事一覧

検索


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

.