Excel VBAでは、特定のセルを基準に、その行全体や列全体を操作したいという場面がよくあります。
たとえば、「基準となるセルがある行を非表示にする」「その列の前に新しい列を挿入する」などの処理です。
本記事では、セル D4
を基準とした行や列の操作を例に、行全体・列全体に対して処理を行う方法を解説いたします。
目次
基準セルを含む行全体を非表示にする
以下のコードでは、セル D4
を含む行(4行目)を非表示にします。
Range("D4").EntireRow.Hidden = True
解説:
Range("D4").EntireRow
→D4
が属する行全体(4行目)を示します。.Hidden = True
→ 非表示にする指定です。
アクティブセルの行の上に新しい行を挿入する
次に、アクティブなセルの行全体の上に新しい行を挿入する例です。
ActiveCell.EntireRow.Insert
使用場面の例:
- データ入力前に1行空けたい場合
- 複数行まとめて挿入したいときは、範囲指定と組み合わせて使用します
基準セルを含む列全体を非表示にする
以下のコードでは、セル D4
を含む列(D列)を非表示にします。
Range("D4").EntireColumn.Hidden = True
解説:
EntireColumn
は、基準セルが属する列全体(D列)を意味します。.Hidden = True
を指定することで、その列がシート上から非表示になります。
アクティブセルの列の前に新しい列を挿入する
次のコードは、アクティブセルがある列の左側に1列を挿入する処理です。
ActiveCell.EntireColumn.Insert
注意点:
- 挿入される列は、現在の列の左隣に入ります。
- 書式や数式がずれる場合があるため、必要に応じて
Insert Shift:=xlToRight
などで制御してください。
まとめ
処理内容 | コード例 | 説明 |
---|---|---|
指定セルの行を非表示にする | Range("D4").EntireRow.Hidden = True | 行全体を対象 |
アクティブセルの行を挿入 | ActiveCell.EntireRow.Insert | 上に1行追加 |
指定セルの列を非表示にする | Range("D4").EntireColumn.Hidden = True | 列全体を対象 |
アクティブセルの列を挿入 | ActiveCell.EntireColumn.Insert | 左に1列追加 |
EntireRow
や EntireColumn
を使うことで、セル単位ではなく構造単位での処理が可能になります。
特に、表形式データの整形や一括操作においては、非常に強力な手法です。