Конвертирование формы из txt в Word

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Аватара пользователя
Aent
Сообщения: 1108
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

05 окт 2006, 01:16

Существует бланк набранный в txt файле в кодировке Win-1251
шрифтом Courier New. Каждая строка оканчивается vbCr.
Места для заполнения в нём заданы символами подчёркивания.
Нужно автоматически преобразовывать такие бланки в документы
Word, удобные для заполнения.
Я замещаю последовательность _ символом табуляции и добавляю
в коллекцию TabStops нужный элемент с заполнителем ________
Проблема в следующем:
Был текст ......АААААА________________BBBBBBB ..............
Стал ......АААААА--------- -> ---------BBBBBBB ..............

Заполняемые места добавляются в коллекцию Editors и документ
защищается. Но когда пользователь начинает заполнять "поле"
своим текстом - этот текст оказывается неподчёркнутым.
Вставить подчёркнутый пробел перед табуляцией я могу.
Но это не всегда допустимо. В некоторых местах текста не должно
быть разрывов.
Т.О. пользователь вынужден, перейдя к очередному месту
заполнения, введя первый символ явно указать для него
атрибут - подчёркнутый :(
Буду рад любым конструктивным предложениям.
Sokl
Сообщения: 449
Зарегистрирован: 12 сен 2005, 08:52
Откуда: ОМ

05 окт 2006, 06:13

Проверил. У меня так же.

Проблема в том, что табуляция с заполнением "_ _" - это не тоже самое, что подчеркнутый шрифт, это заполнение знаками подчеркивания, которые в последствии и замещаются букоФками...

Если нужно, чтобы "пустое место" в документе для ввода данных пользователем было подчеркнуто, и затем введенные пользователем данные тоже были подчеркнутыми, то я бы использовал незаполненный ТАБ и шрифт с underline...

Короче, попробуй снять у табуляции заполнение "_ _" и сделать вместо этого подчеркивание. Должно сработать...
Sokl
Сообщения: 449
Зарегистрирован: 12 сен 2005, 08:52
Откуда: ОМ

05 окт 2006, 06:27

Вопрос. Как защитить документ, чтобы возможность редактирования Editors была предоставлена всем пользователям?
Аватара пользователя
Aent
Сообщения: 1108
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

05 окт 2006, 12:39

Как защитить документ, чтобы возможность редактирования Editors была предоставлена всем пользователям?
А разве если добавляешь область редактирования так

Код: Выделить всё

 Selection.Editors.Add wdEditorEveryone 
то этого не происходит ?
Из Help по Add для Editors:
  • wdEditorCurrent Represents the current user of the document.
  • wdEditorEditors Represents the Editors group for documents that use Information Rights Management.
  • wdEditorEveryone Represents all users who open a document.
  • wdEditorOwners Represents the Owners group for documents that use Information Rights Management.
Sokl
Сообщения: 449
Зарегистрирован: 12 сен 2005, 08:52
Откуда: ОМ

05 окт 2006, 13:00

Хтоп читал ентот Хелп! :)
Аватара пользователя
Aent
Сообщения: 1108
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

05 окт 2006, 13:16

Короче, попробуй снять у табуляции заполнение "_ _" и сделать вместо этого подчеркивание. Должно сработать...
Не работает :( Ещё раз. Набрано ААА->BBB. Для шрифта символа табуляции установлен атрибут underline. Табуляция входит в зону редактирования.
При входе в зону курсор помещается между ААА и Tab. Вводим символ. Он естественно оказывается набранным шрифтом текста ААА.
Т.е. без табуляции.Если в этот момент установить ПЕРЕД вводом признак подчёркивания - всё нормально. Но это лишнее движение :(
И атрибут НЕ СОХРАНЯЕТСЯ. :(
Если перед табуляцией поставить подчёркнутый пробел - всё работает. Но это у меня не проходит по условиям задачи.
Андрей Энтелис,
aentelis.livejournal.com
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

05 окт 2006, 14:09

а юзер сам тыкает мышой для перехода? или там макросы какие есть?
как вариант вставить пробел и пусть юзер перед вводом его выделяет. Или так... Наверняка он не просто бумажку заполнил и пошёл, а что-то ещё должен сделать - повесить это действие на кнопку, первым делом удавить лишний пробел ;)
Изображение
Аватара пользователя
Aent
Сообщения: 1108
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

05 окт 2006, 14:27

Причём если табуляция идёт непосредственно от начала параграфа, то всё OK :(
Андрей Энтелис,
aentelis.livejournal.com
Sokl
Сообщения: 449
Зарегистрирован: 12 сен 2005, 08:52
Откуда: ОМ

06 окт 2006, 05:57

Из справки беру пример:

Код: Выделить всё

Dim objEditor As Editor
Set objEditor = Selection.Editors.Add(wdEditorCurrent)
а он работает как-то ну уж очень странно! Говорит objEditor - Nothing!!! 8o(

Ну, да ладно! Я о другом хочу сказать.
Нормальное поведение Ворда:
1. Введем текст: aaabbb
2. Поставим курсор между ааа и bbb
3. Введем ccc
4. Получим: aaacccbbb
Ворд берет стиль символа слева

Могу осторожно :o ops: предложить следующее!
1. Есть текст: ААА[tab]БББ
2. Заменяем один [tab] тремя символами: [неразрываная связка][tab][неразрываная связка] (чтобы добавить символ [неразрываная связка] - Вставка/Символ/Специальные знаки/Неразрывная связка/Вставить)
3. Делаем три символа подчеркнутыми: [неразрываная связка][tab][неразрываная связка]
4. Создаем эдитор только для [tab], оставляя оба символа [неразрываная связка] вне эдитора.

В автоматическом режиме нужно замещять последовательность символов [_] всем вышеописанным хозяйством... :о/
Аватара пользователя
Aent
Сообщения: 1108
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

06 окт 2006, 14:50

Создаем эдитор только для [tab], оставляя оба символа [неразрываная связка] вне эдитора.
Спасибо. В первом приближении помогло.
Андрей Энтелис,
aentelis.livejournal.com
Ответить