静粛に、只今統計勉強中

仕事でデータ分析をすることになったバリバリ文系アラフィフのおっさんが、独学で統計の勉強を始めました。

Excel VBAで分析ツールの分散分析に等分散の検定とグラフも足してみた2

前回までに等分散の検定を検討したので、続けてグラフの作成とVBAでのコーディングを行います。

 

グラフの挿入

グラフ作成のコーディングは初めてだったので、マクロ記録を使いました。 

  1. グループと平均のセル範囲を選択して、折れ線グラフをクリック
    f:id:cyclo-commuter:20180112135553j:plain

  2. 見やすいかなと思って、マーカー付き折れ線にしてみました。
    f:id:cyclo-commuter:20180112135131j:plain

  3. グラフが挿入されます。
    f:id:cyclo-commuter:20180112140052j:plain

  4. このままだと味気ないので、エラーバーに標準誤差を表示させようと思います。

    f:id:cyclo-commuter:20180112140655j:plainなので、

  5. 分散の右に、こう。
    f:id:cyclo-commuter:20180112140722j:plain

  6. グラフ右上の[+]→誤差範囲→「その他のオプション」をクリック。
    f:id:cyclo-commuter:20180112135805j:plain

  7. 右下のユーザー設定にチェックを入れて【値の指定】をクリック。
    誤差範囲に 5.で入力した標準誤差の範囲を選択して【OK】をクリック。
    f:id:cyclo-commuter:20180112141236j:plain

  8. 位置を整えれば完成です。
    f:id:cyclo-commuter:20180112141805j:plain

で、マクロ記録されたコード(のうちセル入力部分を除いたの)がこちら↓

    Range("A4:A7,D4:D7").Select
    Range("D4").Activate
    ActiveSheet.Shapes.AddChart2(332, xlLineMarkers).Select
    ActiveChart.SetSourceData Source:=Range("Sheet2!$A$4:$A$7,Sheet2!$D$4:$D$7")
    ActiveChart.FullSeriesCollection(1).HasErrorBars = True
    ActiveChart.FullSeriesCollection(1).ErrorBars.Select
    ActiveChart.FullSeriesCollection(1).ErrorBar Direction:=xlY, Include:= _
        xlBoth, Type:=xlCustom, Amount:=-0
    ActiveChart.ChartArea.Select
    ActiveChart.Parent.Cut
    Range("A27").Select
    ActiveSheet.Paste

もちろん、このままでは使いものになりません。エラーバーの値設定なんて、「-0」とかなっちゃってるし。そこで、VBEで整えたコードがこちら↓

    'グラフを挿入
    Tmp(1) = ActiveSheet.Name & "!$A$4:$A$" & 4 + h
    Tmp(2) = ActiveSheet.Name & "!$D$4:$D$" & 4 + h
    Tmp(3) = "=" & ActiveSheet.Name & "!$F$5:$F$" & 4 + h
    ActiveSheet.Shapes.AddChart2(332, xlLineMarkers).Select
    With ActiveChart
        .Parent.Top = Cells(29 + h, 1).Top
        .Parent.Left = Cells(29 + h, 1).Left
        .SetSourceData Source:=Range(Tmp(1) & "," & Tmp(2))
        With .FullSeriesCollection(1)
            .HasErrorBars = True
            .ErrorBar Direction:=xlY, Include:=xlBoth, Type:=xlCustom, _
                Amount:=Tmp(3), MinusValues:=Tmp(3)
        End With
    End With

 ご覧のとおり、Excel2013以降のみ対応です。それより前のバージョンをお使いの方は、この部分のコードを、バージョンに合わせて丸々入れ替えていただければ、実行可能になります(でないとエラーになります)。

前に作成したANOVA_TKに上の2つを加えたANOVA_TK2.txtをDropboxに置いておきます。

 

実行結果

f:id:cyclo-commuter:20180112143419j:plain

おお、なんだか分析結果っぽくって、いい感じじゃないですか?