VBA Excel
分散が既知の場合の区間推定のプログラムを考えています。
次のマクロを実行するとエラーが出ます。
エラー:"1004" 引数の数の誤りがあります。
どこの行がエラーなのか分かりません。どこなのでしょうか?
また、プログラムでおかしいところがあったら、教えてください。
Sub Calculate(DataRange As String, OutRange As String, a As Single)
Dim RanData As Range
Dim Ave As Single, n As Single, n1 As Integer, n2 As Integer
Dim Std As Single, s As Single, p As Single, z As Single, aa As Single
Dim b As Single, kukan As Single, Max As Single, Min As Single
Set RanData = Range(DataRange)
n1 = RanData.Rows.Count
n2 = RanData.Columns.Count
n = n1 + n2
Ave = Application.Average(RanData)
Std = Application.StDev(RanData)
s = Std * Std
p = (1 + a) / 2
z = Application.NormInv(0, 1)
b = Sqr(s / n)
kukan = z * b
Max = Ave + kukan
Min = Ave - kukan
aa = a * 100
Range(OutRange).Select
Call output("信頼度", aa)
Call output("標本数", n)
Call output("平均", Ave)
Call output("標準偏差", Std)
Call output("分散", s)
Call output("信頼区間", kukan)
Call output("信頼上限", Max)
Call output("信頼下限", Min)
End Sub
Private Sub output(name As String, x As Single)
ActiveCell.Range("A1") = name
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Range("A1") = x
ActiveCell.Offset(1, -1).Range("A1").Select
End Sub
Sub Prob()
UserForm1.Show
End Sub
お礼
残念ながら、書式設定されたテンプレートではなく、数値の羅列でしかありません。 (-_-;) (元々は0001、0010、0100、1000、の形で意味は左から小数点無し、一桁、二桁、三桁、最初round関数を試そうと、それぞれ0,1,2,3に変換してみたり、、、0、0.1、0.01、0.001に変換してみたり。。) やっぱり地道に設定するしかないのでしょうかね?