VBAで行や列を挿入する│書式を引き継ぐ・引き継がない方法も紹介

この記事では、VBAでExcelシートに行や列を挿入する方法を実際のVBAコードも含めて紹介します。

行や列の挿入は、Excelを使った業務の中でも使用する頻度は少なくありません。また、挿入後の行や列は基本的に上の行(列の場合は左の列)の書式を引き継ぎますが、VBAで行や列を挿入する場合には予めVBAコードで書式の引継ぎ有無を設定することができます。

それでは行や列を挿入する方法と、挿入する行や列の書式の引継ぎ設定、それぞれのVBAコードを見ていきましょう。

目次

VBA│行・列を挿入する

この章では、「4行目全体に行を挿入する」と「B列全体に列を挿入する」VBAコードを紹介します。

行の挿入
列の挿入

行を挿入するVBAコード

見本①

Sub Sample()

Rows(“4”).Insert

End Sub

見本②

Sub Sample()

Range(“A4”).EntireRow.Insert

End Sub

上記の見本①と見本②は、同じ結果となりますので、どちらを使っても構いませんが、一般的に人間が手作業で行を挿入する操作は見本①となります。

基本的には、コードの記述もシンプルな見本①を使ったほうがよいでしょう。

人間が手作業で行を挿入する場合は、一般的に左側の行番号をクリックして挿入する。(見本①)

一方、見本②については、特定のセルを右クリックして行全体に挿入する動作。

列を挿入するVBAコード

見本①

Sub Sample()

Columns(“B:B”).Insert

End Sub

見本②

Sub Sample()

Range(“B1”).EntireColumn.Insert

End Sub

上記の見本①と見本②の考え方は、前述の行の挿入と一緒です。 基本的には、コードの記述もシンプルな見本①を使ったほうがよいでしょう。

VBA│書式の引継ぎを設定して行を挿入する

人間が手作業で行や列を挿入した場合と同様、前章で紹介したVBAコードで行や列を挿入した場合でも、挿入された行は上の行 (列の場合は左の列) の書式を引き継ぎます。

<行の挿入>

4行目へ挿入前
4行目へ挿入後

<列の挿入>

B列へ挿入前
B列へ挿入後

書式を引き継いで行を挿入する

上の行の書式を引き継ぐ

Sub Sample()

Rows(“4”).Insert CopyOrigin:=xlFormatFromLeftOrAbove

End Sub

前述の通り、行の挿入時には基本的に上の行の書式を引き継ぎますので、実際には「CopyOrigin:=」以降のコードは記述する必要はありませんが、明示的に記述する場合のコードです。

下の行の書式を引き継ぐ

Sub Sample()

Rows(“4”).Insert CopyOrigin:=xlFormatFromRightOrBelow

End Sub

書式を引き継がないで行を挿入する

Sub Sample()

Rows(“4”).Insert
Rows(“4”).ClearFormats

End Sub

正確には、挿入後の行の書式をクリアするVBAコードです。ClearFormatsメソッドを使った場合、すべての書式がクリアされますので、罫線もクリアされます。必要に応じてVBAコードを工夫しましょう。

書式を引き継いで列を挿入する

左の列の書式を引き継ぐ

Sub Sample()

Columns(“B:B”).Insert CopyOrigin:=xlFormatFromLeftOrAbove

End Sub

前述の通り、列の挿入時には基本的に左の列の書式を引き継ぎますので、実際には「CopyOrigin:=」以降のコードは記述する必要はありませんが、明示的に記述する場合のコードです。

右の列の書式を引き継ぐ

Sub Sample()

Columns(“B:B”).Insert CopyOrigin:=xlFormatFromRightOrBelow

End Sub

書式を引き継がないで列を挿入する

Sub Sample()

Columns(“B:B”).Insert
Columns(“B:B”) .ClearFormats

End Sub

正確には、挿入後の列の書式をクリアするVBAコードです。ClearFormatsメソッドを使った場合、すべての書式がクリアされますので、罫線もクリアされます。必要に応じてVBAコードを工夫しましょう。

よかったらシェアしてね!
  • URLをコピーしました!
目次