

質問事項は、モンテカルロ法のエクセルでの計算とVBAの組み合わせです。  
売上高に乱数を入れて変化をさせ、その変化した5期分の売上高を元に成長率を計算するエクセルシートを作成しました。  
その結果の成長率を1000回試行した結果を以って、モンテカルロ法でボラティリティを出すことをしたいです。

その1000回試行を、エクセルシートの計算を使いながら（エクセル上で経費の差引等がされています）、VBAで計算結果だけをプールして、シートに戻すプログラム式を作りたいのですが、いくつかのプログラムを参考に書いてもエラーで回りません。

現状は以下のプログラムです。修正点、使用すべき関数等をご教示頂ければ幸いです。  
※1000回試行は時間がかかるので仮で数字は小さくしています。  
※calculateを回して、F28の数字を抜き出して保存、プールした計算結果をシートのどこかに1000個分吐き出したいです。

[code]

    Sub Montecarlo()
    ReDim Frequency(0 To 1000) As Integer
    
    For Index = 1 To 10
        Application.Calculate
        Return1 = Worksheets("3.ﾎﾞﾗﾃｨﾘﾃｨ推定").Range("F28").Value
        Frequency(Int(Return1 / 0.01)) = _
        Frequency(Int(Return1 / 0.01)) + 1
    Next Index
    
    For Index = 1 To 10
        Range("simuloutput").Cells(Index + 35, 1) = _
        Frequency(Index) / N
    Next Index
    
    End Sub
    
[/code]


CC BY-SA 4.0
2022-07-06T07:12:33.530
89788
2022-07-06T08:00:37.830
2022-07-06T08:00:37.830
3060
53394
question
vba excel
VBA　エクセルシートでの計算結果を蓄積して、シート上に戻すプログラムの方法