サイトについて      連絡先   検索

VBA セルを結合する

はじめに

Excel VBA マクロのセルを結合する方法を紹介します。

Range.Merge メソッドまたは Cells.Merge メソッドでセルを結合できます。

Range.MergeCells プロパティでも結合できます。

  • 目次
    • セルを結合する
    • 指定したシートのセルを結合する

セルを結合する

Range の引数にセル名を指定すると、そのセルの範囲を結合できます。

セル「A1」~「B2」を結合するにはRange("A1:B2").Mergeを入力します。


Range("A1:B2").Merge
3

Marge の引数に True を指定すると、行単位で結合できます。


Call Range("A1:B2").Merge(True)
1

MergeCells プロパティに True を指定しても結合できます。


Range("A1:B2").MergeCells = True

どの方法でも、結合するセルに違う値が入っているときはメッセージが表示されます。

2

これを表示させないためにはApplication.DisplayAlerts = Falseを入力します。結合したら True に戻します。


Application.DisplayAlerts = False ' メッセージを非表示
Range("A1:B2").Merge
Application.DisplayAlerts = True  ' メッセージを表示

指定したシートのセルを結合する

シートを指定するには Worksheets の引数にシート名またはインデックスを指定します。

Sheet1 を指定するにはWorksheets("Sheet1")またはWorksheets(1)を入力します。

sheet1

' Sheet1 のセル「A1」~「B2」を結合
Worksheets("Sheet1").Range("A1:B2").Merge
Worksheets(1).Range("A1:B2").Merge

' Sheet2 のセル「A1」~「B2」を結合
Worksheets("Sheet2").Range("A1:B2").Merge
Worksheets(2).Range("A1:B2").Merge

Sheet1 に Range や Cells を入力すると、自身のシートのセルになります。自身を表すMe.が省略されています。


' どちらも同じコード
Range("A1").Value = "Sheet1"
Me.Range("A1").Value = "Sheet1"

標準モジュールに Range や Cells を入力すると、アクティブなシートのセルになります。アクティブシートを表すActiveSheet.が省略されています。


' どちらも同じコード
Range("A1").Value = "アクティブ"
ActiveSheet.Range("A1").Value = "アクティブ"
  • 目次
    • セルを結合する
    • 指定したシートのセルを結合する