Excel VBAで分析ツールの分散分析に等分散の検定とグラフも足してみた2
前回までに等分散の検定を検討したので、続けてグラフの作成とVBAでのコーディングを行います。
グラフの挿入
グラフ作成のコーディングは初めてだったので、マクロ記録を使いました。
- グループと平均のセル範囲を選択して、折れ線グラフをクリック
- 見やすいかなと思って、マーカー付き折れ線にしてみました。
-
グラフが挿入されます。
- このままだと味気ないので、エラーバーに標準誤差を表示させようと思います。
なので、
-
分散の右に、こう。
-
グラフ右上の[+]→誤差範囲→「その他のオプション」をクリック。
-
右下のユーザー設定にチェックを入れて【値の指定】をクリック。
誤差範囲に 5.で入力した標準誤差の範囲を選択して【OK】をクリック。 -
位置を整えれば完成です。
で、マクロ記録されたコード(のうちセル入力部分を除いたの)がこちら↓
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に置いておきます。
実行結果
おお、なんだか分析結果っぽくって、いい感じじゃないですか?