Объект приложения в объектной модели 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, где это возможно.

Другие вопросы по тегам