Word VBA Макрос: Переход по Tab только по заполняемым полям.

Автор Irina18, 29 августа 2017, 11:36

Irina18

На основе примеров форума сварганила вариант договора. Хотелось бы чтобы перемещение по Tab или курсорными стрелочками, осуществлялось только по заполняемым полям. Если есть возможность, чтобы кое-какие поля (например номер телефона) можно было заполнять с помощью маски. Файл во вложении. Всем спасибо.

[вложение удалено администратором]

Администратор

С помощью Tab можно перемещаться, если использовать "Элемент управления содержимым "Обычный текст" и включите защиту: вкладка "Рецензирование" - Ограничить редактирование - в пункте 2 выберите "Ввод данных в поля форм".

Или может быть удобнее сделать VBA-форму с полями. Юзер щёлкает кнопку (например на ленте) - появляется форма - юзер заполняет поля формы - щёлкает OK и данные из формы копируются в нужные места ворд-файла.

По поводу ввода текста по маске. Для этого случае может подойти использование vba-формы, в ней можно настроить.
Или же можно попробовать вставить в файл элемент управления "activex" и написать для него макрос. ActiveX вставляется так: вкладка "Разработчик" - группа "Элементы управления" - Инструменты из предыдущих версий - раздел "Элементы ActiveX". Как в самом ворде работать по маске, не знаю.

Irina18

Последний вопрос на сегодня. Какие изменения надо внести в mod_cislo, чтобы можно было удалить mod_Summa1, который выполняет копирование данных из поля chislo в поле chislo1?

[вложение удалено администратором]


Irina18

Можно ли что добавить в mod_chislo, чтобы данные из поля chislo копировались в поле chislo1, а mod_Summa1 удалить из проекта, т.к. mod_Summa1 у меня выполняет только эту функцию копирования.

Администратор

Не ответ на ваш вопрос, просто совет.

Это:
        Select Case cont.Tag
            Case "propis"
                cont.Range.text = text
            Case "propis1"
                cont.Range.text = text
        End Select

Можно записать так:
        Select Case cont.Tag
            Case "propis", "propis1"
                cont.Range.text = text
        End Select

То есть можно писать через запятую.

Администратор

Решение в файле.

[вложение удалено администратором]

Irina18