- 前回の解答
Sub 練習()
Dim x() As Single, wa As Single, i As Integer, n As Integer
i = 1
Do While Selection.Cells(i, 1) <> "" And IsNumeric(Selection.Cells(i, 1))
i = i + 1
Loop
n = i - 1
Selection.Cells(n + 1, 1) = "個数"
Selection.Cells(n + 1, 2) = n
ReDim x(n)
For i = 1 To n
x(i) = Selection.Cells(i, 1)
Next i
wa = 0
For i = 1 To n
wa = wa + x(i)
Next i
Selection.Cells(n + 2, 1) = "合計"
Selection.Cells(n + 2, 2) = wa
heikin = wa / n
Selection.Cells(n + 3, 1) = "平均"
Selection.Cells(n + 3, 2) = heikin
End Sub
- 先週に引き続き今度はB組の身長の平均も計算してみましょう。
160 162 164 166 168 170 172 174 176 178 180 課題2
先ほど作った平均を求めるプログラムの後に、散らばり具合を計算するプログラムを書き足しましょう。
・まずそれぞれのデータから、既に求めた平均を引いてそれぞれのデータの右に表示しましょう。160 -10 162 -8 164 -6 166 -4 168 -2 170 0 172 2 174 4 176 6 178 8 180 10
・合計したものをデータの個数で割ります。A組なら10、B組なら40になった筈です。
これを分散と言います。 - B組のばらつきはA組の2倍なのですが、分散は2乗してから足しているために4倍になっています。
そこで分散の平方根を求めましょう。VBAでは平方根はsqr()関数を使います。
分散の平方根のことを標準偏差と言います。平均だけでなく分散、標準偏差はデータ解析の基礎として重要です。必ず覚えてください。
今回はBasicの練習のためにVBAを使って計算しましたが、Excelの関数でも計算できます。今回は前回の続きでしたので、早めに終わった人は別のトピックを勉強しましょう。
一つ目は,プログラムの途中でウィンドゥを表示するInputBoxとMsgBoxです。
- これまでに作ったプログラムは、プログラムを実行するときにデータの先頭をクリックしておく必要がありました。
その代わりに、Dim文の次に
Range(InputBox("何処から足しますか?", "データ入力範囲")).Select
という一行を加えてから実行すると、プログラムがデータの先頭が何処なのか尋ねるようになります。
A1と入力するとA1セルから足します。
- 一つの行に色々書くと分かりにくくなりますので、一つずつ分けて書きましょう。
dim msg as string,title as string, datarange
msg="何処から足しますか?"
title="データ入力範囲"
datarange=inputbox(msg,title)
Range(datarange).Select
一つ一つの意味を考えてみてください
- 結果の表示も
MsgBox(wa)
のように書いてみましょう。タイトルをつけるには
a = MsgBox(heikin, 0, "平均")
のように書きます。二つ目は,自分で定義する関数Functionです。
- VBAのプログラムは、サブプロシージャだけでなく自分で関数を定義することもできます。
簡単な例として、与えられた二つの数を足す関数を作りましょう。End Subより下をクリックして今度は「function tashizan(x,y)」と入力してください。すると先ほど同様
Function tashizan(x,y)
End Function
となります。今回も「Function tashizan(x,y)」と「End Function」の間にプログラムを書きます。今回はxとyの和を返すので
tashizan=x+y
と書きましょう。 - Functionの実行方法はSubと違います。Excelのシートに戻って、何処かのセルに
=tashizan(1,2)
と書いてみてください。3と表示されたら関数は正常に動作しています。 - Functionにおいて、与えられる変数や計算結果を返す変数の型を明示するには
Function tashizan(x As Single, y As Single) as Single
のように書きます。練習問題
次の関数を作ってください ・エクセルのセルに=wa(n)と入力すると、1+2+3+・・・+nを計算した結果を返すもの
つまり=wa(2)と書くと1+2、つまり3となり、=wa(3)と書くと1+2+3、つまり6になる関数。注意事項:Function の名前として"ex1"のような、「アルファベット 1 or 2 文字+数字」 の形式は、セルの名前と同じになるので使えません。
ドコモ、リユース品「iPhone 13 Pro」を最大44,000円割引、A+品が46,200円から
-
ドコモの公式オンラインストア「ドコモオンラインショップ」にて、docomo Certified(認定リユース品)の「iPhone 13
Pro」を新規契約またはMNP契約(のりかえ)で購入すると、本体代金が44,000円...
0 件のコメント:
コメントを投稿