Статьи из блога

Быстрый ввод текста с помощью команды =rand()

О такой полезной команде =rand() я уже писал в заметке “Глюки”, “пасхальные яйца” или служебные команды Word.

Но вручную вводить эту команду не всегда бывает удобно. Поэтому лучше иметь ее всегда под рукой, а точнее - иметь ее добавленной в контекстное меню, вызываемое по щелчку правой кнопкой мыши. Тогда не придется вспоминать ее синтаксис и вводить руками:

 

 

Если вы хотите добавить эту команду в контекстное меню, откройте ваш шаблон Normal.dot (Normal.dotm) в редакторе Word и/или вызовите редактор Visual Basic с помощью комбинации клавиш «Alt»+«F11». Затем перейдите на проект шаблона и вставьте новый модуль для макросов.

 

В окне редактирования кода вставьте следующий код:

'Макросы для работы с контекстным меню
'Объявляем переменные глобальные для данного модуля
Dim cb As CommandBar
Dim cbb As CommandBarButton
Dim cbc As CommandBarControl
Sub insRand()
'Вставка команды "=rand()" в контекстное меню
CustomizationContext = NormalTemplate
Set cb = CommandBars("text")
Set cbc = cb.FindControl(Tag:="rand")
If Not cbc Is Nothing Then Exit Sub
Set cbb = cb.Controls.Add(msoControlButton, , , 1)
With cbb
    .Caption = "=rand() - образец текста"
    .FaceId = 488
    .Tag = "rand"
    .OnAction = "rand"  'вызываем макрос ввода команды (приведен ниже)
End With
End Sub
Sub rand()
'Макрос ввода команды "=rand()"
Selection.TypeText Text:="=rand()"
SendKeys "{ENTER}"
End Sub
Sub resetContextMenu()
CustomizationContext = NormalTemplate
Set cb = CommandBars("text")
cb.Reset
End Sub

После вставки данного кода выполните первую процедуру "insRand". Команда "=rand()" появится в контекстном меню.

Если вы захотите восстановить контекстное меню до первоначального состояния, то выполните третью процедуру "resetContextMenu".

 

Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:

Создание макроса из готового кода

Автоматическая запись макроса

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Еще записи по вопросам использования Microsoft Word:

Комментариев: 1

  1. Александр Ю. Алексеев
    14.10.2014 в 13:54 | #1

    А можно ли как-то исхитриться создать псевдотекст в другом документе? Хранить нужный макрос в Normal.dot не всегда удобно. А SENDKEY передает код клавиши в активное окно. И если в макросе последовательно

    oDocNEW.Selection.TypeText "=rand(10,5)"
    SendKeys "{ENTER}"

    то текст =rand(10,5) выводится в документе oDocNEW, а Enter - в том документе, откуда вызывался макрос (или в редакторе, если запускался из него).

Оставьте комментарий!

(обязательно)

^ Наверх