1

Тема: Контекстное меню Ворд 2003 не сохраняется

В хэлпе MS Word 2003 сказано: «Добавление, удаление и восстановление контекстных меню в Microsoft Office невозможно». Уже грустно.

Однако, там же следует подробное описание — как его настроить. И таки оно настраивается: Сервис — Настройка — вкладка «Панели инструментов» — чекбокс «Контекстное меню». Появляется панель инструментов «Контекстные меню» с пунктами «Текст», «Таблица» и «Рисование», где можно таскать пункты контекстных меню из одного в другое.

Мне, как мышененавистнику, это очень нравится: не нужно лезть в дебри для доступа к часто используемым функциям. Однако, вся кропотливая работа по настройке пропадает с перезагрузкой Ворда. Подскажите — как зафиксировать настроенные контекстные меню.

Я надеюсь на то, что противоречие в хэлпе сработает в мою сторону.

Контекстное меню Ворд 2003 не сохраняется

Контекстное меню Ворд 2003 не сохраняется

2

Re: Контекстное меню Ворд 2003 не сохраняется

petrzverev пишет:

...как зафиксировать...

Не настраивал раньше именно контекстные меню. Попробовал. У меня все фиксируется.

Настройки меню, в том числе контекстных, Word хранит в документе или шаблоне. Т.е. под каждый документ можно сделать свой интерфейс. Настройки по умолчанию, которые вы и пытались изменить, хранятся в шаблоне Normal. Для чистоты эксперимента, закройте все документы, выполните настройку, закройте-откройте Word, и проверьте... Скорее всего, все ваши настройки остались в том документе (или его шаблоне), который был открыт в тот момент. Как это не странно, а документ, где будут производиться настройки, указывается в том же окне "Настройка" на вкладке "Команды" в поле "Сохранить в".

Макросы под заказ и готовый пакет - mtdmacro.ru

3

Re: Контекстное меню Ворд 2003 не сохраняется

Проблема решена в лоб.

Я открыл NORMAL.DOT как файл, внёс изменения в панелях и контекстных меню и сохранился. Теперь всё работает, во всех файлах.

4

Re: Контекстное меню Ворд 2003 не сохраняется

контекстное меню ещё можно программно сделать как нужно

5

Re: Контекстное меню Ворд 2003 не сохраняется

Это как?

6

Re: Контекстное меню Ворд 2003 не сохраняется

Sub СозданиеМеню()

'Если нужно поменять контекстное меню, нужно:
'1. менять код процедуры "СозданиеМеню"
'2. запустить вручную процедуры "УдалениеМеню", "СозданиеМеню"
'3. будет новое меню

'контекстное меню появляется  когда курсор находится в таблице
    With Application.CommandBars("Table Text")

        With .Controls.Add(msoControlButton)
            .OnAction = "Script_для_контекстных_меню.Удалить_строку_таблицы"
            '"&" перед знаком, означает, что этому знаку назначена горячая клавиша
            .Caption = "Удалить строку таблицы &0"
        End With

        With .Controls.Add(msoControlButton)
            .OnAction = "Script_для_контекстных_меню.Добавить_строку_таблицы_1"
            '"&" перед знаком, означает, что этому знаку назначена горячая клавиша, ChrW(8595)- это стрелочка вниз
            .Caption = "Добавить 1 строку таблицы " & ChrW(8595) & " &1"
        End With

        With .Controls.Add(msoControlButton)
            .OnAction = "Script_для_контекстных_меню.Добавить_строку_таблицы_2"
            '"&" перед знаком, означает, что этому знаку назначена горячая клавиша, ChrW(8595)- это стрелочка вниз
            .Caption = "Добавить 2 строки таблицы " & ChrW(8595) & " &2"
        End With

        With .Controls.Add(msoControlButton)
            .OnAction = "Script_для_контекстных_меню.Цвет_таблицы_None"
            '"&" перед знаком, означает, что этому знаку назначена горячая клавиша
            .Caption = "Цвет таблицы None &3"
        End With

    End With
'________________________________________________________________________________________________________________

    'контекстное меню появляется в тексте
    With Application.CommandBars("Text")

        With .Controls.Add(msoControlButton)
            .OnAction = "Script_для_контекстных_меню.УК_РФ"
            '"&" перед знаком, означает, что этому знаку назначена горячая клавиша
            .Caption = "Меню &1"
        End With
    'контекстное меню появляется при наведении на Fields
    With Application.CommandBars("Fields")

        With .Controls.Add(msoControlButton)
            .OnAction = "Script_для_контекстных_меню.Действие_с_Fields"
            '"&" перед знаком, означает, что этому знаку назначена горячая клавиша
            .Caption = "Действие с Fields &1"
        End With

    End With
   '________________________________________________________________________________________________________________

    'контекстное меню появляется при наведении на Forms
    With Application.CommandBars("Forms")

        With .Controls.Add(msoControlButton)
            .OnAction = "Script_для_контекстных_меню.Действие_с_Forms"
            '"&" перед знаком, означает, что этому знаку назначена горячая клавиша
            .Caption = "Действие с Forms &1"
        End With

    End With

    '________________________________________________________________________________________________________________

    'контекстное меню появляется при наведении на Form Fields
    With Application.CommandBars("Form Fields")

        With .Controls.Add(msoControlButton)
            .OnAction = "Script_для_контекстных_меню.Действие_с_FormFields"
            '"&" перед знаком, означает, что этому знаку назначена горячая клавиша
            .Caption = "Действие с Form Fields &1"
        End With

    End With

End Sub

Sub УдалениеМеню()

    Dim УдаляемыйПункт As CommandBarControl
    Dim Меню As CommandBar
    For Each Меню In Application.CommandBars    ' для каждого меню
        For Each УдаляемыйПункт In Меню.Controls    ' каждый элемент меню
            If УдаляемыйПункт.BuiltIn = False Then УдаляемыйПункт.Delete
        Next УдаляемыйПункт
    Next Меню

End Sub

7

Re: Контекстное меню Ворд 2003 не сохраняется

Спасибо, поимел в виду.