Календарь Word (download)

Источник: wordexpert
Антон Кокин

Можно ли в Word сделать маленький календарик, который можно было бы вызывать по кнопке на панели инструментов? Наподобие такого, как в Excel или как в 1С?

Можно. В зарубежном интернете есть отличная статья Мартина Грина на эту тему: A Pop-up Calendar for Word.
Мартин разрешил мне воспользоваться его опытом и опубликовать эту статью на моем сайте. Но переводить всю статью не имеет смысла: она большая и подробная; я лишь изложу ее основные моменты. В итоге, мы должны получить примерно вот такой календарь:

Календарь Word

Для тех, кто не хочет самостоятельно создавать календарь, в конце заметки я дам ссылку на шаблон с созданным по этой заметке календарем. Вам останется лишь загрузить его на свой компьютер.
Те же пользователи, кто работает с основном с таблицами Excel, могут найти аналогичную статью на сайте PlanetaExcel.ru.

Итак, приступим.

  1. Во-первых, создайте пустой документ Word и сохраните его как шаблон под именем WordPopupCalendar.dot. Безусловно, можно создать календарь и в глобальном шаблоне Normal.dot, чтобы он был всегда доступен, но в этот раз мы создадим новый шаблон. В дальнейшем, это позволит вам передавать ваш шаблон с календарем своим друзьям и коллегам, а доступность календаря мы обеспечим размещением шаблона в папке автозагрузок редактора Word.
  2. Далее, откройте редактор Visual Basic с помощью сочетания клавиш "Alt"+"F11". Появится пустое окно редактора. Нажмите клавишу "F7", чтобы перейти к окну кода.
  3. Теперь мы должны создать сам календарь в виде появляющегося окошка. Для этого в меню Insert выберите команду UserForm. Откроется пустая форма диалогового окна с панелью инструментов Toolbox:
  4. Щелкните по заголовку панели Toolbox. Скорее всего, на панели отсутствует иконка для создания календаря. В этом случае следует выбрать в меню Tools команду Additional Controls. Откроется диалоговое окно, в котором найдите и установите флажок у элемента Элемент управления Календарь 11.0, как на рисунке ниже:
    Additional Controls

    Если у вас англоязычная версия редактора Word, то этот элемент будет называться Calendar Control 11.0 (номер зависит от версии редактора).

  5. Щелкните указателем мыши на появившемся на панели Toolbox элементе Calendar и нарисуйте на форме квадрат, чтобы календарь занял всю форму. Впрочем, можете и уменьшить его размеры. Как вам будет угодно. Получится примерно так:
    UserForm1
  6. Теперь можно настроить свойства календаря, в частности, его внешний вид. Как вы можете видеть, календарь использует краткую форму вывода даты, что не очень красиво и удобно. Изменим это. В панели свойств (Properties - Calendar1) щелкните на правой ячейке строки (Custom):
    Properties

    Откроется диалоговое окно Property Pages. Измените в нем значения на те, которые показаны на скриншоте ниже, и нажмите кнопку Применить, а затем закройте окно:

    Propertiy Pages
  7. Щелкните на заголовке формы, а затем в панели ее свойств измените значение строки (Name) "UserForm1" на значение "frmCalendar", а значение строки Caption "UserForm1" на значение "Календарь - Выберите дату". Заголовок нашей формы изменится.

    Собственно, сам календарь уже готов. Но он практически бесполезен. Поэтому добавим календарю функцию выбора даты и вставки ее в документ.

  8. Для начала установим возможность закрывать форму календаря по нажатию клавиши "Esc", как альтернативу кнопке в правом верхнем углу окна. Иногда это удобнее. Поместим прямо на календарь кнопку, выбрав ее с панели Toolbox (кнопка называется CommandButton). Кнопка сама по себе будет скрыта от пользователя, но на этапе разработки мы видим ее контуры.
  9. В панели свойств кнопки (она должна быть в данный момент выделена у вас) измените значение строки (Name) "CommandButton1" на значение "cmdClose", а значение строки Cancel "false" на значение "True"
  10. Дважды щелкните по контуру вашей кнопки (или нажмите клавишу "F7"), чтобы перейти в окно кода и между строками кода введите: Unload Me . Итоговый код должен выглядеть так:
    Private Sub cmdClose_Click()
    Unload Me
    End Sub

    Все, теперь форма будет закрываться, если пользователь нажмет клавишу "Esc".

  11. Теперь напишем код для вставки выбранной даты в документ. Для этого в раскрывающемся списке панели свойств выберите строку Calendar1 Calendar :
    Properties

    Календарь будет выделен на форме (появится рамка). Дважды щелкните по ней мышью, чтобы перейти в окно кода к созданной процедуре. Введите между двумя существующими операторами следующий код:

    Selection.Text = Format(Calendar1.Value, "dd mmmm yyyy") & " Рі. "
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Unload Me

    Итоговый код должен выглядеть так:

    Private Sub Calendar1_Click()
    Selection.Text = Format(Calendar1.Value, "dd mmmm yyyy") & " г. "
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Unload Me 
    End Sub

    Этот код вствляет выбранную дату из календаря в место, где находится курсор ввода в документе, а затем курсор ввода перемещается на 1 символ вправо (для ввода пользователем следующего текста) и форма закрывается.

  12. Чтобы при открытии календаря всегда отображалась текущая дата, ниже кода макроса Private Sub Calendar1_Click() вставьте следующий код:
    Private Sub UserForm_Initialize()
    Calendar1.Today
    End Sub
  13. Для того, чтобы календарь был доступен всегда, когда открывается документ (основанный на этом шаблоне), необходимо добавить в наш проект новый модуль и ввести соответствущий код. Для этого в меню Insert выберите команду Module. Новое (пустое) окно будет открыто в редакторе VB. Введите следующий код:
    Sub OpenCalendar()
    frmCalendar.Show
    End Sub
  14. Обязательно сохраните все изменения в макросе, нажав на кнопку Save на панели инструментов редактора Visual Basic.
  15. Календарь готов и его можно протестировать. Для этого перейдите в окно редактора Word и нажмите сочетание клавиш "Alt"+"F8". Откроется диалоговое окно Макрос. Найдите в списке макросов созданный вами макрос OpenCalendar и нажмите кнопку Выполнить. Откроется наш календарь. Выберите в нем любую дату и щелкните по ней. Дата будет вставлена в документ, а форма календаря закроется.
  16. Осталось сделать лишь одну из трех вещей: разместить кнопку на собственной панели инструментов (см.статью Как создать собственную панель инструментов), либо назначить сочетания клавиш для этого макроса (Настройка сочетаний клавиш), либо добавить команду вызова календаря в контекстное меню, вызываемое щелчком правой кнопки мыши (см.статью Как добавить свою команду в контекстное меню Word).

Если вы работаете с редактором Word 2007, то все действия по созданию календаря будут аналогичными. Разница может быть лишь в размещении кнопки макроса на панель быстрого доступа либо добавления команды в контекстное меню (см.статью Как добавить свои команды в контекстное меню в Word 2007).

Как я и обещал, вы можете скачать шаблон "Календарь Word" (форма загрузки). Распакуйте шаблон и поместите его в папку автозагрузки Word, которая примерно находится по следующему адресу на вашем компьютере: C:\Documents and Settings\Application Data\Microsoft\Word\STARTUP\ . После открытия документа (создания документа) будет доступна новая панель инструментов с кнопкой вызова календаря.

В каталоге Download Вы можете найти другие полезные материалы - утилиты, программы, документацию, исходники, электронные книги. Если Вы обнаружили неработающую ссылку, пожалуйста, помогите другим посетителям и администратору каталога Download - сообщите об этом редактору.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=16741