今日の内容
- 九九のプログラム提出
- 足し算のプログラム
大きな地図で見る
課題提出
前回作ったExcel VBAのプログラムを提出してください。メールの件名は学籍番号と「VBA九九」と書いて、九九のプログラムをSubからEnd Subまでコピーしてメール本文に貼り付けて、本文最後に名前を書いてください。
足し算
前回のファイルに続けて書きましょう。 別のプログラムを書くには、前回のプログラムのEnd Subの下の行にSub 別のプログラムの名前
と書いてEnterを押すと、区切りの線が自動的に引かれます。
1から10までの数の合計は、Excelのセルに =1+2+3+4+5+6+7+8+9+10 と入力すれば計算できます。
では1から100までの数の合計はどうやって計算しましょうか。等差数列の和の公式を使って =100*(100+1)/2 でも計算できますが、今後色々な数を足す機会もありますから、公式を使わずに足し算してみましょう。
1+2+3+…+99+100と入力していては大変ですので、For文を使った繰り返しで計算しましょう。まず
wa = 0
としておいて
wa = wa + 1 (この時点でwaは1)
wa = wa + 2 (この時点でwaは1+2)
wa = wa + 3 (この時点でwaは1+2+3)
wa = wa + 4
wa = wa + 5
…
wa = wa + 98
wa = wa + 99
wa = wa + 100
とするとwa=1+2+3+…+99+100になりますので、最後に
Cells(1,1) = wa
と書いて計算結果を表示しましょう。
練習
上記のプログラムを、実際に100行も書くことは出来ませんから、For文を使って書いて、1から100までの数の合計を求めてください。5050になれば正解です。
データの読み込み
例えば、Excelの講義の最初の頃に使った県名 | 男 | 女 | 人口総数 | 男比率 | 女比率 |
---|---|---|---|---|---|
鳥取 | 294 | 321 | |||
島根 | 368 | 402 | |||
岡山 | 939 | 1014 | |||
広島 | 1398 | 1484 | |||
山口 | 734 | 817 |
x1 = cells(2,2)
x2 = cells(3,2)
x3 = cells(4,2)
x4 = cells(5,2)
x5 = cells(6,2)
wa = x1 + x2 + x3 + x4 + x5
cells(7,1) = "合計"
cells(7,2) = wa
と書くと、7つの数字を足すことが出来ます。ではもっと沢山のデータを足すにはどうすればよいでしょうか。
そのために、配列というものを使います。
配列
これまでの変数はxとかx1のように書きましたが、数学で使うx1, x2のように添え字付の変数を使うことも出来ます。添え字付の変数はx(1), x(2)のように書きます。使う場合は、プログラムの先頭で
Dim x(60)
のように、何個まで使うか明示しておく必要があります。
もしx(1)は使わなくてx(2)からx(10)まで使うのなら
Dim x(2 To 10)
と書きます。
11月19日の講義で使った1変量のデータをA1セルから貼り付けてください。
復習:Firefoxから貼り付けるときは「形式を選択して貼り付け」を選んで「テキスト」を選択します。
Cells(1,1)からCells(60,1)までに貼り付けられた数字をx(1)からx(60)へ読み込むには
For i = 1 To 100
x(i) = Cells(i, 1)
Next i
と書きます。
次に、これらを足すには、1+2+…+60の計算同様
wa = 0
For i = 1 To 60
wa = wa + x(i)
Next i
と書きます。
これらを繋げて、
Sub 合計()
Dim x(60)
For i = 1 To 60
x(i) = Cells(i, 1)
Next i
wa = 0
For i = 1 To 60
wa = wa + x(i)
Next i
Cells(1,2) = "合計"
Cells(1,3) = wa
End Sub
というプログラムで60個のデータを足すことが出来ます。
0 件のコメント:
コメントを投稿