【RangeとCellsでセルの位置を指定する】
3 Rangeのセル番地を直接指定
4 Rangeのセル番地を定数で指定
5 Rangeのセル番地を変数で指定
6 Cellsの行番号と列番号を直接指定
7 Cellsの行番号と列番号を定数で指定
8 Cellsの行番号と列番号を変数で指定
9 Rangeのセル範囲を指定
Cellsの行番号と列番号を定数で指定
パイさん
「Excel VBA/マクロのCellsの行番号と列番号については三つの指定方法がありますが、
今回は、その二、Cellsオブジェクトの引数となる行番号と列番号を定数で指定する方法を紹介します。
セル位置を行番号と列番号で指定するCells(行番号, 列番号)オブジェクトを再紹介します。」
ソンくん
「定数ってなんですか。」
パイさん
「定数とは、固定の値を保持するためのデータの入れ物です。」
パイさん
「定数をつかうときは、まず名前を決めます。この定数の名前には次のような決まりがあります。」
パイさん
「『Cells』で、特定のセルを定数で指定するときは、
行番号を示す定数名と列番号を示す定数名を決めます。
名前の決まりに従えば、定数名はどのようにつけてもかまわないのですが、
意味のある文字にしておくと、あとで見たときにわかりやすいコードになります。
Excel VBAでは、定数名を日本語文字にすることもできるため、
ここでは、行番号を示す定数名を『行』・列番号を示す定数名を『列』とします。
定数名を決めたら、それが定数であることを宣言しないとパソコンには通じません。
そこで、『Const』という定数宣言文字を、自分で決めた定数名の前にもってくることになります。
それから、その定数の後に『=』をもってきて、更にその定数に設定する値を書きこみます。
パイさん
「マクロ『行番号と列番号_定数指定』をつくってみましょう。
1行目・1列目のセルに対して、『定数1行1列』を設定しましょう。
行番号を示す定数名を『行』その値を1として定数宣言。
列番号を示す定数名を『列』その値を1として定数宣言。
行番号が定数『行』と列番号が定数『列』のセルの値として、『定数1行1列』を設定。
今回は、このように定数を使ったプログラムを組んでみましょう。」
パイさん
「まず、行番号を示す定数名を、『行』、その値を1として定数を宣言してみましょう。」
ソンくん
「『Const』という定数宣言文字を打って、スペースを入れて、定数名『行』を打って、スペースを入れて、
『=』を打って、スペースを入れて、値『1』を打ちます。」
パイさん
「OKです。値『1』は数値ということになるので、文字列のときの『”』『”』は不要です。」
Const 行 = 1
ソンくん
「定数『行』に1を設定しました。」
パイさん
「次に、列番号を示す定数名を、『列』、その値を1として定数を宣言してみましょう。」
ソンくん
「『Const』という定数宣言文字を打って、スペースを入れて、定数名『列』を打って、スペースを入れて、
『=』を打って、スペースを入れて、値『1』を打ちます。」
パイさん
「OKです。」
Const 列 = 1
ソンくん
「定数『列』に1を設定しました。」
パイさん
「最後に、行番号が定数『行』と列番号が定数『列』のセルの値として、『定数1行1列』を設定しましょう。」
Cells(行, 列).Value = "定数1行1列"
ソンくん
「定数『行』と定数『列』のセルの値として、『定数1行1列』を設定しました。」
Sub 行番号と列番号_定数指定()
Const 行 = 1
Const 列 = 1
Cells(行, 列).Value = "定数1行1列"
End Sub
ソンくん
「マクロ『行番号と列番号_定数指定』が完成しました。」
パイさん
「それでは、マクロ『行番号と列番号_定数指定』を実行してみましょう。」
ソンくん
「1行目・1列目のセルに、『定数1行1列』が、書きこまれました。」
パイさん
「マクロ『行番号と列番号_定数指定』を少し書きかえてみましょう。
3行目・2列目のセルに対して、『定数3行2列』を設定しましょう。
行番号を示す定数名を『行』その値を3として定数宣言。
列番号を示す定数名を『列』その値を2として定数宣言。
行番号が定数『行』と列番号が定数『列』のセルの値として、『定数3行2列』を設定。
今回は、このように定数を使ったプログラムを組んでみましょう。」
Sub 行番号と列番号_定数指定()
Const 行 = 3
Const 列 = 2
Cells(行, 列).Value = "定数3行2列"
End Sub
ソンくん
「マクロ『行番号と列番号_定数指定』を書きかえました。」
パイさん
「それでは、マクロ『行番号と列番号_定数指定』を実行してみましょう。」
ソンくん
「3行目・2列目のセルに、『定数3行2列』が、書きこまれました。」
パイさん
「このように、セルの行番号と列番号を示す値をそれぞれの定数に設定しておけば、
『Cells(行番号, 列番号).Value』の行番号・列番号をそれぞれの定数により指定することができます。
試しに、定数『行』と定数『列』に設定する数値を適当な値に書きかえて、マクロを実行して、
指定したセルの位置に文字が書きこまれることを確かめてみましょう。
(1) 2行目・1列目のセルに『定数2行1列』を、
(2) 1行目・2列目のセルに『定数1行2列』を、
(3) 3行目・3列目のセルに『定数3行3列』を、代入してみましょう。
-
演習(1):マクロ『行番号と列番号_定数指定』
定数『行』に、2 を設定
定数『列』に、1 を設定
行番号が定数『行』と列番号が定数『列』のセルの値に、『定数2行1列』を代入
-
Sub 行番号と列番号_定数指定()
Const 行 = 2
Const 列 = 1
Cells(行, 列).Value = "定数2行1列"
End Sub
-
演習(2):マクロ『行番号と列番号_定数指定』
定数『行』に、1 を設定
定数『列』に、2 を設定
行番号が定数『行』と列番号が定数『列』のセルの値に、『定数1行2列』を代入
-
Sub 行番号と列番号_定数指定()
Const 行 = 1
Const 列 = 2
Cells(行, 列).Value = "定数1行2列"
End Sub
-
演習(3):マクロ『行番号と列番号_定数指定』
定数『行』に、3 を設定
定数『列』に、3 を設定
行番号が定数『行』と列番号が定数『列』のセルの値に、『定数3行3列』を代入
-
Sub 行番号と列番号_定数指定()
Const 行 = 3
Const 列 = 3
Cells(行, 列).Value = "定数3行3列"
End Sub
Cellsの行番号と列番号については三つの指定方法がありますが、
今回は、その二、Cellsオブジェクトの引数となる行番号と列番号を定数で指定する方法を
紹介しました。
これは、行番号と列番号を直接指定することなく、定数を経由して行番号と列番号を間接的に指定
するということです。
この行番号と列番号を間接的に指定するということに関しては、実はもう一つ別の方法があります。
では、定数をつかわずに、行番号と列番号を間接的に指定するにはどうしたらよいのでしょうか。
これについては、次回『Cellsの行番号と列番号を変数で指定』で紹介します。」