私は VBA を初めて使用し、単純なマクロを作成しようとしています。以下にコードを貼り付けました。基本的に、セル B5 から B15 に 11 個の乱数があります。この数値が 0.65 未満の場合、その隣の列に TRUE を出力したいと思います。0.65 より大きい場合は、その横の列に FALSE を出力したいと思います。基本的にコードはダウンしていると思いますが、Sub PrintandRead の「次の t」では、t の値は 5 ~ 15 になります (これは正しいです)。 . 「次のt」値を関数に持ち込まないのはなぜですか?
Option Explicit
Function markov(pwd As Double, pww As Double) As Boolean
Static wetYesterday As Boolean
pwd = 0.4
pww = 0.65
Dim c As Double
Dim t As Double
If wetYesterday Then c = t - pww Else c = t - pwd
If c <= 0 Then
wetYesterday = True: markov = True
Else
wetYesterday = False: markov = False
End If
End Function
Sub ReadAndPrint()
Dim t As Double
Dim p As Double
Dim z(11) As Double
Application.ScreenUpdating = False
Worksheets("Sheet1").Activate
p = 2
For t = 5 To 15
z(t - 4) = Cells(t, p)
Next t
p = p + 1
For t = 5 To 15
Cells(t, p) = markov(0.4, 0.65)
'z(t - 4)
Next t
End Sub