В прошлый раз мы научились добавлять книги в коллекцию. Теперь научимся удалять и получать информацию о книгах. Так как книга ассоциируется с файлом, то и метод удаления книги из колекции называется Close. Но для удаления необходимо получить доступ к элементу.
Sub Test()
Application.Workbooks.Item(1).Close
End Sub
В таком варианте закроются все книги:
Sub Test()
Application.Workbooks.Close
End Sub
Функция Close имеет ряд необязательных параметров. Вот они.
expression.Close(SaveChanges, FileName, RouteWorkbook)
Первый параметр SaveChanges типа BOOL, если установить TRUE сделанные изменения сохранятся, в противном случае нет. Если параметр упускается, то при закрытии появляется диалоговое окно с вопросом о необходимости сохранения.
Следующий параметр FileName необходим, когда идет вопрос о закрытии книги не связанной еще с именем файла. Последний параметр связан с одновременной работой над книгой. Он типа BOOL.
Получить доступ к книгам в коллекции можно используя метод Item():
Sub Test()
MsgBox (Application.Workbooks.Item(1).Name)
MsgBox (Application.Workbooks.Item("Test.xls").FullName)
End Sub
Как видите, доступ можно получить по индексации и по имени книги, следует знать, что имя книги это имя файла, в котором он хранится. Получив доступ по индексу в первой строке я узнал имя. А во второй по имени получил доступ к свойствам обьекта WorkBook и получил полное имя, название файла и путь, который и вывел на экран в виде сообшения.
Еще одно свойство - это создатель книги, и называется он Creator
Sub Test()
If (Application.Workbooks.Creator = &H5843454C) Then
MsgBox "Excel Creator"
Else
MsgBox "Not Excel Creator"
End If
End Sub
С помощью Parent можно получить доступ к старшему объекту коллекции при выполнении кода изложенного ниже, появится MS Excel, ну а Вы что подумали?:-)
Sub Test()
MsgBox (Application.Workbooks.Parent.Name)
End Sub