こんにちは、Ryoです。
Excelでデータを処理する際に新旧データの入替などを目的として、空白のセル(範囲)を挿入したいケースもあるかと思います。セル挿入後のシフト方向は右や下に指定できるので、知っておくと何かと役立つ場面も多いと思いますので、今回はその内容について書いてみたいと思います。
1.サンプル概要
下の画像に示す表があるとします。
この表内のセルC11~F11に対し空白セルを範囲として挿入し、シフト方向を「下」「右」とそれぞれ指定しています。
◆元データ(表)
◆下方向にシフト
◆右方向にシフト
このように空白セルを範囲で挿入することが出来ます。
2.サンプルコード
セルの挿入を行うには「Insert」メソッドを使います。
オブジェクト.Insert(Shift,CopyOrigin)
構文としてこのようになっていますが、上述のサンプル概要で使用したコードは以下です。
◆シフトを下方向に指定
Sub Sample1() Range(Cells(11, 3), Cells(11, 6)).Insert Shift:=xlDown End Sub
この通りシンプルにセルC11~F11にセル空白範囲を挿入し、Shift:=xlDown で下方向にシフトするように指定しています。
◆シフトを右方向に指定
Sub Sample2() Range(Cells(11, 3), Cells(11, 6)).Insert Shift:=xlToRight End Sub
こちらもセル範囲は同様に指定し、シフト方向を右方向に指定しています。
下方向にはオブジェクト.Insert Shift:=xlDown
右方向にはオブジェクト.Insert Shift:=xlToRight
このように指定すればOKです。
後は引数でCopyOriginがありますが、これはセル挿入後に書式を受け継ぐセルを指定するもので、以下の様になっています。
xlFormatFromLeftOrAbove・・・上又は左のセルから形式をコピー
xlFormatFromRightOrBelow・・・下及び右のセルから形式をコピー
ここは指定しなくてもExcel側で自動的に判定してくれるようで、サンプルの下方向へシフトする場合は上のセル形式、右にシフトする場合は左のセル形式になっているようです。
3.まとめ
空白セルを範囲として挿入すること自体はあっさりと出来るのですが、実運用上で気を付けるとすればセルの形式がコピーされた際に意図しない表示形式になっている場合もありますので、そこは別途指定する等の処理も必要かと思います。
私の場合ですが、新しいデータと置き換える際に、範囲を指定して右方向にシフトさせ、新旧で比較できるような形で使っているものもありますから、個人的に重宝したりしてます。
何か機会があればご検討されてみるのも良いかと思います。
以上、ワークシートに空白セルやセル範囲を挿入する方法についてでした!
今回の記事が何かの参考になれば幸いです。
Ryo