面倒な繰り返しを自動でしちゃおう
さて、世界一ハードルの低いプログラミング入門講座を目指して(?)始まったこのブログ、皆さんついてこれてますか?
いきなりこのページにきちゃった人は、ぜひはじめから読んでみてくださいね。
プログラミングの勉強って、なかなかおもしろいとこまでに行けなくて、「なんかつまんない」ってなって、あきちゃうんですよね。わかります。
というわけで、なるべく最速で面白いとこまで行きますねー!
今回は、「繰り返し」を勉強します。
プログラミングで何がしたいか、って、だいたい繰り返しなんです(笑)。
同じような単純作業をえんえんと繰り返すのはつまらないので、コンピュータさんにやらせちゃおう、てことですね。
まずはエクセルを起動しましょう。
今回は「変数」というのを使うので、プログラムを書き始める前に、ちょっとした設定をしましょうか。
VBEの画面で、[ツール]→[オプション]とたどって、
こんな感じの画面になったら、上から二つ目の「変数の宣言を強制する(R)」にチェックをつけます。
まあ、「変数を使うときはつけるんだ」ぐらいに思っておけば大丈夫です。
次はどうするんでしたっけ?
Sheet1(Sheet1)のダブルクリックですね。
あたらしく開いた画面のいちばん上に「Option Explicit」という文字が表示されたのに気づきましたか?
さっきのチェックはこの文字を表示させるためのものだったんですね。
さて、新しい画面が開いたら、Sub
~ End Sub
キーワードでプログラムに名前を付けましょう。
今回は名前を「繰り返し」にしましょうか。
好きな名前に変えても大丈夫です。
では、次のように打ち込んでみてください。
打ち込んだら[ctrl]+[s]で、保存しておきましょう。"エクセルマクロ有効ブック(*.xlsm)"を選ぶのを忘れないで下さいね。
1 2 3 4 5 6 7 8 |
Option Explicit Sub 繰り返し() Dim i As Long For i = 1 To 10 Cells(i, 1) = i Next i End Sub |
保存したら実行しましょう。三角ボタンを押すか、VBEの画面で[F5]キーを押しても実行できます。
こんな感じになりましたか?
ならない人は、プログラムに打ち間違いがないか、よーく見比べてみてくださいね。よーーく。
うまく動きましたか?
では、プログラムを詳しく見てみましょう。
最初のoption explicit
は、変数を使うときの決まり文句でしたね。
sub〜end sub
で「繰り返し」という名前のプログラムのひとかたまりを示しています。
次のDim ではじまる一文
Dim i As Long
は、変数の宣言です。as long
は整数型を意味します。iという変数には、整数しか入らないよ、という意味です。
つまり、「これから、iという変数を使うよ!iっていう変数には、整数しか入らないよ」ということですね。
for〜nextが繰り返しのひとかたまりです。この繰り返しのひとかたまりを「ループ」と呼んだりします。
この
for i=1 to 10
の文の意味は、「iの中身を1から10まで、1ずつ増やして繰り返せ」です。なんとなく察せますでしょうか?1ずつ、なんてどこにも書いてませんね。何も書いてない時は1ずつなのだ、という、暗黙の了解があるのです。かくれんぼで「1から10まで数えてね」て、いわれたら、だいたいみんな1ずつ増やしますよね?
Cells(i, 1) = i
は、前回やったことの応用で、i行目、1列目のセルに、iを入れろ、でしたね。
for nextのループは、入れ子にして使うこともよくあります。次のように打ち込んでみましょう
1 2 3 4 5 6 7 8 9 10 11 |
Option Explicit Sub 入れ子の例() Dim i As Long Dim j As Long For i = 1 To 10 For j = 1 To 5 Cells(i, j) = i * 100 + j Next j Next i End Sub |
実行結果はこんな風になります。
iが1のとき、jを1から5まで増やして、次にiを2に増やして、またjをから5まで・・・、とぐるぐる順番に増やしていきます。
マンションの部屋番号のようなイメージをするとわかりやすいでしょうか。
繰り返し、なんとなくわかってきましたか?
完全に理解してなくても大丈夫!うまく動いたらどんどん先に進みましょう。何度も書いてるうちに、だんだん慣れてきますよ~。
次回予告
次回は、条件分岐をしてみようです。
おたのしみに。