見出し画像

マクロルーティン#2(繰り返し構文For to Next)

連続したセルに入力する

画像10

◆目標
A1からA5のセルに連番を入力する

◆書くコード
画像3

◆読み方
例)Range("A1").Value=1
→Range A1 の 値 は 1

画像9

◆解説
RENBANは適当につけたマクロ名です。
Rangeは範囲のこと
ピリオドは「の」と読むとわかりやすい。
Valueは値のこと
マクロルーティン#1 の記事では入力する値が文字列なのでイコールの後ろは 種1 とダブルクォーテーションをつけていましたが、今回は数字なのでダブルクォーテーションはつけません。

◆書く場所
マクロルーティン#0

画像5

ところで、
 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 は変数なのでそのまま&でくっつけます。

画像7

Dim i As Long

画像10

変数の決まりをマクロ側に教える文句
「i は変数で整数ですよ」とマクロ側に教えておく。
(ここではLongは整数と覚えておけば大丈夫です)
次の図のように「Option Explicit」(変数宣言を強制する)という文句がある場合、変数宣言をしておかないと「i ってなんなの?」とおこられます。「コンパイルエラー:変数が定義されていません。」

画像8

コンパイルエラーが出たときは[OK]ボタンを押してリセットボタンを押して終了させる。

画像8


◆まとめ-エラーを出さない書き方

画像11

[Option Explicit]の文字を消して変数宣言をせずに書く。
 →短いマクロや、自分だけが使うマクロの場合は変数宣言を書かなくても問題ないでしょう。


画像12

[Option Explicit](変数宣言を強制)して書きたいのなら、「Dim i」これだけでも変数宣言していますのでOKです。


画像13

マクロを書くのに慣れてくれば変数宣言も書きたくなるでしょう。変数宣言を書かなきゃいけない場合もでてきます。
自分以外の人に使ってもらうマクロを書くときは、わたしはこの書き方をします。

画像6

次の右の図のようにB1からB5まで連番をいれるマクロを【For to Next】構文を使って作ってください。

画像8

マクロルーティン#3へ続く





この記事が気に入ったらサポートをしてみませんか?