VBAで自動化 VBA一覧 セル・シート・ブック操作 操作方法(選択・指定)

【VBA】行・列をまとめて指定する方法|行全体・列全体の操作パターン

ExcelVBAで表を操作していると、「特定のセル」ではなく「行全体」や「列全体」を対象に処理したい場面は非常に多くあります。
たとえば、不要な行を一括で削除したい、特定の列をまとめて非表示にしたい、行全体に書式を適用したいといったケースです。
しかし、行や列の指定方法を正しく理解していないと、処理が重くなる・意図しない範囲を操作してしまう・可読性が低いコードになるといった問題が発生しがちです。
特に初心者の方は「Rangeで無理やり指定している」「Selectありきのコードになっている」ことも多く、後から修正しにくいマクロになりやすい傾向があります。
この記事では、ExcelVBAにおける行全体・列全体の指定方法を基礎から整理し、実務でよく使われる操作パターンを体系的に解説します。
「なぜその指定方法を使うのか」を理解することで、安定して読みやすいVBAコードが書けるようになります。

目次

✅ ExcelVBAで「行・列をまとめて指定する」とはどういうことか

行や列をまとめて指定するとは、セル単位ではなく構造単位で操作するという考え方です。
Excelの表は、セルの集合であると同時に、「行」「列」という意味のある単位で構成されています。
この単位を意識せずにコードを書くと、処理が冗長になりやすく、ミスも増えがちです。
まずは、行・列指定の考え方を整理しておきましょう。

・行・列指定の基本的な特徴

  1. セル範囲よりも直感的
  2. コードの可読性が高い
  3. 書式・表示・削除などと相性が良い

行・列単位で指定できることは、VBAの大きな強みの一つです。


✅ Rowsプロパティで行全体を指定する方法

行全体を指定する基本は、Rows プロパティです。
これは、指定した行番号に対応する 行全体(A列から最終列まで) を対象にします。

・単一行を指定する基本構文

Rows(3).Select

このコードは、3行目全体を選択します。

・Rowsプロパティのポイント

  1. 行番号で指定する
  2. シート全体を基準にする
  3. 列数を意識しなくてよい

列が増減しても影響を受けにくい点がメリットです。


✅ Columnsプロパティで列全体を指定する方法

列全体を指定したい場合は、Columns プロパティを使用します。
行と同様に、列番号や列記号を指定できます。

・単一列を指定する基本構文

Columns("B").Select

または

Columns(2).Select

どちらもB列全体を指定します。

・Columnsプロパティの特徴

  1. 列記号・列番号の両方が使える
  2. 行数を意識しなくてよい
  3. 書式設定や非表示処理と相性が良い

✅ 複数行をまとめて指定する方法

実務では、1行だけでなく 連続した複数行 を操作することが多くあります。
Rowsプロパティは、配列や範囲指定にも対応しています。

・連続した行を指定する

Rows("3:5").Select

この場合、3行目から5行目までをまとめて指定します。

・複数行指定の実務用途

  1. データ行を一括削除
  2. 見出し行の書式設定
  3. 印刷対象の制御
    参考:【VBA】条件に一致する複数行を取得する方法|検索・抽出・処理の実務活用例

✅ 複数列をまとめて指定する方法

列も同様に、複数まとめて指定できます。

・連続した列を指定する

Columns("B:D").Select

B列からD列までを一括で指定します。

・列まとめ指定が向いている処理

  1. 不要列の削除
  2. 入力禁止列の設定
  3. 表示・非表示の切り替え
    参考:【Excel】掛け算 列ごと|複数列をまとめて掛け算する方法を実務例で徹底解説

✅ 行全体・列全体に対する代表的な操作パターン

行・列指定は「指定すること」が目的ではなく、その後の操作が本番です。
ここでは、実務で特によく使われる操作パターンを整理します。

・行全体を削除する

Rows(10).Delete

指定した行が丸ごと削除されます。

・列全体を削除する

Columns("C").Delete

✅ 行・列の表示/非表示を制御する

行・列単位での表示制御は、UI操作の自動化で非常に多用されます。

・行を非表示にする

Rows(5).Hidden = True

・列を再表示する

Columns("D").Hidden = False

✅ 行・列全体に書式を設定する方法

書式設定は、行・列指定と非常に相性が良い操作です。

・行全体の背景色を変更する

Rows(2).Interior.Color = RGB(220, 230, 241)

・列全体の文字を太字にする

Columns("A").Font.Bold = True

✅ Rangeを使って行・列を指定する方法との違い

行・列指定は、Range指定でも実現できますが、用途に応じた使い分けが重要です。

・Rangeで行を指定する例

Range("3:3").Select

・Rowsとの違い

  • Rows:構造的で分かりやすい
  • Range:柔軟だが意図が伝わりにくい

実務では、意図が明確になる方を選ぶのが基本です。


✅ アクティブセル基準で行・列を指定する方法

動的な処理では、アクティブセルを基準に行・列を操作するケースも多くあります。

・アクティブセルの行全体を指定

ActiveCell.EntireRow.Select

・アクティブセルの列全体を指定

ActiveCell.EntireColumn.Select

この方法は、ユーザー操作と連動させるマクロでよく使われます。

参考:【VBA】「単一・複数・非連続・行・列・アクティブ」セルの選択方法


✅ EntireRow・EntireColumnの使いどころ

EntireRowEntireColumn は、Rangeオブジェクトと組み合わせることで威力を発揮します。

・特定セルを含む行全体を削除

Range("B10").EntireRow.Delete

・条件判定後の行操作

条件付きで行全体を操作する際に、コードが簡潔になります。


✅ ループ処理と行・列指定の組み合わせ

行・列指定は、ループ処理と組み合わせることで大量データに対応できます。

・行単位で処理する例

Dim i As Long
For i = 2 To 100
    Rows(i).Font.Italic = True
Next i

ただし、処理速度には注意が必要です。


✅ 行・列指定でやりがちなミスと注意点

便利な反面、誤った使い方をするとトラブルになります。

・注意すべきポイント

  1. 削除後に行番号が変わる
  2. 最終行・最終列の誤認
  3. Select前提のコードになる

特に削除処理は、下から上へ処理するなどの工夫が必要です。


✅ 実務で安定する行・列操作の設計ルール

行・列指定を安全に使うためのルールを整理します。

・推奨ルール

  1. Selectを使わず直接操作
  2. 行・列番号は変数管理
  3. 意図が分かる指定方法を選ぶ

✅ ExcelVBAで行・列操作を自動化する意義(応用)

行・列単位で操作できるようになると、
「人が手でやっていた表編集」をそのまま自動化できます。
特に、定型処理・大量データ処理では効果が大きく、
コードの保守性も向上します。
操作対象を「セル」ではなく「構造」で捉えることが、VBA上達の近道です。


 

✅ まとめ:行・列指定を理解するとVBAの設計レベルが上がる

  • Rowsで行全体を指定できる
  • Columnsで列全体を指定できる
  • 複数行・複数列もまとめて操作可能
  • EntireRow・EntireColumnで柔軟に対応できる
  • 行・列単位の操作は可読性と安定性が高い

行・列をまとめて指定できるようになると、
VBAコードは一気に「実務向け」になります。
処理の意図が明確になり、修正や拡張もしやすくなるため、
ぜひ今回の考え方を日々のマクロ作成に取り入れてみてください。

参考:【VBA】非連続セルを指定・操作する方法【Union・Selectの使い方】

    -VBAで自動化, VBA一覧, セル・シート・ブック操作, 操作方法(選択・指定)