Home » ExcelVBA Rangeオブジェクト » セル結合 » MergeCells = Trueでセル結合できない

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

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

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

MergeCellsプロパティかMergeメソッドでセル結合できる

Excel VBA(Visual Basic for Applications)からセルを結合するには、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の前はセル範囲を指定する

実際のプロシージャを見ないと断定できませんが「.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の前に書かれているオブジェクト式をよく確認してみてください。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » セル結合 » MergeCells = Trueでセル結合できない

TrackBack:0

TrackBack URL

Home » ExcelVBA Rangeオブジェクト » セル結合 » MergeCells = Trueでセル結合できない

「セル結合」の記事一覧

検索


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

.