www.ПЕРВЫЕ ШАГИ.ru :: Шаг 8 - Коллекция Sheets

VBA

Шаг 8 - Коллекция Sheets

Данная коллекция представляет собой коллекцию листов (Sheets) в книге (WorkBook). Первое, что мы с Вами сделаем это получим количество листов в книге.

Sub Test()
	MsgBox (Str(Application.Workbooks.Item("Test.xls").Sheets.Count))
End Sub

Но под листом понимается не только клетки, но и диаграмма. Так же как и лист для расчетов диаграмма будет включена в подсчет листов. Как посмотреть имена листов. Просто. Есть свойтсво Name:

Sub Test()
	With Application.Workbooks.Item("Test.xls")
		For x = 1 To .Sheets.Count
			MsgBox (Sheets.Item(x).Name)
		Next x
	End With
End Sub

А как же лист с формулами отличить от диаграммы ? Попробуйте так. Type вернет Вам тип. Только не знаю документированный способ это или нет.

Sub Test()
	With Application.Workbooks.Item("Test.xls")
		For x = 1 To .Sheets.Count
			MsgBox (Sheets.Item(x).Type)
			If Sheets.Item(x).Type = 3 Then
				MsgBox Sheets.Item(x).Name
		Next x
	End With
End Sub

К коллекции листов есть возможность добавлять свои листы, для этого существует метод Add. Этот метод требует 4 параметра Add(Before, After, Count, Type). Все эти параметры необязательные. Первые два отвечают за место вставки листа. Дальше количество вставляемых листов Count и тип листа. Типы могут быть, например, такие. xlWorkSheet для расчетного листа, xlChart для диаграммы. Если местоположение не указывать, то лист будет вставляться относительно текущего листа.

Sub Test()
	With Application.Workbooks.Item("Test.xls")
		Sheets.Add
	End With
End Sub

Метод Parent позволяет узнать какой книге принадлежит текущий лист.

Sub Test()
	With Application.Workbooks.Item("Test.xls")
		MsgBox (Sheets.Parent.Name)
	End With
End Sub

Если у Вас есть желание, то некоторые листы можно убрать из обзора. Это бывает полезно, если у Вас есть константы или расчеты, которые Вы не хотите чтобы видели на экране в виде листов. Для этого можно использовать метод Visible. Устанавливая это свойство в TRUE или FALSE вы сможете убирать и показывать лист.

Sub Test()
	With Application.Workbooks.Item("Test.xls")
	.Sheets.Item("Лист5").Visible = False
	End With
End Sub


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