エクセルVBAで平均を求める
こんにちわ。
エクセルVBA初心者です。
質問1
VBAで平均を求めているのですが、セルに関数が入ってしまいます。
これを入らずに計算できるようにするには、どのようにすればよい
でしょうか。
質問2
また、現状10000行まで計算できるようにしておりますが、本当は、
エクセルの限界まで(確か6万・・・行だったと思いますが)したい
のですが、どうすればよいでしょうか。
【補足】
P、Q列に夫々、F列の5つ平均(P)、25つ平均(25)を表示させるVBEで作成しています。
ただ、P,Q列を見ていただけるとAverage関数が入っています。
できれば、これを入らないようにしたいのです。
【対象となっているコード】
※ Module2に記載しています。
Const AVHI1 As Integer = 5 '移動平均日数1 可変にしなければ
Const AVHI2 As Integer = 25 '移動平均日数2 可変にしなければ
Sub 移動平均()
Dim endrh As Integer '最終セル
Application.ScreenUpdating = False
Worksheets("date").Select
'セル表示形式
Columns("P").Select
Selection.NumberFormatLocal = "0.0_ "
Columns("Q").Select
Selection.NumberFormatLocal = "0.0_ "
Range("G1").Select
'最終セル
Cells(10000, 1).End(xlUp).Select
endrh = ActiveCell.Row
Range("A2").Select
'データチェック
If endrh - AVHI2 < 4 Then
MsgBox "移動平均" & AVHI2 & "日分のデータ不足で計算できません"
Exit Sub
End If
'AVHI1(5日)の終値平均 ------------------------------------------
avhi = AVHI1 + 1
Range(Cells(2, 16), Cells(endrh - AVHI1, 16)).Formula = _
"=AVERAGE(F2:F" & avhi & ")" 'ここをVBAに調整
Range("G1").Select
'AVHI1(25日)の終値平均 ------------------------------------------
avhi = AVHI2 + 1
Range(Cells(2, 17), Cells(endrh - AVHI2, 17)).Formula = _
"=AVERAGE(F2:F" & avhi & ")" 'ここをVBAに調整
Range("G1").Select
Cells(1, 16) = AVHI1 & "_SMA"
Cells(1, 17) = AVHI2 & "_SMA"
Range("G1").Select
End Sub
お礼
早速のご回答ありがとうございます。 的確なご回答助かりました。 素晴らしい