Консультация № 161911
03.03.2009, 15:33
0.00 руб.
0 2 2
Здравствуйте.
Видел java-скрипт для html, который менял приветствие в зависимости от времени суток (если страницу открыть с 3:00 до 9:00 печаталась «доброе утро», с 9:00 до 16:00 – «добрый день» и т.д.). Как написать такой же макрос для Word или можно ли скачать откуда-нибудь готовый?

Обсуждение

Неизвестный
03.03.2009, 18:05
общий
это ответ
Здравствуйте, Власов Алексей Владимирович!
Можна так:

Sub Макрос1()
Dim MyHour, text_pr
MyHour = Hour(Time)
If 3 < MyHour < 9 Then text_pr = "доброе утро"
If 9 < MyHour < 16 Then text_pr = "добрый день"
If 16 < MyHour < 23 Then text_pr = "доброе вечер"
MsgBox (text_pr) ´ну а здесь в зависимости куда вывести сообщение
End Sub
давно
Модератор
137394
1850
03.03.2009, 20:19
общий
это ответ
Здравствуйте, Власов Алексей Владимирович!
Вызываем Word
В строке меню Сервис-Макрос-Начать запись
Вместо стандартного Макрос1 Введите понятное имя макроса, например, Привет_по_времени
Определитесь, хотите ли Вы, чтобы макрос был доступен для всех документов (тогда надо выбрать в окне Normal.dot)
или для текущего документа (надо выбрать Документ1)
Если хотите, назначьте макрос панели:
жмите соответствующую кнопку, справа в окне команда захватываете мышкой имя макроса и вытягиваете его, например, на строку с меню.
Далее правой кнопкой мышки нажмите на вытянутую кнопку, выберите вставить значок на кнопку, вставьте значок, который понравится.
Далее выберите там же стиль кнопки, например, Основной стиль.
Опять же, Определитесь, где Вы хотите это сохранить: или для всех документов -тогда надо выбрать в окне Normal.dot)
или для текущего документа (надо выбрать Документ1)

Там же можно назначить макросу горячую клавишу (Клавиатура-Новое сочетание клавиш -Нажмите, например, Ctrl T)
Опять же, Определитесь, где Вы хотите это сохранить.

Закрыть - Закрыть.

В строке меню Сервис-Макрос-Остановить запись
В строке меню Сервис-Макрос-Макрос - Выберите Ваш макрос - нажмите Изменить

Вставьте предлагаемый мной код- это будет выглядеть приблизительно вот так:

Код:

Sub Привет_по_времени()
'
' Привет_по_времени Макрос
' Макрос записан 03.03.2009 Фамилия И.О.

T = Time()
H = Hour(T)

Select Case H

Case Is > 22
OutText = "Доброй ночи! "
Case Is > 16
OutText = "Добрый вечер! "
Case Is > 9
OutText = "Добрый день! "
Case Is > 4
OutText = "Доброе утро! "
Case Is > 0
OutText = "Доброй ночи! "

End Select

OutText = OutText + " Сейчас " + CStr(T) + "." 'Если не надо печатать время, строку удалите

Selection.TypeText Text:=OutText

End Sub

Естественно, границы утра, дня, вечера, ночи можете подкорректировать.
Всё! Закрываем окно Visual Basic, пользуемся!
При нажатии на значок макроса или на горячие клавиши (если Вы их определили), получите приветствие по времени.

Еще один вариант использования предлагаемого макроса
В строке меню Сервис-Макрос-Редактор Visual Basic

Слева в окне откройте Normal - Microsoft Word Object левой кнопкой мышки двойным кликом на -This Document
Правее откроется окно (по умолчанию General, но Вы выберите Document) и появится такая вот заготовка:

Private Sub Document_New()

End Sub

Вставьте туда текст макроса
Закройте Редактор Visual Basic.
Теперь, если нажмёте Файл - Создать, то получите новый документ с приветствием по времени.

Второй способ можно использовать и совместно с первым - они друг другу не мешают.

Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Форма ответа