www.ПЕРВЫЕ ШАГИ.ru :: Шаг 5 - Далее про Workbooks в Excel

VBA

Шаг 5 - Далее про Workbooks в Excel

В прошлый раз мы научились добавлять книги в коллекцию. Теперь научимся удалять и получать информацию о книгах. Так как книга ассоциируется с файлом, то и метод удаления книги из колекции называется 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 сделанные изменения сохранятся, в противном случае нет. Если параметр упускается, то при закрытии появляется диалоговое окно с вопросом о необходимости сохранения.

5_1.gif (2033 b)

Следующий параметр 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


Предыдущий Шаг | Следующий Шаг
Автор Каев Артем.