「エクセル vba mergecells = true 結合されない」
という検索で、このサイト『インストラクターのネタ帳』へのアクセスがあることに気づきました。
MergeCellsかMergeでセルを結合できる
Excel VBAでセルを結合するには、RangeオブジェクトのMergeCellsプロパティをTrueにするか、
RangeオブジェクトのMergeメソッドを、
使用します。
例えば、下記のマクロを実行すると、A1:C1セル・A2:C2セルそれぞれが結合されます。
Range("A1", "C1").MergeCells = True
Range("A2", "C2").Merge
「エクセル 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」でセルが結合できない