Найти тему
VBA Excel с нуля

VBA Excel № 128. Отображаем дату, время и последнее сохранение

Скриншот с моего ноутбука
Скриншот с моего ноутбука

Скорее всего вы уже знакомы с форматом, используемым в Excel для хранения значений даты и времени, и тогда вам будет легче работать с ними в процедурах VBA.

Процедура "ДатаиВремя" выводит окно сообщения с текущей датой и временем (см. скриншот). В данном примере пользовательское сообщение отображается в строке заголовка окна.

Скриншот с моего ноутбука
Скриншот с моего ноутбука

📌 Скачать файл пример с макросами можно в конце статьи

Для форматирования даты в удобный, читаемый формат в процедуре используем функцию Format с аргументом, равным функции Date. Это позволяет представить дату в понятном формате. Тот же подход применяется и к форматированию времени.

Скриншот с моего ноутбука
Скриншот с моего ноутбука

В данном примере мы используем именованные форматы ("mm/dd/yy" и "HH:mm"). Однако, чтобы обеспечить работоспособность макроса независимо от региональных настроек компьютера пользователя, можно использовать и другие форматы. Например, чтобы отобразить дату в формате "3 Март 2024 г.", применяем следующий оператор:

Дата = Format(Date, "Long Date")

Для времени в 12-часовом формате используем:

Время = Format(Time, "Medium Time")

В зависимости от времени суток, используем конструкцию Select Case чтобы отобразить приветствие в строке заголовка. Значения времени задаются в VBA также, как и в Excel. Если время меньше 0,5 (полудня), то это утро. Если время больше 0,7083 (5 часов вечера), то это вечер. Все остальное время считаем днем. Для получения значения времени из строки используем функцию VBA TimeValue.

Следующие операторы определяют имя пользователя, указанное на вкладке "Общие" диалогового окна "Параметры Excel". Для поиска первого пробела в имени пользователя используем функцию VBA InStr. Функция MsgBox объединяет дату и время, но мы ещё используем встроенную константу vbCrLf для вставки разрыва строки между ними. Предопределенная константа vbOKOnly возвращает 0; в результате окно сообщения содержит только кнопку OK. Последний аргумент - Приветствие, который мы создавали ранее в коде.

Строка "ActiveWorkbook.BuiltinDocumentProperties(12)" используется для доступа к встроенным свойствам документа в активной книге (ActiveWorkbook). В данном случае, число 12 представляет собой индекс конкретного встроенного свойства, а именно свойства, соответствующего дате последнего сохранения документа.

СКАЧАТЬ ФАЙЛ ПРИМЕР

Наука
7 млн интересуются