| 
    
     |  | > Function 日数(範囲,誤差)'まずここの範囲の書き方がわかりません。 
 これでも間違いではありません。とりあえず大丈夫です。
 
 > Range("A1") "=count(範囲)"
 > m = Range("A1")
 
 例では、データ範囲は A1:P1 なんですよね?
 A1に範囲のデータ数を書き込んじゃうと、データが上書きされますよ。
 
 そもそも、範囲のデータ数を、なぜ何かのセルに書き込もうとしているのでしょうか?
 このあとで Range("A1") を「範囲のデータ数」として参照しているわけでもないですし。
 直接、変数に代入すれば良いですよ。
 
 m に限らず、後出の s も、変数は Dim で宣言するようにしましょう。
 
 範囲のデータ数、というか、範囲のセル数は、範囲.Count で求められます。
 
 m = 範囲.Count
 
 > For s = 1 to m
 > 'ここの標準偏差関数はSTDEV(range(cells(,),cells(,)))と言う書き方ではできないですが、どのような書き方に
 > ’なるのでしょうか?
 
 いろいろ書き方はありますが、今回の場合は、あるセルを基準に10個、ということなので、
 Cells(1, s).Resize(, 10)
 という書き方が良いと思います。
 ただ、これだと、どんな範囲の場合でも、A1が基準になってしまうので、
 範囲.Cells(1, s).Resize(, 10)
 と書きます。
 
 STDEVはワークシート関数なので、そのままVBAで使うことはできません。
 WorksheetFunction.StDev(範囲.Cells(1, s).Resize(, 10))
 という書き方になります。
 
 > If 誤差 =< (STDEV(Range(cells(1,s),cells(1,s + 9)/STDEV(cells(1,s + 1),cells(1,s + 10))/100 Then
 
 まず、=< という演算子はありません。書くとしたら、<= です。
 
 この比較式だと、誤差 <= 計算式 となり、誤差外になります。
 誤差内にしたいのであれば、誤差 >= 計算式 ですね。
 
 100で割ってるのはなぜですか?
 百分率値にしたいのであれば、計算式に100を掛けましょう。
 
 標準偏差の計算式は、上記を参考にしてください。
 
 > 日数 = s         'ここで誤差内で合格したデータの処理回数の合計を数えています。
 >     If (m-s) = 10 Then 'この計算では最低11のデータがないと成り立たないので処理を終了させる。
 >     exit For
 >     end If
 > Else
 > exit For         'ここで誤差外が出たら、処理を終了
 > end If
 > Next s
 > end Function
 
 |  |