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

VBA セルを挿入する

はじめに

Excel VBA のセルを挿入する方法を紹介します。

Range.Insert メソッドか Cells.Insert メソッドでセルを挿入できます。

セルを挿入する

Range の引数にセル名を指定すると、そのセルに挿入できます。

セル「A1」に挿入するには Range("A1").Insert のように指定します。

Range("A1").Insert
1

Cells の引数にセルの行と列の番号を指定すると、そのセルに挿入できます。

行「2」、列「A」に挿入するには Cells(2, 1).Insert のように指定します。

Cells(1, 1).Insert ' A1
Cells(2, 1).Insert ' A2
Cells(1, 2).Insert ' B1
Cells(2, 2).Insert ' B2

挿入後にセルをどちらに移動するかを引数で指定できます。

Call Range("A1").Insert(xlShiftToRight) ' 右へ移動
Call Range("A1").Insert(xlShiftToRight, xlFormatFromLeftOrAbove) ' 右へ移動して、左から形式をコピー
2

第一引数には次のものがあります。

定数名 説明
xlShiftDown-4121右方向へシフト
xlShiftToRight-4161下方向へシフト

第二引数には次のものがあります。

定数名 説明
xlFormatFromLeftOrAbove0上か左のセルから形式をコピー
xlFormatFromRightOrBelow1下か右のセルから形式をコピー

セルの範囲に挿入する

セルの範囲「A1」~「B2」に挿入するには Range("A1:B2").Insert または Range("A1", "B2").Insert のように指定します。

Range("A1:B2").Insert
Range("A1", "B2").Insert
3

指定したシートのセルに挿入する

Range.Insert とコードに書くと、アクティブなシートのセルに挿入します。これは ActiveSheet.Range.Insert の ActiveSheet が省略されています。

' どちらも同じコード
Range("A1").Insert
ActiveSheet.Range("A1").Insert

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

1

Sheet1 のシートを指定するには、Sheets("Sheet1") か Sheets(1) と書きます。

' Sheet1 のセル「A1」に挿入
Sheets("Sheet1").Range("A1").Insert
Sheets(1).Range("A1").Insert

' Sheet2 のセル「A1」に挿入
Sheets("Sheet2").Range("A1").Insert
Sheets(2).Range("A1").Insert

関連ページ