【ExcelVBA入門】Rowsプロパティを使って行操作する方法を徹底解説!

こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。皆さんは、VBAで行を操作するRowsプロパティを知っていますか?

データを操作するときに行の操作はよく使うので、覚えておくと便利です!そこで今回は、

  • シートのデータを操作する3つの方法とは
  • Rowsプロパティの使い方
  • Rowsプロパティの引数に変数を指定する方法
  • RowプロパティとRowsプロパティの違いとは

といった基礎的なことから、といった応用的な方法まで、徹底的に解説します!

目次

シートのセルデータを操作する3つの方法

まず、シートのセルデータを操作する方法について解説します。シートのセルデータを操作する方法は、大きく分けて次の3つです。

  • セル操作
  • 行操作
  • 列操作

セル・行・列に対して、値書き込み・コピー・挿入・削除などの操作をしていくわけですね。VBAでは、それぞれ指定する方法が違います。

  • セル操作:Range・Cells
  • 行操作 :Rows
  • 列操作 :Columns

この記事では、行操作について解説していきますが、セル操作について知りたい方は以下を見てみてくださいね!


【VBA入門】Cellsでセルを指定(変数などRangeとの使い分けも解説)
更新日:2024年3月1日

Rowsプロパティの使い方

つぎに、Rowsプロパティの詳しい使い方について解説します。

行を指定する方法

まず、行を指定する方法について解説します。行を指定する場合は、次のような書き方をします。

行の指定方法:

Rows(行番号)         '1行指定
Rows("開始行:終了行") '複数行指定

1行の場合は引数に行番号のみ、複数行の場合は「開始行:終了行」のように指定します。

Rowsの使い方サンプル:

Rows(3)        '3行目を指定
Rows("1:10")   '1行目 ~ 10行目を指定

行に値を書き込む方法

次に、行に値を書き込む方法について解説します。Valueプロパティを使って次のように書くことで、値を書き込むことができます。

サンプルコード:

Sub Test()
  Rows(1).Value = 1
End Sub

実行結果:

このように、指定した行数に値を書き込むことができます。

変数で引数を指定する方法

次に、変数に引数を指定する方法について解説します。1行のみ・複数行を変数で指定して、値を書き込むサンプルを用意しました。

サンプルコード 1行のみ:

Sub Test1()
  Dim row As Long
  row = 1
  
  Rows(row).Value = 1

End Sub

実行結果:

サンプルコード 複数行:

Sub Test2()
  Dim startRow As Long
  Dim endRow As Long
  startRow = 1
  endRow = 5
  
  Rows(startRow & ":" & endRow).Value = 1

End Sub

実行結果:

このように、引数で行を指定することもできます。

行を選択する方法

次に、行を選択する方法について解説します。Selectメソッドを使えば、簡単に行を選択することができます。

サンプルコード:

Sub Test3()
  Rows(1).Select
End Sub

実行結果:

このように、簡単に行を選択することができます。

行をコピー・ペーストする方法

次に、行をコピー・ペーストする方法について解説します。コピー・ペーストする場合は、Copyメソッドを使って次のように書きます。

使い方:

Row(コピー元の行) Row(コピー先の行)

サンプルを用意しました。

コピー前:

サンプルコード:

Sub Test4()
  Rows(1).Copy Rows(3)
End Sub

コピー後:

このように、簡単にコピーすることができます。行のコピーについては他にもいくつかおすすめの方法があるので、興味がある方は以下を見てみてくださいね!

行を挿入する方法

次に、行を挿入する方法について解説します。行を挿入する場合は、Insertメソッドを使って次のように書きます。

使い方:

Rows(挿入する行番号).insert

サンプルを用意しました。

実行前:

サンプルコード:

Sub Test5()
  Rows(3).Insert
End Sub

実行後:

このように、簡単に行を挿入することができます。行の挿入については他にもいくつかおすすめの方法があるので、興味がある方は以下を見てみてくださいね!

行を削除する方法

次に、行を削除する方法について解説します。行を削除する場合は、Deleteメソッドを使って次のように書きます。

使い方:

Rows(挿入する行番号).Delete

サンプルを用意しました。

実行前:

サンプルコード:

Sub Test6()
  Rows(3).Delete
End Sub

実行後:

このように、簡単に行を削除することができます。行の削除については他にもいくつかおすすめの方法があるので、興味がある方は以下を見てみてくださいね!

RowとRowsの違いとは

ここまでRowsプロパティを使った行操作方法について解説してきました。Rowsプロパティに似ているプロパティに、Rowプロパティがあります。使い方について混乱する方が多いので、簡単に違いについて解説します。

  • Row :行を取得するプロパティ
  • Rows:行を指定して操作するプロパティ

たとえば、A5セルの行を取得する場合は、次のように書きます。

サンプルコード:

Sub Test7()
  Debug.Print "A5の行番号:" & Range("A5").row
End Sub

実行結果:

A5の行番号: 5 

行番号5がRowプロパティを使って取得できていますよね。応用すると、以下のようにデータ一覧の最終行を取得することもできます。

データ一覧:

サンプルコード:

Sub Test8()
  Dim maxRow As Long
  maxRow = Cells(Rows.Count, 1).End(xlUp).row

  Debug.Print "データ一覧の最終行:" & maxRow
End Sub

実行結果:

データ一覧の最終行:6

このように、最終行を取得することもできます。最終行の取得方法は他にもあるので、気になる方は以下を見てみてくださいね!

まとめ

今回は、VBAでRowsプロパティを使って行を操作する方法について解説しました。Excelでは行を操作してデータを加工、集計するケースがよくあります。使い方も簡単なので、ぜひ使ってみてくださいね!

この記事を書いた人

北海道出身の30歳で、フリーランスエンジニア兼テックライターとして活動中。新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。

Webアプリ、業務アプリ開発において、要件定義 ~ 運用保守まで様々な経験あり。また3歳の娘がいる1児のパパで、日々娘との時間を確保するために仕事を頑張っています!
侍エンジニアでは、【誰でもわかるレベルのわかりやすさ】を意識して、記事を執筆中。

目次