練習問題と内容について
・練習問題の狙い
このシリーズでは課題を元にマクロVBAを実践することでスキルを身につけることが出来ます。
正直、ソースコード作成については実践あるのみです!
答えのコードについては数例挙げますが、「もっといい答えがある」などの意見があれば
問い合わせから連絡ください!
こんな問題を作ってほしいなどの意見もお待ちしております!
・練習問題15について
こちらはマクロVBAの知識で少し発展した課題になります。
指定されたセルの数値を元に、母集団・サンプルの標準偏差を求める練習問題となります。
それでは頑張っていきましょう!
練習問題の内容と動作説明
問題内容
セル番地A1からA10までの標準偏差を求める
動作説明
VBAを使用して、セル番地A1からA10までの数値データの標準偏差を求めます。
この問題では、与えられたセル範囲のデータを取得し、その標準偏差を計算して結果を表示する必要があります。
ヒント
以下のヒントを参考にして解答コードを作成してみてください。
・ヒントその1
セルに値を表示するためには、Rangeオブジェクトを使用します。
セル番地を指定して該当するセルオブジェクトを取得し、計算する必要があります。
セル範囲を指定するには、Range(“D1:D5”)というように範囲の開始セルと終了セルを指定します
・ヒントその2
取得したデータを使って標準偏差を計算するためには、VBAの統計関数を使用する必要があります。
例えば、WorksheetFunction.StDev()関数を使用して、セル範囲のデータの標準偏差を計算することができます。
・ヒントその3
標準偏差には「母集団」として算出する方法と「サンプル」として算出する方法があります。
すべてのデータがある場合はSTDEV.P関数の「母集団」で計算しますが
データを抜き取って計算することになるため、STDEV.S関数の「標本(サンプル)」で計算することになります。
使い分けは下記の通りです。
標本で標準偏差:STDEV.S(対象データ)
以上のヒントを参考に課題に取り組んでみてください!
Excel 2013以下を使用している方はサポートが終了しているので注意が必要です!
【最新2023年】Excel・Officeの価格比較!あなたに合ったオススメの製品の選定方法から購入 ► 独学エクセル塾 (dokugakuexcel.com)
解答コード
では回答を見ていきましょう!
・回答その①
Sub Exercise15to1()
Dim rng As Range
Dim stdev As Double
Set rng = Range(“A1:A10”)
stdev = WorksheetFunction.stdev(rng )
Range(“C2”).Value = stdev
End Sub
上記のコードは、セル番地A1からA10までのデータの標準偏差を求めるVBAのマクロです。
解答コードでは、Rangeオブジェクトを使用してセル範囲を指定し、WorksheetFunction.StDev()関数を使用して標準偏差を計算します。
計算結果はstdev変数に格納され、C2に表示されます。
それでは実行してみましょう。
結果はこのようになります。
A1からA10の数値の標準偏差は「8.61…」ということがわかりました。
・回答その②
Sub Exercise15to2()
Dim sum As Double
Dim mean As Double
Dim variance As Double
Dim stdev As Double
Dim rng As Range
Set rng = Range(“A1:A10”)
Dim cell As Range
For Each cell In rng
sum = sum + cell.Value
Next cell
mean = sum / rng .Cells.count
For Each cell In rng
variance = variance + (cell.Value – mean) ^ 2
Next cell
variance = variance / rng .Cells.count
stdev = Sqr(variance)
Range(“C2”).Value = stdev
End Sub
上記のコードは、セル番地A1からA10までのデータの標準偏差を求める別の解答例です。
この解答コードでは、ループを使用してセルの値の合計、平均値、分散を計算し、その後分散から標準偏差を求めます。
使用しないとは思いますが、こちらが標準偏差の計算方法の基礎となります。
母集団とサンプルの違いと計算方法
標準偏差には母集団・サンプルの計算方法があります。
それでは違いと使用方法を見てみましょう。
・標準偏差の母集団とサンプルとは
標準偏差には「母集団」として算出する方法と「サンプル」として算出する方法があります。
すべてのデータがある場合はSTDEV.P関数の「母集団」で計算しますが
データを抜き取って計算することになるため、STDEV.S関数の「標本(サンプル)」で計算することになります。
・母集団の計算方法
まず母集団の計算方法を紹介します。ソースコードはこちらです。
母集団を計算するときは「StDevP関数」を使用します
Dim rng As Range
Dim stdev As Double
Set rng = Range(“A1:A10”)
stdev = WorksheetFunction.StDevP(rng )
Range(“C2”).Value = stdev
End Sub
上記のコードは、セル番地A1からA10までのデータの母集団の標準偏差を求めるVBAのマクロです。
解答コードでは、WorksheetFunction.StDevP()関数を使用してセル範囲のデータの母集団の標準偏差を計算します。
・サンプルの計算方法
次にサンプルの計算方法を紹介します。ソースコードはこちらです。
サンプルを計算するときは「StDev関数」を使用します
Dim rng As Range
Dim stdev As Double
Set rng = Range(“A1:A10”)
stdev = WorksheetFunction.stdev(rng )
Range(“C2”).Value = stdev
End Sub
上記のコードは、セル番地A1からA10までのデータのサンプルの標準偏差を求めるVBAのマクロです。
解答コードでは、WorksheetFunction.StDev()関数を使用してセル範囲のデータのサンプルの標準偏差を計算します。
必要な知識
この問題を解くためには、以下の基本的な知識が必要です。
統計関数の使用
標準偏差を求めるためには、統計関数を使用する必要があります。
VBAでは、WorksheetFunctionオブジェクトを使用してExcelの統計関数を呼び出すことができます。
この問題では、StDev()またはStDevP()関数を使用してセル範囲の標準偏差を計算します。
WorksheetFunctionの使用
積を求めるためには、WorksheetFunctionが必要です。 下記参考記事で紹介しています!
まとめ
練習問題を通じて、VBAのスキルを向上させることができました。
より高度な問題に挑戦することで、より複雑な操作や処理を実現できるようになるでしょう。
これらの練習問題を通じて、VBAの理解を深め、Excelの自動化やデータ処理の効率化に役立てることができます。
継続的な学習と実践を通じて、VBAのスキルを磨いていきましょう。
以上が練習問題15となります。お疲れ様でした!