2014-01-31
2014-01-30
ユーザーフォームの作成
フォームの作成
メッセージボックスだけでは「はい」「いいえ」だけしか入力できませんので、自分でデザインできるフォームを使ってみましょう。
するとこのような画面が開きますので、ここを自分でデザインします。
このフォームにはUserForm1という名前がついています。これは変更する必要がないのですが、画面に表示されるタイトルを変更しましょう。
画面の左下のプロパティの中のCaption欄がこのウィンドゥのタイトルですので、ここを「休講診断」に変更します。
すると画面のタイトルが「休講診断」に変更されました。
次にボタンを設置します。
休講診断のウィンドゥをクリックすると、「ツールボックス」が表示されます。

この中の「コマンドボタン」をクリックしてください。
するとボタンが表示されます。表示されている文字の変更もCaptionを書きかえればできます。

ここを「気象情報を確認」に書き換えてください。
次に、「気象情報を確認」をクリックしたときに開く2番目のウィンドゥを用意します。
先ほどと同じように挿入から「ユーザーフォーム」を選びます。
これにはUserForm2という名前がついています。
今度はこのウィンドゥのタイトルを「午前6時」にしてください。
次に、単に文字を表示する「ラベル」を入れます。
ツールボックスからラベルを選んでください。

UserForm2にラベルを置いて、Captionを「警報は発表されていますか?」に書き換えます。
さらに、先ほど同様にボタンを二つ置いて「はい」「いいえ」にします。

これらのボタンをクリックして、左側のプロパティのところを見てください。
CommandButton1というのがこのボタンの名前、CommandButtonというのがこのボタンの種類です。
マクロの用意
二つのFormを用意出来たので、「気象情報を確認」をクリックしたらUserForm2が表示されるようにします。
「気象情報を確認」のボタンをダブルクリックすると、マクロを書く部分が表示されます。
ここに
UserForm2.Show
Unload Me
と書きます。
最初のUserForm2.Showは、UserForm2を表示しなさい、という意味で、
次のUnload Meは自分自身(UserForm1)の表示を止めなさい、という意味です。
最後に、UserForm1を表示するマクロを書いて、実行してみましょう。
来週末までの課題
前回までのIF文を使った課題と同じ、以下の休講判断を、このフォームの組み合わせで作ってください。UserForm3というフォームを作って「全ての授業休講」いうラベルと「はい」というボタンを置きます。そして先ほど作ったUserForm2で「はい」のボタンを押したらUserForm3が表示されるようにします。
UserForm4というフォームを作って「気象情報・交通機関の運行」というラベルと「確認」というボタンを置きます。そしてUserForm2で「いいえ」のボタンを押したらUserForm4が表示されるようにします。
UserForm5というフォームを作って午前8時40分での警報を確認します。警報がある方のボタンを押したら、先ほど作ったUserForm3が表示されるようにします。
2014-01-28
2014-01-24
2014-01-23
複雑なIF文
次の二つの例題に関して、xやyの値がどんな時に「いただきます」と表示されるのか、
表示される条件が例1と例2でどのように違うのか考えてみてください。
マクロを書いて実行するときにIfとEnd IFの対応が合ってなくてエラーになって、後からEnd Ifを書き足した時に、間違いの原因となります。
例1
If x > 0 Then
Msgbox ("こんにちは")
If y > 0 Then
Msgbox ("ありがとう")
Else
Msgbox ("こんばんは")
End If
Else
Msgbox ("さようなら")
If y > 0 Then
Msgbox ("おはよう")
Else
Msgbox ("いただきます")
End If
End If
例2:
If x > 0 Then
Msgbox ("こんにちは")
If y > 0 Then
Msgbox ("ありがとう")
Else
Msgbox ("こんばんは")
End If
Else
Msgbox ("さようなら")
End If
If y > 0 Then
Msgbox ("おはよう")
Else
Msgbox ("いただきます")
End If
このままでは、書いた私自身でも理解するのが大変難しいです。
そこで、If~Else~End Ifで囲まれた部分を少し右にずらします。
例1
If x > 0 Then
Msgbox ("こんにちは")
If y > 0 Then
Msgbox ("ありがとう")
Else
Msgbox ("こんばんは")
End If
Else
Msgbox ("さようなら")
If y > 0 Then
Msgbox ("おはよう")
Else
Msgbox ("いただきます")
End If
End If
例2:
If x > 0 Then
Msgbox ("こんにちは")
If y > 0 Then
Msgbox ("ありがとう")
Else
Msgbox ("こんばんは")
End If
Else
Msgbox ("さようなら")
End If
If y > 0 Then
Msgbox ("おはよう")
Else
Msgbox ("いただきます")
End If
右にずらすのは人間が読みやすくするためであり、Excelの動作には関係ありません。
IfとEnd IFの対応が合わなくなるのを防ぐには、Ifを書いた時に中身を書く前にElseやEnd Ifを一緒に書いておくのが良いです。
前回の問題の続き
前回の条件分岐は、まず最初に二つに分かれます。
従って、マクロは
If 午前6時に警報は出ているか Then
青の部分
Else
緑の部分
End If
となり、さらに緑の部分が二つに分かれるので、

この部分を詳しく書き足して
If 午前6時に警報は出ているか Then
青の部分
Else
If 午前8時40分に警報は出ているか Then
赤の部分
Else
黄の部分
End If
End If
となります。
このようにIf Then~Else~End Ifの対応に注意しながら、包含関係を考えてください。
課題
前回の課題を完成させて、出来た人は次のフォームの作り方を自習してください。
フォームの作成
メッセージボックスだけでは「はい」「いいえ」だけしか入力できませんので、自分でデザインできるフォームを使ってみましょう。
するとこのような画面が開きますので、ここを自分でデザインします。
このフォームにはUserForm1という名前がついています。これは変更する必要がないのですが、画面に表示されるタイトルを変更しましょう。
画面の左下のプロパティの中のCaption欄がこのウィンドゥのタイトルですので、ここを「休講診断」に変更します。
すると画面のタイトルが「休講診断」に変更されました。
次にボタンを設置します。
休講診断のウィンドゥをクリックすると、「ツールボックス」が表示されます。

この中の「コマンドボタン」をクリックしてください。
するとボタンが表示されます。表示されている文字の変更もCaptionを書きかえればできます。

ここを「気象情報を確認」に書き換えてください。
次に、「気象情報を確認」をクリックしたときに開く2番目のウィンドゥを用意します。
先ほどと同じように挿入から「ユーザーフォーム」を選びます。
これにはUserForm2という名前がついています。
今度はこのウィンドゥのタイトルを「午前6時」にしてください。
次に、単に文字を表示する「ラベル」を入れます。
ツールボックスからラベルを選んでください。

UserForm2にラベルを置いて、Captionを「警報は発表されていますか?」に書き換えます。
さらに、先ほど同様にボタンを二つ置いて「はい」「いいえ」にします。

これらのボタンをクリックして、左側のプロパティのところを見てください。
CommandButton1というのがこのボタンの名前、CommandButtonというのがこのボタンの種類です。
マクロの用意
二つのFormを用意出来たので、「気象情報を確認」をクリックしたらUserForm2が表示されるようにします。
「気象情報を確認」のボタンをダブルクリックすると、マクロを書く部分が表示されます。
ここに
UserForm2.Show
Unload Me
と書きます。
最初のUserForm2.Showは、UserForm2を表示しなさい、という意味で、
次のUnload Meは自分自身(UserForm1)の表示を止めなさい、という意味です。
最後に、UserForm1を表示するマクロを書いて、実行してみましょう。
2014-01-16
対話型プログラム
条件分岐
場合分けのためのIF文は重要ですので、今週もIF文の使い方を中心にします。
InputBox
昨年は1から100までの合計を計算しましたが、マクロを実行する時に、幾つまでの合計を計算するか尋ねるマクロを書いてみましょう。
Sub 対話型合計()
n = InputBox("幾つまでの和を計算しますか")
'ここに1からnまでの合計を計算してwaという変数に代入するプログラムを書いてください
cells(1,1)=wa
End Sub
条件分岐
先ほどのマクロを、正の数が入力された時だけ計算するように書き換えましょう。このような条件判断にはIf文を使います。
If文の書き方は、
If 条件 Then
条件が成り立つときに実行する文
End If
でしたので、
Sub 対話型合計()
n = InputBox("幾つまでの和を計算しますか")
If n > 0 Then
'ここに1からnまでの合計を計算してwaという変数に代入するプログラムを書いてください
cells(1,1)=wa
End If
End Sub
と書きます。
数字の判定
先ほどのInputBoxに、数字以外のものを入れると計算できません。だから、単に0より大きいかどうかだけでなく、数字かどうかも含めて判定しましょう。
nが数字かどうかは
IsNumeric(n)
で判断します。
If文で、二つの条件が共に成り立つことは And で表すので、If文は
If IsNumeric(n) And n > 0 Then
となります。
Else文
条件が成り立たなかった場合に実行する文がある時には
If 条件 Then
条件が成り立つときに実行する文
Else
条件が成り立たなかったときに実行する文
End If
のように書きます。
練習
- 正の数が入力されたらその数までの和を計算して表示する
- 正の数が入力されなかったら、「正の数を入力してください」というメッセージを表示する
メッセージを表示するには
MsgBox ("正の数を入力してください")
と書きます。
MsgBoxの使い方
MsgBox( )の(括弧)の中に" "で囲まれた文字を書くと、その文字が表示されます。例
MsgBox ("正の数を入力してください")
" "なしで変数の名前を書くと、その変数の値が表示されます。
例えば、和を計算するプログラムで
Cells(1, 1) = wa
の代わりに
MsgBox(wa)
と書いてみてください。
MsgBoxによる質問
MsgBoxは、単に文字を表示するだけでなく、OK、キャンセルなど、どのボタンがクリックされたかを知ることも出来ます。試しに
x = MsgBox("あなたはお昼ごはんを食べましたか", 4, "質問")
If x = 6 Then
MsgBox ("午後も元気ですね")
Else
MsgBox ("ちゃんと食べてくださいね")
End If
を実行して、質問に答えてください。
使い方一覧
aとかbの文字は必要に応じて書き換えてください。
x = MsgBox("a", 1, "b")

OKをクリックするとxに1が代入され、キャンセルをクリックするとxに2が代入されます。
x = MsgBox("a", 1, "b")
MsgBox (x)
を実行して、xの値を確かめてください。
他にも、次のようなメッセージボックスがあります。
クリックしたボタンとxに代入される値の関係は次のようになっています。
| 1 | OK |
| 2 | キャンセル |
| 3 | 中止 |
| 4 | 再試行 |
| 5 | 無視 |
| 6 | はい |
| 7 | いいえ |
練習問題
この流れ図をマクロに書いてください。
2014-01-14
2014-01-10
2014-01-09
行列の計算
冬休みの間にgmailの仕様が変更されたので、ログインした時に次のような画面が表示されると思います。

ここに書かれているように、メールの中に画像を表示するときの安全性が向上したということですので、OKを押してください。
前回の解答
Sub 数えて足す()Dim x() '配列xは、個数を指定せずにおきます。
j = 1
Do While Cells(j + 1, 2) <> ""
j = j + 1
Loop
人数 = j - 1
'人数を数えたので配列を用意して身長のデータを読み込みます。
ReDim x(人数)
For j = 1 To 人数
x(j) = Cells(j + 1, 2)
Next j
'全てのデータを足します。
wa = 0
For j = 1 To 人数
wa = wa + x(j)
Next j
'合計と、人数で割った平均をシートに書き込みます。
Cells(人数 + 3, 1) = "合計"
Cells(人数 + 3, 2) = wa
身長の平均 = wa / 人数
Cells(人数 + 4, 1) = "平均"
Cells(人数 + 4, 2) = 身長の平均
End Sub
行列の計算
Excelには行列の掛け算をしたり、逆行列を求める機能があります。マクロを使って行列の演算をしてみましょう。
行列の準備
次のように行列を入力してください。
エクセルのワークシートのどの部分が行列なのかを指定します。
Sub 行列()
Dim A As Range
Set A = Range(Cells(1, 1), Cells(2, 2))
最初に、Aはワークシートの範囲を指定するものだと宣言して
次にCells(1, 1)からCells(2, 2)までの長方形が行列Aの範囲だと指定します。
演算してみましょう。
行列一つだけで計算できる例として、転置と、行列式を求めてみます。
Dim B As Range
Set B = Range(Cells(4, 1), Cells(5, 2))
B = Application.Transpose(A)
これで、行列Bの場所であるCells(4, 1)からCells(5, 2)までの長方形に行列Aの転置が出力されます。
Cells(7, 1) = Application.MDeterm(A)
これで、行列Aの行列式がCells(7, 1)に出力されます。
行列の掛け算
今度は二つの行列を掛け算した行列を求めましょう。エクセルのシート1とシート2の両方に先ほどの行列を書いてください。
Sub 掛け算()
Dim A As Range, B As Range, C As Range
Set A = Range(Sheets(1).Cells(1, 1), Sheets(1).Cells(2, 2))
Set B = Range(Sheets(2).Cells(1, 1), Sheets(2).Cells(2, 2))
Set C = Range(Sheets(3).Cells(1, 1), Sheets(3).Cells(2, 2))
C = Application.MMult(A, B)
End Sub
これでシート3の行列Cに、行列の積ABが出力されます。
必ず「標準モジュール」にマクロを書いてください。
連立一次方程式
Ax=b
と書けます。
この式に左からAの逆行列を掛けて
x=A-1b
ですから、エクセルを使って計算するのは
Aの逆行列A-1
A-1とbの行列の積
です。
シート1のCells(1, 1)からこの連立一次方程式の係数行列と定数項を並べて

このように代入します。
この中のCells(1, 1)からCells(2, 2)までの長方形を行列A
Cells(1, 3)からCells(2, 3)までの長方形を行列B
シート2のCells(1, 1)からCells(2, 2)までの長方形にAの逆行列を代入するのでここを行列C
シート3のCells(1, 1)からCells(2, 1)までの長方形に、答えの行列行列を代入するのでここを行列D
とします。
Sub renritsu()
Dim A As Range, B As Range, C As Range, D As Range
Set A = Range(Sheets(1).Cells(1, 1), Sheets(1).Cells(2, 2))
Set B = Range(Sheets(1).Cells(1, 3), Sheets(1).Cells(2, 3))
Set C = Range(Sheets(2).Cells(1, 1), Sheets(2).Cells(2, 2))
Set D = Range(Sheets(3).Cells(1, 1), Sheets(3).Cells(2, 1))
C = Application.MInverse(A)
D = Application.MMult(C, B)
End Sub
解けない場合の処理
このような場合に対処するために、逆行列を求める前に行列式を計算して、行列式が0ではない場合だけ連立一次方程式を解くようにしましょう。
場合分けにはIf文を使います。
If 条件 Then
'ここに条件が成立した時に実行する文を書く
Else
'ここに条件が成立しなかった時に実行する文を書く
End If
このように書きます。
条件が成立しなかった時は何も実行しないなら
If 条件 Then
'ここに条件が成立した時に実行する文を書く
End If
練習
ここまでに説明したことを使って、解ける方程式は解く、解けない方程式は「解けません」と表示するマクロを書いてください。解けないと表示するためには
msgbox("解けません")
と書きます。
2014-01-07
2013-12-20
2013-12-19
データの集計
For文を使った足し算
1から10までの数の合計を計算しましょう。cells(1,1)=1+2+3+4+5+6+7+8+9+10
と書いても計算できますが、これでは「1から100までの数の合計を計算しなさい」と言われた時に大変です。
同じような作業の繰り返しはパソコンに任せましょう。
sub 足し算()
wa=0
for j=1 to 10
wa=wa+j
next j
cells(1,1)=wa
end sub
と書いて実行すると、cells(1,1)に1から10までの数の合計が計算されます。
理由は、まず最初にwa=0にしておいて
wa=wa+1 (この時点でwaは1)
wa=wa+2 (この時点でwaは1+2)
wa=wa+3 (この時点でwaは1+2+3)
wa=wa+4 (この時点でwaは1+2+3+4)
wa=wa+5 (この時点でwaは1+2+3+4+5)
wa=wa+6 (この時点でwaは1+2+3+4+5+6)
wa=wa+7 (この時点でwaは1+2+3+4+5+6+7)
wa=wa+8 (この時点でwaは1+2+3+4+5+6+7+8)
wa=wa+9 (この時点でwaは1+2+3+4+5+6+7+8+9)
wa=wa+10(この時点でwaは1+2+3+4+5+6+7+8+9+10)
となるからです。
練習:1から100までの数の合計を計算しなさい。
For文を使った足し算
実際のデータの足し算をしてみましょう。以前と同じデータを使います。
|
出典 |
すると20人の身長はB2からB21、つまりCells(2,2)からCells(21,2)にあります。
このままでは番号が分かりづらいので、x(1), x(2),...,x(20)という変数を用意して、そこへ代入します。
sub 身長と座高()
dim x(20)
for j=1 to 20
x(j)=cells(j+1,2)
next j
end sub
ここまででは身長のデータを配列x(1), x(2),...,x(20)に読み込んで終わりです。
練習:20人の身長の合計を計算して、一行あけたcells(23,2)に代入するようにマクロを書き足しなさい。
sub 身長と座高()
dim x(20)
for j=1 to 20
x(j)=cells(j+1,2)
next j
ここに身長の合計を変数 wa に代入するマクロを書く
cells(23,1)="合計"
cells(23,2)=wa
end sub
合計を計算したら続けて平均も計算できます。
変数名に漢字を使うこともできます。
sub 身長と座高()
dim x(20)
for j=1 to 20
x(j)=cells(j+1,2)
next j
ここに身長の合計を変数 wa に代入するマクロを書く
cells(23,1)="合計"
cells(23,2)=wa
身長の平均=wa/20
cells(24,1)="平均"
cells(24,2)=身長の平均
end sub
"平均"のように " " で囲むと 平均 という文字が表示され、囲まないと 身長の平均 という変数に代入された値が表示されます。
While文を使って個数を数える
今回は20人のデータでしたが、一つのマクロを複数のデータに対して用いる場合は、データによって人数が一定とは限りません。そのような場合のために、マクロの最初で人数を数えましょう。
数える操作は何回繰り返すかが分かっておらず、上から順に見ていって最後に到達するまで繰り返します。
このように、条件を指定して繰り返すにはWhile文を使います。
Do While 条件
この部分が繰り返される
Loop
先ほどのマクロのEnd Subより後に、次のマクロを書いてみてください。
Sub 数える()
j = 1
Do While Cells(j + 1, 2) <> ""
j = j + 1
Loop
人数=j
MsgBox (人数)
End Sub
最後のMsgBox(人数)は、人数という変数の値を表示するマクロです。
Cells(j+1,2)が空っぽではない間は繰り返す、という意味です。
正しく数えられましたか?ずれていた場合はその理由を考えましょう。
配列の大きさを変更する。
人数が分かったので配列を用意するときにDim x(人数)
と書きたいのですが、これではエラーになります。
配列を用意するときの(括弧)の中に変数を書くことは出来ません。
マクロの途中で配列の大きさを変えるには、まず最初に
Dim x()
のように(括弧)の中に何も書かずに
人数を数えた後で
ReDim x(人数)
と書きます。
練習
先ほど作ったマクロを、最初から20人に限らず、マクロの中で人数を数えて配列を用意して計算するように改造してください。2013-12-17
2013-12-13
2013-12-12
Excelのマクロ
HTMLの課題
自分でテーマを決めて、ホームページを作ってください。 内容は何でもいいですが、例えばパワーポイントの課題と同じテーマを使えば内容を新たに考える手間が省けます。条件は
- 少なくともindex.htm, link.htm, index1.htm の3つのファイルを作って下さい。index2.htmなどもっと作っても構いません。
index.htmは http://www.edu.cc.okayama-u.ac.jp/[公開DIR名]/ と指定すれば他の人からも読むことが出来ます。それ以外のページは、例えばlink.htmだったら http://www.edu.cc.okayama-u.ac.jp/[公開DIR名]/link.htm と指定すれば読むことが出来ます。 - index.htmからはlink.htm, index1.htmへのリンクを作り、link.htm, index1.htmからindex.htmに戻るリンクを作って下さい。
- link.htmには他のサイト(友達、僕、岡山大学、外部などどこでもいいです)へのリンクを作って下さい。
- 画像を貼る
- 色をつける。文字の色でも背景の色でもいいです。
- 練習問題2の表を入れる。この表を入れておけば、もっと別の表を入れても構いません。
- 岡山駅から、どこか行ってみたい場所への経路を示す地図を入れてください。
但し、自宅や友人宅など、個人的な場所は駄目です。このページは学内の誰からも見ることが出来ますから。
Excelの自動処理
Excelで多くのデータを処理していると、同じような操作の繰り返しで面倒になります。エクセルは、プログラムを書くことで処理を自動化出来ます。
プログラムのことを、マクロとも呼びます。
準備
最初に一度だけやっておくことがあります。エクセルのファイルからオプションを選びます。
左側で「リボンのユーザー設定」を選んで、右側の「開発」にチェックをつけます。
すると「開発」タブが表示されるので、「マクロのセキュリティ」をクリックします。
すべてのマクロを有効にする(推奨しません。危険なコードが実行される可能性があります)をクリックします。
ここで警告されたように自分で作ったプログラムだけでなく、他の人が作った危険なプログラムも実行できるようになってしまいます。
インターネットからダウンロードしたエクセルファイルを開くときには「警告を表示してすべてのマクロを無効にする」を選んでください。

これで準備は終わりです。
マクロでどんなことが出来るか?
マクロを使うとどんなことが出来るか確かめるために、開発タブの「マクロの記録」をクリックします。
セルに1,2,3,4,5を入力して、記録終了をクリックします。
ここで、先ほど入力した1,2,3,4,5を全部消してから、「マクロ」をクリックします。
どのマクロを実行するか聞かれるので、そのまま「実行」をクリックします。

すると先ほど入力した1,2,3,4,5が再び入力されます。
このように、マクロを使うと、エクセルの操作を自動化出来ます。
どんな仕組みになっているか見てみましょう。
開発タブのVisual Basicをクリックします。
左側の、標準モジュールの中のModule 1をクリックすると、エクセルが記録したマクロが表示されます。

これが先ほど行った、1,2,3,4,5を縦に順に記録する操作をプログラムに書いたものです。
これから、このプログラムの書き方を勉強しましょう。
自分で書いてみる
新規に書くために、Excelを保存せずに終了させて、もう一度立ち上げてください。「開発」タブから「Visual Basic」を起動します。
ここに
sub 練習
とだけ書いてEnterを押します。すると
Sub 練習()
End Sub
となります。

このSub 練習()とEnd Subの間に自分でマクロを書きます。
cells(1,1)=1
と書いて、その上の右向きの三角形をクリックします。
するとエクセルの、上から1行目、左から1列目のセルに1と入力されています。
等号は、左辺を右辺と等しくするという意味で、右側の1を左側のCells(1, 1)に代入します。

さらにCells(1,1)=1とEnd Subの間に
cells(2,1)=2
cells(3,1)=3
cells(1,2)=-2
cells(1,3)=-3
と書いて実行して、cellsの二つの添え字がエクセルの縦と横のどちらに対応しているか確かめてください。
For文
Cells(1, 1) = 1Cells(2, 1) = 2
Cells(3, 1) = 3
Cells(4, 1) = 4
Cells(5, 1) = 5
Cells(6, 1) = 6
Cells(7, 1) = 7
Cells(8, 1) = 8
Cells(9, 1) = 9
Cells(10, 1) = 10
と書くのは大変です。このような似ている処理を繰り返すために
For j = 1 To 10
Cells(j, 1) = j
Next j
と書くことが出来ます。
練習問題
次の九九の表を作るマクロを書いてください。但し掛け算はセルに入力するときと同じく * です。
保存するときの注意
名前を付けて保存から、必ず「Excelマクロ有効ブック(*.xlsm)」を選んでください。Excelブック(*.xlsx)だとマクロが保存されません。
For文を使った足し算
1から10までの数の合計を計算しましょう。cells(1,1)=1+2+3+4+5+6+7+8+9+10
と書いても計算できますが、これでは「1から100までの数の合計を計算しなさい」と言われた時に大変です。
同じような作業の繰り返しはパソコンに任せましょう。
sub 足し算()
wa=0
for j=1 to 10
wa=wa+j
next j
cells(1,1)=wa
end sub
と書いて実行すると、cells(1,1)に1から10までの数の合計が計算されます。
理由は、まず最初にwa=0にしておいて
wa=wa+1 (この時点でwaは1)
wa=wa+2 (この時点でwaは1+2)
wa=wa+3 (この時点でwaは1+2+3)
wa=wa+4 (この時点でwaは1+2+3+4)
wa=wa+5 (この時点でwaは1+2+3+4+5)
wa=wa+6 (この時点でwaは1+2+3+4+5+6)
wa=wa+7 (この時点でwaは1+2+3+4+5+6+7)
wa=wa+8 (この時点でwaは1+2+3+4+5+6+7+8)
wa=wa+9 (この時点でwaは1+2+3+4+5+6+7+8+9)
wa=wa+10(この時点でwaは1+2+3+4+5+6+7+8+9+10)
となるからです。
練習:1から100までの数の合計を計算しなさい。










