Insertメソッドを使うと、セルや範囲を任意の箇所に挿入することが可能です。
また、挿入した箇所に隣接したどのセルの書式を適用するのかも選択することができます。
Insertメソッドの使い方
基本
セル・範囲を挿入する
対象.Insert(Shift,CopyOrigin)
※引数は省略可能
対象.Insert(Shift,CopyOrigin)
※引数は省略可能
![insert1](https://sunagitsune.com/wp-content/uploads/2021/03/insert1.jpg)
単体セルを挿入したい場合、Range(“B2”).Insertのように挿入したい箇所を指定します。Cellsで指定してもOKです。
![insert2](https://sunagitsune.com/wp-content/uploads/2021/03/insert2.jpg)
これを実行すると、
![insert3](https://sunagitsune.com/wp-content/uploads/2021/03/insert3.jpg)
B2セルにセルが挿入され、B3~4のセルがひとつ下にズレます。
①単体セルの挿入時は、元々あったセルは下にスライドします。
また、②挿入されたセルは、押し出したのと逆方向のセルの書式を引き継ぎます。
①単体セルの挿入時は、元々あったセルは下にスライドします。
また、②挿入されたセルは、押し出したのと逆方向のセルの書式を引き継ぎます。
範囲指定
![insert4](https://sunagitsune.com/wp-content/uploads/2021/03/insert4.jpg)
範囲指定して、Range(“A1:B2”).Insertを実行してみます。
![insert5](https://sunagitsune.com/wp-content/uploads/2021/03/insert5.jpg)
結果はこうです。自動で下にスライドする挿入が選ばれ、押し出したのと逆方向に書式のあるセルがないので、挿入したセルには書式が適用されません。
![insert6](https://sunagitsune.com/wp-content/uploads/2021/03/insert6.jpg)
押し出す方向は自動で判断され、下にスライド固定ではありません。Range(“A1:A3”).Insertのように縦長の場合、
![insert7](https://sunagitsune.com/wp-content/uploads/2021/03/insert7.jpg)
右にスライドされます。
Shift(スライド方向)
![insert8](https://sunagitsune.com/wp-content/uploads/2021/03/insert8.jpg)
Insertメソッドには、ShiftとCopyOriginというふたつの引数が用意されています。
先に書くShiftは、挿入時のスライド方向を指定する引数です。
先に書くShiftは、挿入時のスライド方向を指定する引数です。
![insert9](https://sunagitsune.com/wp-content/uploads/2021/03/insert9.jpg)
値はXlInsertShiftDirection列挙型定数で指定します(公式)。
下にスライドする場合はxlShiftDown、右にスライドする場合はxlShiftToRightを記入します。
数字で指定することもできます(それぞれ-4121、-4161)。
下にスライドする場合はxlShiftDown、右にスライドする場合はxlShiftToRightを記入します。
数字で指定することもできます(それぞれ-4121、-4161)。
![insert12](https://sunagitsune.com/wp-content/uploads/2021/03/insert12.jpg)
()はなくてもいいですし、
![insert13](https://sunagitsune.com/wp-content/uploads/2021/03/insert13.jpg)
フィールド名を指定して、Range(“B2”).Insert shift:=xlShiftToRightのように記述してもOKです。
![insert10](https://sunagitsune.com/wp-content/uploads/2021/03/insert10.jpg)
これで挿入する方向を指定することができます。
CopyOrigin(書式の参照方向)
![insert14](https://sunagitsune.com/wp-content/uploads/2021/03/insert14.jpg)
CopyOriginは挿入時の書式を引き継ぐ方向を指定できる引数で、xlinsertformatorigin列挙型定数(公式)で指定します。デフォルトだとxlFormatFromLeftOrAbove(上か左から参照)となっています。
![insert15](https://sunagitsune.com/wp-content/uploads/2021/03/insert15.jpg)
こういう表があったとして、
![insert16](https://sunagitsune.com/wp-content/uploads/2021/03/insert16.jpg)
デフォルトのinsertだとこう、
![insert17](https://sunagitsune.com/wp-content/uploads/2021/03/insert17.jpg)
Range(“B2”).Insert xlShiftToRight, xlFormatFromLeftOrAboveであれば、
![insert18](https://sunagitsune.com/wp-content/uploads/2021/03/insert18.jpg)
こうなります。
![insert19](https://sunagitsune.com/wp-content/uploads/2021/03/insert19.jpg)
上のコードを少しいじって、Range(“B2”).Insert xlShiftToRight, xlformatfromrightorbelowとしてみます。
xlformatfromrightorbelowは右か下から参照ということなので、つまり挿入したセルは、
xlformatfromrightorbelowは右か下から参照ということなので、つまり挿入したセルは、
![insert20](https://sunagitsune.com/wp-content/uploads/2021/03/insert20.jpg)
自分が押し出したセルの書式を使用することになります。
![insert21](https://sunagitsune.com/wp-content/uploads/2021/03/insert21.jpg)
念のため、Range(“B2”).Insert xlShiftDown, xlFormatFromRightOrBelowの場合。
なお、xlFormatFromLeftOrAboveの代わりに0、xlFormatFromRightOrBelowの代わりに1と書いてもOKです。
![](https://sunagitsune.com/wp-content/uploads/2018/10/gui-2311261_1280.png)
やりたいことから方法を探すエクセル(Excel)操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ
![](https://sunagitsune.com/wp-content/uploads/2018/12/mathematics-1509559_1280-160x90.jpg)
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。
コメント