この記事では、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コードで行や列を挿入した場合でも、挿入された行は上の行 (列の場合は左の列) の書式を引き継ぎます。
<行の挿入>
<列の挿入>
書式を引き継いで行を挿入する
上の行の書式を引き継ぐ
Sub Sample()
Rows(“4”).Insert CopyOrigin:=xlFormatFromLeftOrAbove
End Sub
下の行の書式を引き継ぐ
Sub Sample()
Rows(“4”).Insert CopyOrigin:=xlFormatFromRightOrBelow
End Sub
書式を引き継がないで行を挿入する
Sub Sample()
Rows(“4”).Insert
Rows(“4”).ClearFormats
End Sub
書式を引き継いで列を挿入する
左の列の書式を引き継ぐ
Sub Sample()
Columns(“B:B”).Insert CopyOrigin:=xlFormatFromLeftOrAbove
End Sub
右の列の書式を引き継ぐ
Sub Sample()
Columns(“B:B”).Insert CopyOrigin:=xlFormatFromRightOrBelow
End Sub
書式を引き継がないで列を挿入する
Sub Sample()
Columns(“B:B”).Insert
Columns(“B:B”) .ClearFormats
End Sub