Листинг 3.68. Окно настройки шрифта
Sub ShowFontDialog()
' Вызов стандартного окна настройки шрифта текущей ячейки
Application.Dialogs(xlDialogActiveCellFont).Show
End Sub
После его выполнения откроется окно Формат ячеек, в котором выполняются необходимые действия. Заданные в данном окне настройки применяются к ячейке, в которой установлен курсор.
Вывод информации о текущем документе
Чтобы быстро вывести на экран информацию об имени текущего файла, названии текущего рабочего листа и количестве листов в текущей рабочей книге, можно использовать макрос, код которого приведен в листинге 3.69.
Листинг 3.69. Информация о текущем документе
Sub ShowInfo()
Dim i As Integer
' Выводим имя файла рабочей книги
Range(«A1») = ActiveWorkbook.Name
' Выводим имя текущего листа
Range(«B1») = ActiveSheet.Name
' Выводим номера листов
For i = 1 To ActiveWorkbook.Sheets.Count
ActiveSheet.Cells(i, 3) = i
Next i
End Sub
Результат выполнения макроса представлен на рис. 3.22.
Рис. 3.22. Информация о текущем файле
В данном случае в ячейке А1 отображается имя текущего файла, в ячейке В1 – имя активного рабочего листа, а в столбце С – информация о количестве рабочих листов в текущей книге.
Вывод результата расчетов в отдельном окне
Выполнив несложный трюк, можно вывести результат расчетов, полученный с помощью формулы, в отдельном информационном окне. Для этого можно создавать самые разнообразные макросы (в зависимости от сложности расчета, содержимого ячеек и формул и т. д.). В листинге 3.70 приведен пример одного из таких макросов.
Листинг 3.70. Окно с результатом расчетов
Sub ResultToWindow()
' Переходим на первый лист
Worksheets(1).Activate
' Заносим в ячейки данные
Range(«A2») = 5
Range(«A3») = «=A2+3»
' Выводим результат расчета
MsgBox Range(«A3»).Formula + " = " + str(Range(«A3»).Value)
End Sub
Результат выполнения данного макроса показан на рис. 3.23.
Рис. 3.23. Формула и результат
Кроме того, после выполнения макроса в ячейке А2 появится значение 5, а в ячейке A3 – 8.
Вывод разрешения монитора
Разрешение монитора просматривается и редактируется в окне свойств экрана (Пуск → Настройка → Панель управления → Экран → Параметры). Однако для просмотра разрешения можно написать соответствующий макрос (листинг 3.71). Чтобы определить разрешение монитора, следует использовать функцию Windows API GetSystemMetrics. В качестве единственного параметра она принимает номер системной настройки, значение которой необходимо узнать (в данном случае 0 – это ширина изображения, 1 – высота). Функция GetSystemMetrics возвращает численное значение запрашиваемого параметра.
Листинг 3.71. Разрешение монитора
' Объявление API-функции
Declare Function GetSystemMetrics Lib «user32» _
(ByVal nIndex As Long) As Long
' Константы, которые передаются в функцию для определения _
горизонтального и вертикального размеров изображения
Const SM_CXSCREEN = 0
Const SM_CYSCREEN = 1
Sub GetMonitorResolution()
Dim lngHorzRes As Long
Dim lngVertRes As Long
' Получение ширины и высоты изображения на мониторе
lngHorzRes = GetSystemMetrics(SM_CXSCREEN)
lngVertRes = GetSystemMetrics(SM_CYSCREEN)
' Отображение сообщения
MsgBox "Текущее разрешение: " & lngHorzRes & "x" & lngVertRes
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()
Читать дальше
Конец ознакомительного отрывка
Купить книгу