【RangeとCellsでセルの位置を指定する】
3 Rangeのセル番地を直接指定
4 Rangeのセル番地を定数で指定
5 Rangeのセル番地を変数で指定
6 Cellsの行番号と列番号を直接指定
7 Cellsの行番号と列番号を定数で指定
8 Cellsの行番号と列番号を変数で指定
9 Rangeのセル範囲を指定
Cellsの行番号と列番号を直接指定
パイさん
「Excel VBA/マクロのCellsの行番号と列番号については三つの指定方法がありますが、
今回は、その一、Cellsオブジェクトの引数となる行番号と列番号を直接指定する方法を紹介します。
セル位置を行番号と列番号で指定するCells(行番号, 列番号)オブジェクトを初紹介します。
まずは、1行目・1列目のセルの値に『1行1列』という文字列を代入してみましょう。
新しいマクロをつくって、マクロ名を『行番号と列番号_直接指定』、
Cellsオブジェクトの引数となる行番号を1・列番号を1とし、
そのセルの値に『直接指定1行1列』を代入してみましょう。」
Sub 行番号と列番号_直接指定()
Cells(1, 1).Value = "直接指定1行1列"
End Sub
ソンくん
「コードを書きました。」
パイさん
「それでは、マクロ『行番号と列番号_直接指定』を実行してみましょう。」
ソンくん
「1行目・1列目のセルに、『直接指定1行1列』が、書きこまれました。」
パイさん
「次に、2行目・3列目のセルに、『直接指定2行3列』という文字列を代入してみましょう。」
Sub 行番号と列番号_直接指定()
Cells(2, 3).Value = "直接指定2行3列"
End Sub
ソンくん
「コードを書きました。」
パイさん
「それでは、マクロ『行番号と列番号_直接指定』を実行してみましょう。」
ソンくん
「2行目・3列目のセルに、『直接指定2行3列』が、書きこまれました。」
パイさん
「このようにCellsの右側の引数『( )』の中には、セルの行番号と列番号を数値で
指定することになります。
試しに、セルの行番号と列番号を適当な数値に書きかえて、マクロを実行して、
指定したセルの位置に文字が書きこまれることを確かめてみましょう。
(1) 2行目・1列目のセルに『直接指定2行1列』を、
(2) 1行目・2列目のセルに『直接指定1行2列』を、
(3) 3行目・2列目のセルに『直接指定3行2列』を、代入してみましょう。
-
演習(1):マクロ『行番号と列番号_直接指定』
2行目・1列目のセルの値に『直接指定2行1列』という文字列を代入
-
Sub 行番号と列番号_直接指定()
Cells(2, 1).Value = "直接指定2行1列"
End Sub
-
演習(2):マクロ『行番号と列番号_直接指定』
1行目・2列目のセルの値に『直接指定1行2列』という文字列を代入
-
Sub 行番号と列番号_直接指定()
Cells(1, 2).Value = "直接指定1行2列"
End Sub
-
演習(3):マクロ『行番号と列番号_直接指定』
3行目・2列目のセルの値に『直接指定3行2列』という文字列を代入
-
Sub 行番号と列番号_直接指定()
Cells(3, 2).Value = "直接指定3行2列"
End Sub
Cellsの行番号と列番号については三つの指定方法がありますが、
今回は、その一、Cellsオブジェクトの引数となる
行番号と列番号を直接指定する方法を紹介しました。
でも、セルの行番号と列番号を指定するとき、
Cellsオブジェクトの引数:行番号と列番号を直接記述するという手法は、
マジックナンバーと呼ばれるやり方で、プログラムのメンテナンス上あまりお勧めできません。
では、行番号と列番号を直接指定することなく、
行番号と列番号を間接的に指定するにはどうしたらよいのでしょうか。
これについては、次回『Cellsの行番号と列番号を定数で指定』で紹介します。」