Excel. Трюки и эффекты | страница 123



End Sub

После того как запущен макрос (в окне выбора макросов он будет называться GetMonitorResolution), на экране отобразится окно, в котором будет показано текущее разрешение монитора.

Что открыто в данный момент?

При работе с большим количеством рабочих книг иногда возникает необходимость быстро узнать, какие из них открыты в данный момент. Решить эту задачу поможет следующий макрос (листинг 3.72).

Листинг 3.72. Открытые файлы

Sub WorkBooksList()

Dim book As Object

' Вывод имени каждой рабочей книги

For Each book In Workbooks

MsgBox (book.Name)

Next

End Sub

После выполнения данного макроса откроется окно с именем текущей рабочей книги. После нажатия в данном окне кнопки ОК в нем будет указано имя другой открытой книги, затем после нажатия ОК – следующей и т. д. Таким образом можно быстро просмотреть названия всех открытых рабочих книг.

Если книга содержит большое количество рабочих листов, то быстро просмотреть их названия можно с помощью следующего макроса (листинг 3.73). Этот макрос отображает названия всех листов текущей рабочей книги.

Листинг 3.73. «Перелистывание» книги

Sub SheetsOfBook()

Dim sheet As Object

' Отображение имен всех листов активной рабочей книги

For Each sheet In ActiveWorkbook.Sheets

MsgBox (sheet.Name)

Next

End Sub

После запуска макроса на экране отобразится такое же окно, как при выполнении предыдущего макроса. В нем будет указано название первого рабочего листа текущей книги, а затем, после каждого нажатия кнопки ОК, – названия последующих листов.

Создание бегущей строки

Можно ли в Excel создать бегущую строку? Да, можно, и поможет нам в этом код, приведенный в листинге 3.74.

Листинг 3.74. Создание бегущей строки

Dim intSpacesLeft As Integer ' Количество пробелов в начале

строки

Sub Start()

' Установка начального количества пробелов

intSpacesLeft = 10

' Первый вызов функции бегущей строки

MovingString

End Sub

Sub MovingString()

If intSpacesLeft >= 0 Then

' Отображение строки

Range(«A1»).Value = Space(intSpacesLeft) & «Привет!»

intSpacesLeft = intSpacesLeft – 1

' Указывем Excel, что данную процедуру нужно вызвать через _

1 секунду

Application.OnTime Now + TimeValue(«00:00:01»),

«MovingString»

End If

End Sub

После запуска макроса Start в ячейке Al будет отображаться бегущая строка с текстом Привет!.

Мигающая ячейка

Рассмотрим достаточно интересный трюк, с помощью которого можно заставить мигать (то есть попеременно изменять цвета) любую ячейку в течение некоторого промежутка времени.