Private Sub Command1_Click()
Dim a1 As Single
Dim a2 As Single
Dim a3 As Single
Dim m1 As Single
Dim m2 As Single
Dim m3 As Single
Dim a(1 To 3, 1 To 12) As Single
Dim b(1 To 3, 1 To 12) As Single
Dim startm(0 To 100) As Single
Dim startf(0 To 100) 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:/stream/data/労働力人口.txt" For Input As #1
Do Until EOF(1)
Input #1, a1, a2, a3, a4, a5, a6, a7
n = a1
a(1, n) = a2
a(2, n) = a3
a(3, n) = a4
b(1, n) = a5
b(2, n) = a6
b(3, n) = a7
Loop
Close #1
year = 0
For age = 15 To 69
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
mrate(year, age) = a(1, n2) + (n1 - n2) * (a(1, n3) - a(1, n2))
Next
For year = 1 To 9
For age = 15 To 69
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
m1 = a(1, n2) + (n1 - n2) * (a(1, n3) - a(1, n2))
m2 = a(2, n2) + (n1 - n2) * (a(2, n3) - a(2, n2))
mrate(year, age) = m1 + year / 10 * (m2 - m1)
Next
Next
year = 10
For age = 15 To 69
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
mrate(year, age) = a(2, n2) + (n1 - n2) * (a(2, n3) - a(1, n2))
Next
For year = 11 To 24
For age = 15 To 69
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
m1 = a(2, n2) + (n1 - n2) * (a(2, n3) - a(2, n2))
m2 = a(3, n2) + (n1 - n2) * (a(3, n3) - a(3, n2))
mrate(year, age) = m1 + (year - 10) / 15 * (m2 - m1)
Next
Next
For year = 25 To 99
For age = 15 To 69
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
mrate(year, age) = a(3, n2) + (n1 - n2) * (a(3, n3) - a(3, n2))
Next
Next
year = 0
For age = 15 To 69
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
frate(year, age) = b(1, n2) + (n1 - n2) * (b(1, n3) - b(1, n2))
Next
For year = 1 To 9
For age = 15 To 69
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
m1 = b(2, n2) + (n1 - n2) * (b(2, n3) - b(2, n2))
m2 = b(3, n2) + (n1 - n2) * (b(3, n3) - b(3, n2))
frate(year, age) = m1 + year / 10 * (m2 - m1)
Next
Next
year = 10
For age = 15 To 69
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
frate(year, age) = b(2, n2) + (n1 - n2) * (b(2, n3) - b(1, n2))
Next
For year = 11 To 24
For age = 15 To 69
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
m1 = b(1, n2) + (n1 - n2) * (b(1, n3) - b(1, n2))
m2 = b(2, n2) + (n1 - n2) * (b(2, n3) - b(2, n2))
frate(year, age) = m1 + (year - 10) / 15 * (m2 - m1)
Next
Next
For year = 25 To 99
For age = 15 To 69
n1 = (age - 12) / 5
n2 = Int(n1)
n3 = n2 + 1
If n2 = 0 Then n2 = 1
frate(year, age) = b(3, n2) + (n1 - n2) * (b(3, n3) - b(3, n2))
Next
Next
Open "c:/stream/gdata/労働力推計.txt " For Output As #2
For year = 0 To 99
For age = 15 To 69
Write #2, year, age, mrate(year, age), frate(year, age)
Next
Next
Close #2
For year = 0 To 99
Debug.Print year, mrate(year, 69)
Next
End Sub
最終更新:2009年04月21日 18:12