マクロルーティン#2(繰り返し構文For to Next)
連続したセルに入力する
◆目標
A1からA5のセルに連番を入力する
◆書くコード
◆読み方
例)Range("A1").Value=1
→Range A1 の 値 は 1
◆解説
RENBANは適当につけたマクロ名です。
Rangeは範囲のこと
ピリオドは「の」と読むとわかりやすい。
Valueは値のこと
★マクロルーティン#1 の記事では入力する値が文字列なのでイコールの後ろは ”種1” とダブルクォーテーションをつけていましたが、今回は数字なのでダブルクォーテーションはつけません。
◆書く場所
マクロルーティン#0
ところで、
Range("A1").Value=1
Range("A2").Value=2
Range("A3").Value=3
Range("A4").Value=4
Range("A5").Value=5
この部分って5行とも同じ形ですよね。
Range(”A〇”).Value=〇
そして、
A列の
1 行目は 1
2 行目は 2
3 行目は 3
4 行目は 4
5 行目は 5
というパターンで繰り返されていることがわかります。
Range(”A〇”).Value=〇
の〇に1いれて実行、2いれて実行、3いれて実行、4いれて実行、5いれて実行。ということ。
↓
「〇が1の場合から5の場合まで
Range(”A〇”).Value=〇
を繰り返してね。」
↓
「For 〇=1 to 5
Range(”A〇”).Value=〇
Next」
↓
「For i=1 to 5
Range(”A” & i ).Value = i
Next」
◆解説
For to Next は繰り返し処理の決まり文句です。
i は変数として仮に i としましたが基本何でもokです。
(カウントの変数として i はよく使われます。)
(”A” & i )の部分は、Aは文字列なのでダブルクオーテーションで囲み i は変数なのでそのまま&でくっつけます。
★Dim i As Long
変数の決まりをマクロ側に教える文句
「i は変数で整数ですよ」とマクロ側に教えておく。
(ここではLongは整数と覚えておけば大丈夫です)
次の図のように「Option Explicit」(変数宣言を強制する)という文句がある場合、変数宣言をしておかないと「i ってなんなの?」とおこられます。「コンパイルエラー:変数が定義されていません。」
コンパイルエラーが出たときは[OK]ボタンを押してリセットボタンを押して終了させる。
◆まとめ-エラーを出さない書き方
❶
[Option Explicit]の文字を消して変数宣言をせずに書く。
→短いマクロや、自分だけが使うマクロの場合は変数宣言を書かなくても問題ないでしょう。
❷
[Option Explicit](変数宣言を強制)して書きたいのなら、「Dim i」これだけでも変数宣言していますのでOKです。
❸
マクロを書くのに慣れてくれば変数宣言も書きたくなるでしょう。変数宣言を書かなきゃいけない場合もでてきます。
自分以外の人に使ってもらうマクロを書くときは、わたしはこの書き方をします。
次の右の図のようにB1からB5まで連番をいれるマクロを【For to Next】構文を使って作ってください。
マクロルーティン#3へ続く