Объект приложения в объектной модели Microsoft Excel
Сегодня, занимаясь сценарием vb, у меня возникло небольшое сомнение, пожалуйста, помогите прояснить мои сомнения. Я написал этот код и создал лист Excel на своем диске D:
dim excel
SET excel=CreateObject("Excel.Application")
excel.Visible=true
excel.application.Workbooks.Add
excel.ActiveWorkbook.SaveAs"D:\pushkar23.xls"
excel.quit
SET excel=nothing
Но если я изменю линию
excel.application.Workbooks.Add
в
excel.Workbooks.Add
тогда все еще лист создается в моем диске D:.
Скажите, пожалуйста, есть ли разница между обоими методами?
1 ответ
Если вы посмотрите документы, то увидите, что объект Application (и некоторые другие, например, Workbook) имеет свойство Application, которое
Возвращает объект Application, представляющий создателя указанного объекта.
Это всегда то же самое:
Вариант Явный
Dim oExcel : Set oExcel = CreateObject("Excel.Application")
WScript.Echo 0, CStr(oExcel Is oExcel.Application)
WScript.Echo 1, CStr(oExcel Is oExcel.Application.Application.Application)
Dim oWB : Set oWB = oExcel.Application.Application.Workbooks.Add
WScript.Echo 2, CStr(oWB.Application Is oExcel.Application)
oExcel.Quit
выход:
0 True
1 True
2 True
Тем не менее, для эффективности и ясности, вы должны использовать простой oExcel, где это возможно.