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



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