Home » Excel VBA Rangeオブジェクト » 結合セル » VBAの「.MergeCells = True」でセルが結合できない

VBAの「.MergeCells = True」でセルが結合できない

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

「エクセル vba mergecells = true 結合されない」
という検索で、このサイト『インストラクターのネタ帳』へのアクセスがあることに気づきました。

MergeCellsかMergeでセルを結合できる

Excel VBAでセルを結合するには、RangeオブジェクトのMergeCellsプロパティをTrueにするか、

MergeCells = Trueでセル結合できない

RangeオブジェクトのMergeメソッドを、

MergeCells = Trueでセル結合できない

使用します。

[スポンサードリンク]

例えば、下記のマクロを実行すると、A1:C1セル・A2:C2セルそれぞれが結合されます。

Sub セルを結合する()

 Range("A1", "C1").MergeCells = True
 Range("A2", "C2").Merge

End Sub

「エクセル vba mergecells = true 結合されない」
という検索をなさった方は、上記マクロの、
 Range("A1", "C1").MergeCells = True
のようなコードが上手く動かなくて、その原因を探してらしたのでしょう。

MergeCellsやMergeの前はセル範囲を表すRangeを指定

実際のプロシージャを見ないと断定できませんが「.MergeCells = True」の前の、Rangeオブジェクトを指定する記述に、何らかのミスがあったのだろうと推測しています。

セル結合は、複数のセルを結合する処理ですから、MergeCellsでもMergeメソッドでも、その前の記述は、セル範囲を表すRangeオブジェクトを表すものである必要があります。

「xls.activecell.mergecells 結合されない」
といった検索でのアクセスもあります。
この検索キーワードを使った方の場合は、結合されない理由が明確です。

ActiveCellプロパティは、あくまでも1個のセルを表すRangeしか取得できません。

もしも選択されているセル範囲を結合したかったのなら、
  ActiveCell.MergeCells = True
ではなく、
  Selection.MergeCells = True
といったオブジェクト式にする必要があります。

先ほどのマクロでは、
  Range("A1", "C1").MergeCells = True
というオブジェクト式をご紹介しましたが、Rangeプロパティに引数を2つ指定する記述が曖昧な方の場合、うっかり、
  Range("A1, C1").MergeCells = True
と書いてしまったりする可能性も考えられます。

VBAからセル結合が上手くできないという方は、MergeCellsやMergeの前に書かれているオブジェクト式をよく確認してみてください。

最終更新日時:2023-05-26 14:03

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » 結合セル » VBAの「.MergeCells = True」でセルが結合できない

「結合セル」の記事一覧

検索


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

.