こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。皆さんは、VBAで行を操作するRowsプロパティを知っていますか?
データを操作するときに行の操作はよく使うので、覚えておくと便利です!そこで今回は、
- シートのデータを操作する3つの方法とは
- Rowsプロパティの使い方
- Rowsプロパティの引数に変数を指定する方法
- RowプロパティとRowsプロパティの違いとは
といった基礎的なことから、といった応用的な方法まで、徹底的に解説します!
シートのセルデータを操作する3つの方法
まず、シートのセルデータを操作する方法について解説します。シートのセルデータを操作する方法は、大きく分けて次の3つです。
- セル操作
- 行操作
- 列操作
セル・行・列に対して、値書き込み・コピー・挿入・削除などの操作をしていくわけですね。VBAでは、それぞれ指定する方法が違います。
- セル操作:Range・Cells
- 行操作 :Rows
- 列操作 :Columns
この記事では、行操作について解説していきますが、セル操作について知りたい方は以下を見てみてくださいね!
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では行を操作してデータを加工、集計するケースがよくあります。使い方も簡単なので、ぜひ使ってみてくださいね!