エクセルマクロ(EXCEL VBA)

エクセルマクロ(EXCEL VBA) その12 九九の表を作る

変数を使って九九の表を作る

前回、変数を使って計算し、計算結果をセルに入れられることをご紹介しました。

実は、これまで何度も登場していた
For Nextで使っていた i も変数のひとつだったのです。
何の説明もなく使っていてすみません。

ということで、今回はFor Nextと変数を組み合わせて少し遊んでみましょう。

いつものように
開発→Visual Basic
挿入→標準モジュールを押してください。

sub suretsu

としましょう。

sub suretsu

続いてFor Nextの呪文を書いてみます。
A1に1
A2に2
A3に3


A9に9

となるようにしてみます。
どうすればよいでしょう?

 

For i = 1 To 9
    Cells(i, 1) = i
Next

と書けば良さそうですね。

1から9までを入力

For Nextによって
i が 1, 2, 3, ・・・, 9まで続いていくので
その時に、実際の命令としては
Cells(1, 1) = 1
Cells(2, 1) = 2
Cells(3, 1) = 3

と続いていくはずです。
これで良さそうですね。

実行すると、

一の段

うまく行きましたね。

では、
2, 4, 6, 8, 10・・・, 18にするにはどうしたらいいでしょう?

 
答えは、ここだけ修正して
Cells(i, 1) = i * 2
とすることで、同じA1~A9に、2, 4, 6・・・となると思います。

×2

掛け算は、「*」このアスタリスクを使います。ちなみに割り算は「/」です。
これを実行すると、

二の段

九九の表で言うところの「二の段」を書くことができました。

では、「奇数」の表にしたいと思ったらどうしたらいいでしょう?
1, 3, 5, 7, 9・・・としたいわけです。

 
いろいろ数式をいじってみても面白そうですね。

 

Cells(i, 1) = i * 2 - 1

と、先程の式から1を引くと良さそうです。

奇数の式

これを実行すると

奇数の表ができた

奇数の表ができました!

 
ところで、先程、掛け算九九の一の段と、二の段を作ることができました。
A列には一の段、B列には二の段にしたい場合はどうしたらいいでしょう?

 
単純に考えると、For Nextのループをコピペして

一の段と二の段

とすれば良さそうです。

さあ、ここまで来たら九九の表を書きたくなってくると思いますので、あと7回コピペしましょう。
いや、でも、7回もコピペするのはめんどくさいですよね・・・。

さあ、どうするのが良いでしょうか?

 
左辺も右辺も1, 2 ・・・と変化しそうな部分があるので、
For Nextを使って、これを繰り返してもらえば良さそうです。
変数は(本当は何でもいいんですが)数学っぽく j を使いましょう。

For j = 1 To 9
    For i = 1 To 9
        Cells(i, j) = i * j
    Next
Next

とします。

もう一つのForNextではさむ

これを実行すると

九九の表になった

九九の表ができました。

1 to 9 としているから九九の表ですが、
例え1 to 20 としても、
1 to 100 としてもマクロちゃんは実行してくれますので、試してみてください。

 
今回の最終的なコード

Sub suretsu()
For j = 1 To 9
    For i = 1 To 9
        Cells(i, j) = i * j
    Next
Next
End Sub

 

宿題-12

1から9の掛け算の表ができるようになったので、
-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5
という並びの掛け算の表を作ってみてください。
ただし、最初の -5 × -5 は、A1に入るようにしてください。

エクセルマクロ(EXCEL VBA) その13 最終行を取得する

(文:森脇孝/エントレ)

関連記事一覧