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

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) ' 右へ移動して、左から形式をコピー

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

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

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

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

セルの範囲に挿入する

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


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

引数を指定しないとき挿入後にどちらの方向に移動するかは、範囲が縦長のときは右方向へ、それ以外のときは下方向へ移動します。

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

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

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

sheet1

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

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

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


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

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


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