Function makemrate(year As Single, age As Single, data6) As Single
Dim mr(0 To 99) As Single
Dim time As Single
Dim m1 As Single
Dim m2 As Single
Dim n1 As Single
Dim n2 As Single
Dim n3 As Single
time = 0
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
mr(time) = data6(1, n2) + (n1 - n2) * (data6(1, n3) - data6(1, n2))
For time = 1 To 9
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
m1 = data6(1, n2) + (n1 - n2) * (data6(1, n3) - data6(1, n2))
m2 = data6(2, n2) + (n1 - n2) * (data6(2, n3) - data6(2, n2))
mr(time) = m1 + time / 10 * (m2 - m1)
Next
time = 10
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
mr(time) = data6(2, n2) + (n1 - n2) * (data6(2, n3) - data6(2, n2))
For time = 11 To 24
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
m1 = data6(2, n2) + (n1 - n2) * (data6(2, n3) - data6(2, n2))
m2 = data6(3, n2) + (n1 - n2) * (data6(3, n3) - data6(3, n2))
mr(time) = m1 + (year - 10) / 15 * (m2 - m1)
Next
For time = 25 To 99
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
mr(time) = data6(3, n2) + (n1 - n2) * (data6(3, n3) - data6(3, n2))
Next
makemrate = mr(year)
End Function
Function makefrate(year As Single, age As Single, data6) As Single
Dim fr(0 To 99) As Single
Dim time As Single
Dim m1 As Single
Dim m2 As Single
Dim n1 As Single
Dim n2 As Single
Dim n3 As Single
time = 0
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
fr(time) = data6(4, n2) + (n1 - n2) * (data6(4, n3) - data6(4, n2))
For time = 1 To 9
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
m1 = data6(4, n2) + (n1 - n2) * (data6(4, n3) - data6(4, n2))
m2 = data6(5, n2) + (n1 - n2) * (data6(5, n3) - data6(5, n2))
fr(time) = m1 + time / 10 * (m2 - m1)
Next
time = 10
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
fr(time) = data6(5, n2) + (n1 - n2) * (data6(5, n3) - data6(5, n2))
For time = 11 To 24
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
m1 = data6(5, n2) + (n1 - n2) * (data6(5, n3) - data6(5, n2))
m2 = data6(6, n2) + (n1 - n2) * (data6(6, n3) - data6(6, n2))
fr(time) = m1 + (year - 10) / 15 * (m2 - m1)
Next
For time = 25 To 99
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
fr(time) = data6(6, n2) + (n1 - n2) * (data6(6, n3) - data6(6, n2))
Next
makefrate = fr(year)
End Function
Private Sub Command1_Click()
Dim a1 As Single
Dim a2 As Single
Dim a3 As Single
Dim data6(1 To 6, 1 To 12) As Single
Dim b(1 To 3, 1 To 12) As Single
Dim mrate(0 To 99, 15 To 69) As Single
Dim frate(0 To 99, 15 To 69) As Single
Dim year As Single
Dim age As Single
Open "c:/hagetaka/data/労働力人口.txt" For Input As #6
Do Until EOF(6)
Input #6, a1, a2, a3, a4, a5, a6, a7
n = a1
data6(1, n) = a2
data6(2, n) = a3
data6(3, n) = a4
data6(4, n) = a5
data6(5, n) = a6
data6(6, n) = a7
Loop
Close #6
For year = 5 To 99
For age = 15 To 69
mrate(year, age) = makemrate(year, age, data6)
frate(year, age) = makefrate(year, age, data6)
Next
Next
Open "c:/hagetaka/gdata/労働力推計.txt " For Output As #105
For year = 5 To 99
For age = 15 To 69
Write #105, year, age, mrate(year, age), frate(year, age)
Next
Next
Close #105
For year = 0 To 99
Debug.Print year, mrate(year, 69)
Next
End Sub
最終更新:2010年03月13日 03:15