EntireRow、EntireColumnプロパティ
指定しているセル範囲の行全体または列全体を参照・選択することが出来ます。
行全体はEntireRowプロパティ、列全体はEntireColumnプロパティを使用します。
構文
1 2 |
Range.EntireRow Range.EntireColumn |
基点となるセル範囲をRangeオブジェクトで指定します。
EntireRowプロパティとEntireColumnプロパティの結果は対象となる行全体または列全体がRangeオブジェクトで返されます。
サンプルコード
4行目と6行目を削除するコードです。
1 2 3 |
Sub EntireRowTest() Range("A4,A6").EntireRow.Delete End Sub |
A、C、E列の背景色を付けるコードです。
1 2 3 |
Sub EntireColumnTest() Range("A:A,C:C,E:E").EntireColumn.Interior.Color = RGB(255, 40, 100) End Sub |
セル範囲の参照とEntireRow、EntireColumnプロパティの結果は異なる
1 |
Range("4:4") |
のように行を参照している場合と、
1 |
Range("A4").EntireRow |
のように行全体を参照している場合は、どちらの4行目全体を表していますが、設定されているプロパティには違いがあります。
1 2 3 4 |
Sub RangeEntireRowDiffTest() Debug.Print Range("A4").EntireRow.Count Debug.Print Range("4:4").Count End Sub |
実行結果
1
16384
このように、EntireRowやEntireColumnを指定している場合はその行自体を1個とみなします。
このため、行や列全体を選択してセルの個数(Countプロパティ)を取得する場合などは注意が必要です。
行や列の削除でエラーになる場合
行全体や列全体を削除や追加した場合にエラーになることがあります。
これはシートの保護をしていることが原因です。
プログラムで保護を一時的に解除する場合は以下のように書きます。
1 2 3 4 5 6 7 8 9 10 |
Sub EntireRowUnProtectTest() '// シート保護を解除 ActiveSheet.Unprotect '// 行削除 Range("A4,A6").EntireRow.Delete '// シートを保護 ActiveSheet.Protect End Sub |
3行目でシートの保護を解除します。これで削除や追加が可能になります。その後、再度シートの保護を行っています。