【RangeとCellsでセルの位置を指定する】

 3 Rangeのセル番地を直接指定

 4 Rangeのセル番地を定数で指定

 5 Rangeのセル番地を変数で指定

 6 Cellsの行番号と列番号を直接指定

 7 Cellsの行番号と列番号を定数で指定

 8 Cellsの行番号と列番号を変数で指定

 9 Rangeのセル範囲を指定

Cellsの行番号と列番号を直接指定

パイさん

Excel VBA/マクロのCells行番号列番号については三つの指定方法がありますが、

 今回は、その一、Cellsオブジェクトの引数となる行番号列番号直接指定する方法を紹介します。

 

 セル位置行番号列番号で指定するCells(行番号, 列番号)オブジェクトを初紹介します。

Img2_6_1

 まずは、1行目・1列目のセルの値に『1行1列』という文字列を代入してみましょう。

 

 新しいマクロをつくって、マクロ名を『行番号と列番号_直接指定』、

 Cellsオブジェクトの引数となる行番号を1・列番号を1とし、

 そのセルの値に『直接指定1行1列』を代入してみましょう。」

Sub 行番号と列番号_直接指定()

 Cells(1, 1).Value = "直接指定1行1列"

End Sub

ソンくん

「コードを書きました。」

パイさん

「それでは、マクロ『行番号と列番号_直接指定』を実行してみましょう。」

Img2_6_2

ソンくん

1行目・1列目のセルに、『直接指定1行1列』が、書きこまれました。」


パイさん

「次に、2行目・3列目のセルに、『直接指定2行3列』という文字列を代入してみましょう。」

Sub 行番号と列番号_直接指定()

 Cells(2, 3).Value = "直接指定2行3列"

End Sub

ソンくん

「コードを書きました。」

パイさん

「それでは、マクロ『行番号と列番号_直接指定』を実行してみましょう。」

Img2_6_3

ソンくん

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の行番号と列番号を定数で指定』で紹介します。」