Function sh(year As Integer, m, f, mrate, frate) As Single
Dim age As Integer
Dim m1 As Single
m1 = 0
For age = 16 To 65
m1 = m1 + mrate(year, age) * m(year, age)
m1 = m1 + frate(year, age) * f(year, age)
Next
sh = m1
End Function
Private Sub Command1_Click()
Dim year As Integer
Dim age As Integer
Dim m(-5 To 99, 0 To 99) As Single
Dim f(-5 To 99, 0 To 99) As Single
Dim mrate(-3 To 99, 16 To 65) As Single
Dim frate(-3 To 99, 16 To 65) As Single
Dim a1 As Single
Dim a2 As Single
Dim a3 As Single
Dim a4 As Single
Open "c:/simple/gdata/将来推計人口.txt" For Input As #1
Do Until EOF(1)
Input #1, a1, a2, a3, a4
year = a1
age = a2
m(year, age) = a3
f(year, age) = a4
Loop
Close #5
Open "c:/simple/gdata/厚生年金加入率.txt" For Input As #2
Do Until EOF(2)
Input #2, a1, a2, a3, a4
year = a1
age = a2
mrate(year, age) = a3
frate(year, age) = a4
Loop
Close #2
Dim m2(-3 To 99, 16 To 64) As Single
Dim f2(-3 To 99, 16 To 64) As Single
For year = -3 To 99
For age = 16 To 64
m2(year, age) = mrate(year, age) * m(year, age)
f2(year, age) = frate(year, age) * f(year, age)
Next
Next
Open "c:/simple/gdata/厚生年金被保険者.txt" For Output As #4
For year = -3 To 99
For age = 16 To 64
Write #4, year, age, m2(year, age), f2(year, age)
Next
Next
Close #4
For n = 1 To 5
year = 5 * n
Debug.Print year, Int(sh(year, m, f, mrate, frate))
Next
For n = 3 To 6
year = 10 * n
Debug.Print year, Int(sh(year, m, f, mrate, frate))
Next
End Sub
最終更新:2009年02月28日 20:41