投稿日 | : 2002/12/05(Thu) 01:05 |
投稿者 | : yoshi |
URL | : |
タイトル | : Re^8: VBでエクセルを閉じる時・・・ |
> その都度残っている Excelを終了していますか?
その都度終了しています。
以下のようにしたのですが、shousaiではオブジェクトの代入や解放は必要ないと考えてよいのでしょうか?
Private Sub seireki_Change()
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("C:\Documents and Settings\吉原昌也\デスクトップ\システ ム")
Set Spara = xlBook.Worksheets("パラ")
Set Skekka = xlBook.Worksheets("結果")
Set Sjinkou_m = xlBook.Worksheets("人口男")
Set Sjinkou_f = xlBook.Worksheets("人口女")
Set Skiso_m = xlBook.Worksheets("基礎男")
Set Skiso_f = xlBook.Worksheets("基礎女")
Set Skuriagari_m = xlBook.Worksheets("男層繰り上がり")
Set Skuriagari_f = xlBook.Worksheets("女層繰り上がり")
Set Shyouka = xlBook.Worksheets("評価2")
Spara.Range("D29").Value = seireki.Text
Call shousai
xlApp.DisplayAlerts = False
xlApp.SaveWorkspace ("システム")
xlApp.Quit
Set Spara = Nothing
Set Skekka = Nothing
Set Sjinkou_m = Nothing
Set Sjinkou_f = Nothing
Set Skiso_m = Nothing
Set Skiso_f = Nothing
Set Skuriagari_m = Nothing
Set Skuriagari_f = Nothing
Set Shyouka = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
Public Sub shousai()
detail.AutoRedraw = True
detail1.AutoRedraw = True
detail.Cls 'Line(0, 0) - Step(1500, 1500), RGB(255, 255, 255), BF
detail1.Cls 'Line(0, 0) - Step(1500, 1500), RGB(255, 255, 255), BF
If bunpu.Text = "コーホート人口" Then
For a = 0 To 10 '現在のデータの代入
pira.p_m(a) = Skekka.Cells(1, 112 + a).Value
pira.p_f(a) = Skekka.Cells(2, 112 + a).Value
pira1.p_m(a) = Skekka.Cells(1, 124 + a).Value
pira1.p_f(a) = Skekka.Cells(2, 124 + a).Value
Next a
For B = 0 To 10 '人口ピラミッドの描画
detail.Line (765, 135 + 133 * B)-Step(pira.p_m(10 - B) / 2, -100), RGB(220 - B * 6, 220, 220), BF
detail.Line (735, 135 + 133 * B)-Step(-(pira.p_f(10 - B) / 2), -100), RGB (220 - B * 6, B * 6, 20 + B * 6), BF
detail1.Line (765, 135 + 133 * B)-Step(pira1.p_m(10 - B) / 2, -100), RGB(220 - B * 6, 220, 220), BF
detail1.Line (735, 135 + 133 * B)-Step(-(pira1.p_f(10 - B) / 2), -100), RGB (220 - B * 6, B * 6, 20 + B * 6), BF
Next B
End If
If bunpu.Text = "年少人口" Then
san(0).p_n = Skekka.Range("DH15").Value
san(1).p_n = Skekka.Range("DH17").Value
detail.Line (750 - san(0).p_n / 2, 750 - san(0).p_n / 2)-Step(san(0).p_n, san (0).p_n), RGB(153, 204, 51), BF
detail1.Line (750 - san(1).p_n / 2, 750 - san(1).p_n / 2)-Step(san(1).p_n, san (1).p_n), RGB(153, 204, 51), BF
End If
If bunpu.Text = "生産年齢人口" Then
san(0).p_s = Skekka.Range("DI15").Value
san(1).p_s = Skekka.Range("DI17").Value
detail.Line (750 - san(0).p_s / 2, 750 - san(0).p_s / 2)-Step(san(0).p_s, san (0).p_s), RGB(153, 204, 51), BF
detail1.Line (750 - san(1).p_s / 2, 750 - san(1).p_s / 2)-Step(san(1).p_s, san (1).p_s), RGB(153, 204, 51), BF
End If
If bunpu.Text = "老年人口" Then
san(0).p_r = Skekka.Range("DJ15").Value
san(1).p_r = Skekka.Range("DJ17").Value
detail.Line (750 - san(0).p_r / 2, 750 - san(0).p_r / 2)-Step(san(0).p_r, san (0).p_r), RGB(153, 204, 51), BF
detail1.Line (750 - san(1).p_r / 2, 750 - san(1).p_r / 2)-Step(san(1).p_r, san (1).p_r), RGB(153, 204, 51), BF
End If
detail.AutoRedraw = False
detail1.AutoRedraw = False
End Sub