Private Sub ExcelApp_WorkbookBeforeClose(ByVal Wb As Excel.Workbook, Cancel As Boolean)
'用户在程序运行时关闭工作簿时提示错误。
If 取消 Then Exit Sub
If (MsgBox(" 程序正在运行中,如果您此时关闭此工作簿," & Chr(10) & Chr(13) & "可能导致系统的非正常结束,您真的想退出吗?", vbOKCancel + vbCritical + vbSystemModal, "警告") = vbCancel) Then
Cancel = True
End If
End Sub
'用户在程序运行时关闭工作簿时提示错误。
If 取消 Then Exit Sub
If (MsgBox(" 程序正在运行中,如果您此时关闭此工作簿," & Chr(10) & Chr(13) & "可能导致系统的非正常结束,您真的想退出吗?", vbOKCancel + vbCritical + vbSystemModal, "警告") = vbCancel) Then
Cancel = True
End If
End Sub
我允许用户关闭WORKBOOK
但不允许关闭EXCEL
Set hkoExcelApp = CreateObject("Excel.Application") hkoExcelApp.Visible = False '表示しない
hkoExcelApp.ScreenUpdating = False
hkoExcelApp.DisplayAlerts = False ComOpenExcelApp = True Exit FunctionOpenExcel_Err: 'システム起因の障害が発生しました
If Not hkoExcelApp Is Nothing Then
hkoExcelApp.Quit
Set hkoExcelApp = Nothing
End If
MsgBox Err.Description, vbInformation, MSG_TITLEEnd FunctionPublic Function ComOpenExcelBook(ByRef hkoExcelApp As Excel.Application, _
ByRef hkoExcelBook, ByVal hksFileName As String) As Boolean On Error GoTo Book_Err
ComOpenExcelBook = False 'エクセル・WorkBookを開く
Set hkoExcelBook = hkoExcelApp.Workbooks.Add(hksFileName) ComOpenExcelBook = True Exit FunctionBook_Err:
MsgBox Err.Description, vbInformation, MSG_TITLE
End Function
Public Function ComKillExcel(ByRef hkoExcelApp As Excel.Application) As Long '変数の宣言
Dim looWKBook As Workbook 'エクセルのワークボーク On Error Resume Next Err.Clear ComKillExcel = -1 '既にエクセル上で開かれているファイルと引数のファイルを判定する
For Each looWKBook In hkoExcelApp.Workbooks
hkoExcelApp.DisplayAlerts = False
looWKBook.Close
Next hkoExcelApp.DisplayAlerts = True
hkoExcelApp.ScreenUpdating = True
hkoExcelApp.Quit Set hkoExcelApp = Nothing
ComKillExcel = Err.Number
On Error GoTo 0End Function给你几个excel控制的函数,注意去掉注释(日文的)
Set exlApp = CreateObject("Excel.Application")
是这样的,我在程序启动时就创建一个Excel.Application
直到程序退出时才Quit和Nothing在程序运行期间,我可以自由的增减WorkBook
用户也可以EXCEL窗口中操作程序所建的EXCEL对象(包括增减WorkBook)问题是:
当用户在EXCEL窗口中关闭了EXCEL对象之后(这时EXCEL进程关闭,线程还在)
再用这个Excel.Application建WorkBook时,只能看到EXCEL对象却看不到WorkBook
而WorkBook确实存在最好的解决办法是:不让用户在EXCEL对象中关闭EXCEL。
可我不知道怎么实现!!!
wordapp.application.quit
如果把这些属性重新设置一下,可能就可以了。不知你们是怎么认为的?