プログラムなどで処理するためには使って欲しくないけれど、ヒトが見るための資料を作成するのに便利なExcelの機能があります。
セル結合です。
セルを右クリックした表示されるミニツールバーにも[セルを結合して中央揃え]コマンドが用意されていることが、
セル結合を使っている方が多いことを表しています。
そんなセル結合について
「excel vba セル結合されているセルにセルを追加」
という検索キーワードでのアクセスがあることに気付きました。
既に結合されているセルが存在するときに、その結合範囲を広げたいということでしょう。
データを目視確認しながら、結合セルの範囲を少しずつ広げたいというニーズは確かにありそうです。
結合セルの範囲を広げるサンプルマクロ
以下のSubプロシージャを実行すると、アクティブセルから下方向に、結合範囲が拡張されていきます。
Range(ActiveCell, ActiveCell.Offset(1, 0)).Merge
End SubEnd Sub
サンプルマクロで利用しているオブジェクトを取得するコードについて
拙著『いちばんやさしい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 » Excel VBA Rangeオブジェクト » 結合セル » 結合セルの範囲を広げるExcelマクロ