投稿日 | : 2007/01/25(Thu) 11:54 |
投稿者 | : ハシ |
Eメール | : |
URL | : |
タイトル | : エクセル プロセスの開放 |
エクセルのプロセス開放について質問です、下のソースで、上書きの処理を通るときにプロセスの開放ができず、処理終了時にエクセルEXEが消えずに残ってしまいます。。
プロシージャの終了前に
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
はしてあります。
上書きの時にシートを削除して・・このへんの処理が問題のようなきがするのですが。
アドバイスお願いします。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
For lTblIdx = 1 To UBound(uTblInf)
If InStr(strString, sSelTbls(lTblIdx)) > 0 Then
'上書きの場合
For i = 1 To lMaxRow
If sSelTbls(lTblIdx) = vRangeVal(i, C_T_COL_テーブル名) Then
lRow = i + C_T_ROW_上書き調整
lTblId2 = i
i上書きNum = i上書きNum + 1
End If
Next
Sheets(sSelTbls(lTblIdx)).Delete '上書きするテーブルのシートを削除
uTblInf(lTblIdx).sテーブルID = "TBL" & Format$(lTblId2, "000")
Else
'追加の場合
lRow = C_T_ROW_START + lMaxRow
lMaxRow = lMaxRow + 1
uTblInf(lTblIdx).sテーブルID = "TBL" & Format$(lMaxRow, "000")
End If
objSheet.Cells(lRow, C_T_COL_テーブルID).Value = uTblInf(lTblIdx).sテーブルID
objSheet.Cells(lRow, C_T_COL_テーブル名).Value = sSelTbls(lTblIdx)
Next
'余分にできてしまった行を削除
If i上書きNum >= 1 Then
For i上書きNum = 1 To i上書きNum
objSheet.Rows(lMaxRow + C_T_ROW_START).Delete Shift:=xlUp
Next
End If
Set objSheet = Nothing