セルの操作③
皆様、お疲れ様です。
前回はセルの範囲指定の方法を勉強しました。
今回は行の選択や、列の選択方法について勉強をしていこうと思います!本日もよろしくお願いします!
はじめに
今回は、Selectメソッドを利用したExcelの指定した行を選択する方法について学んでいきます。
「指定したセルを選択する」では、Rangeプロパティを利用してセルを選択しましたが、行を選択する場合は、様々なプロパティを利用して選択することができます。
Selectメソッドとは
今回使うメソッドは「Selectメソッド」を使います。
Selectメソッドについてですが、RangeオブジェクトのSelectメソッドは指定されたセルを選択します。Selectメソッドには引数はありません。
Range("セル範囲").Select
Rows("行番地").Select
Range("セル範囲").EntireRow.Select
Rangeプロパティを利用して行を選択する
下記コードはRangeプロパティを利用して行を選択するコードになります。
Sub test()
Range("2:2").Select
End Sub
・実行
まずは先ほどのコードをVBEに記入していきます。
実行します。
2行目の全てに選択が行われました。
TESTプロシージャのSubステートメントに引数は設定されていません。
Rangeプロパティには、範囲を表す演算子( : )を利用して「2 : 2」の行番地を設定しています。こちらは「行(2)」の範囲を設定していますので、Selectメソッドで「行(2)」を選択します。
最後はEndステートメントを利用してTESTプロシージャを終了させます。Selectメソッドで行を選択した場合は、対象の行の左端のセルがアクティブになります。
また、Rangeプロパティは単一の行以外に複数行も選択することができます。以下はまとまった複数行を選択する事例となります。Rangeプロパティには「2 : 4」を設定しているので、実行すると2行目から4行目まで選択します。
Sub test()
Range("2:4").Select
End Sub
まとまった行以外にも離れた行も選択できます。
以下は離れた行も選択する事例です。Rangeプロパティには「2:2,4:5」を設定していますので、処理を実行すると2行目と4行目から5行目まで選択します。
Sub test()
Range("2:2,4:5").Select
End Sub
Rowsプロパティを利用して行を選択する
つづいては、Rowsプロパティを利用してExcelの行を選択するコードになります。
Sub test()
Rows(2).Select
End Sub
コードを入力しましたので、実行します。
2行目がすべて選択されました。
こちらでは、Rowsプロパティを利用した指定した行を選択しています。
Rowsプロパティには、「2」の行番地を設定しています。こちらは「行(2)」の範囲を設定していますので、Selectメソッドで「行(2)」を選択します。
EntireRowプロパティを利用して行を選択
次は、EntireRowプロパティを利用して行を選択します。
Sub test()
Range("A2").EntireRow.Select
End Sub
こちらも2行目が選択されました。
EntireRowプロパティは指定されたセル範囲を含む 1 行または複数の行全体(Rangeオブジェクト)を返すプロパティで、まずRangeプロパティで「A2」を設定していますので、「A2」セルを取得します。そして、EntireRowプロパティで「A2」セルを含む行を返すので、行(2)を取得しますので、Selectメソッドで「行(2)」を選択します。
SelectメソッドとActivateメソッドの違い
SelectメソッドとActivateメソッドは同じ処理の動作をするため非常に混同しやすいので、整理してみます。
Selectメソッドは「選択する」でActivateメソッドは「アクティブにする」処理になりますが、「選択」と「アクティブ」の違いをまず理解しましょう。
「アクティブ」とは現在操作対象そのものを指し、「選択」とは、対象の範囲になります。以下の図を見るとイメージしやすいと思いますが、現在操作可能な「アクティブ」のセルは「B2」セルになります。そして、選択されている範囲は「B2~D6」セルになります。
このように操作対象は単一ですが、選択においては複数選択することができます。メソッドでも同様にActivateメソッドは単一のセルしか扱えませんが、Selectメソッドは複数のセルを同時に扱えます。
Selectメソッドの特徴
- 複数セルを選択できる
- Selectメソッドで選択した範囲をSelectionオブジェクトとして操作できる
Activateメソッドの特徴
- 単一のセルしかアクティブにできない。
- Selectメソッドで複数選択した後にさらに単一のオブジェクトを指定できる。
最後に
今回は行の選択について勉強をしてきました。
行を選択するだけでも3種類方法があり、覚えるだけでも大変な感じですね・・・。
ただ、実際に自分でコードを入力して動くのは何回やっても感動ですね!
引き続きVBAの勉強を続けてまいりますのでよろしくお願いします。
今回の勉強はここまでにさせて頂きます。お疲れさまでした!!!!