|
|
|
Некоторые особенности работы в Word
|
|||
|---|---|---|---|
|
#18+
Добрый день, друзья! Хотя существует раздел форума по MS Office, мне уютнее у вас. Думаю, многие программисты так или иначе работают с отчётами в Word. В связи с этим хотелось бы подсказать некоторые особенности, которые могут вам помочь в работе. Сразу оговорюсь, что к Access это не имеет отношения, вся работа с VBA ведётся исключительно в Word. И начнём мы с простой процедуры, которая устанавливает в строке состояния (Status Bar) процент выполнения текущей задачи. После завершения формирования отчёта строка состояния автоматически принимает исходный вид: "Стр. 1 Разд. 1 "... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2011, 10:07 |
|
||
|
Некоторые особенности работы в Word
|
|||
|---|---|---|---|
|
#18+
После выдачи документа на экран полезно позаботиться о тех, кто его читает. Не у всех большие экраны, поэтому не всегда документ влезает на страницу по ширине, и его приходится прокручивать вправо. Здесь при разрешении экрана, не большем 1024x768, страница выводится "по ширине страницы". Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2011, 14:35 |
|
||
|
Некоторые особенности работы в Word
|
|||
|---|---|---|---|
|
#18+
В VBA для Word не существует функции Nz. Равно как не существует и обратной к Nz функции. Вместо них с небольшими оговорками можно применить следующие приёмы. Код: plaintext 1. 2. Код: plaintext 1. 2. Код: plaintext 1. Смирнов Игорь Васильевич, г., ул.Молодёжная, д. На помощь приходит обратная к Nz функция, которая для пустой строки создаёт Null: Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2011, 15:02 |
|
||
|
Некоторые особенности работы в Word
|
|||
|---|---|---|---|
|
#18+
CoolMind, автормне уютнее у вас Конечно здесь уютнее:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2011, 16:35 |
|
||
|
Некоторые особенности работы в Word
|
|||
|---|---|---|---|
|
#18+
Nebo, :) Здесь проще прослыть знатоком Word'а Если при выдаче информации в любимый редактор вам требуется не показывать на бумаге какие-то данные, но при этом всё равно хочется их видеть, сделайте шрифт белым (в других местах - обратно чёрным). Это помогает при разборе сложных случаев. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2011, 16:50 |
|
||
|
Некоторые особенности работы в Word
|
|||
|---|---|---|---|
|
#18+
В некоторых случаях при запуске документа Word требуется уточнить какие-то данные у пользователя. Типичный InputBox в коде программы малоинформативен. Для работы с формами ввода информации служит модуль формы. Откройте VBA (Alt+F11). Добавьте форму (например, через меню Insert > UserForm). Назовите её как-нибудь, например, "frmParameters" через Properties. Добавьте на форму необходимые компоненты. На рисунке их видно слева в панельке Toolbox. Теперь в панели Project щёлкните правой кнопкой на названии вашей формы и выберите "View Code". Откроется код программы, ответственной за обработчики событий, возникающих в форме. Ключевое событие объекта UserForm - Activate. Код: plaintext 1. 2. 3. Код: plaintext Код: plaintext 1. В Windows 7 замечена проблема: форма открывается на заднем плане и не видна. Кажется, что документ "завис". Вероятно, решением служит такая комбинация (не уверен, потому что работаю в XP): Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2011, 10:51 |
|
||
|
Некоторые особенности работы в Word
|
|||
|---|---|---|---|
|
#18+
Замечено, что примерно на 1% компьютеров возникает следующая проблема. Вы открываете документ, ничего не трогаете, а при закрытии он вдруг задаёт вопрос о сохранении. Или, пуще того, просит сохранить Normal.dot. А если документ был создан на основе вашего шаблона, то ещё и этот шаблон. Такое недостойное поведение Word'а надо исправить. Известно, что Normal.dot сохраняется после каждого открытия/закрытия Word'а автоматически. Однако, он по-прежнему может пытаться об этом спрашивать. При попытке сохранения он может задать и дополнительный вопрос, а если отказались, то ещё два или три (действительно ли хотите выйти из Word; шаблон не сохранён). Для обработки некоторых типичных ситуаций советую ознакомиться с документом Запрос на сохранение изменений в общем шаблоне Normal.dot или Normal.dotm либо в глобальном шаблоне Normal.dotm . Давайте рассмотрим их подробнее. 1. Откройте наш текстовый редактор, войдите в VBA-редактор. Проверьте, всё ли в порядке в меню Add-Ins > Add-In Manager... Хитрые надстройки могут прятаться там. Можете смело почикать их или снять галочки, ведь это не приведёт к сбою в работе Word. 2. Откройте Сервис > Настройка. Появится окно настройки панелей инструментов. Вы окажетесь во вкладке "Команды". Слева, в "Категориях", выберите "Сервис", а справа - "Надстройки для модели COM...". Перетяните хвостатой мышкой эту кнопку на панель инструментов. Теперь нажмите "Закрыть" в диалоговом окне. Нажмите на нашу новую кнопочку, откроется окно с надстройками. Снимите галочки с установленных надстроек. Если просто удалить их, то при загрузке того приложения, которое их создало, надстройки снова появятся. Закройте диалоговое окно. Можно затем убрать кнопку с панели инструментов. Теперь зайдём в "Гарант", если он у вас установлен. Меню Файл > Настройка конфигурации... Открывается диалоговое окно, в котором в разделе "Поведение системы" снимите галочку "Включить интеграцию с MS Office". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2011, 11:28 |
|
||
|
Некоторые особенности работы в Word
|
|||
|---|---|---|---|
|
#18+
Если при выдаче документа вам требуется выводить по 2 страницы на листе А4 (например, в полях слияния), поступайте следующим образом. Файл > Параметры страницы, далее выберите "2 страницы на листе". 1) Если ориентация при этом останется книжной, то на экране лист А4 разделится пополам, нижняя половинка исчезнет, ширина будет больше высоты (см. рисунок). В этом случае, если вы вставите бумагу в принтер, на ней будут выходить документы по 2 штуки на страницу. Можно будет печатать отдельные странички на листах А5 (порежете лист пополам, вставите в принтер - он распечатается). 2) Если ориентация будет альбомной, то на экране лист А4 уменьшится в размерах, ширина будет меньше высоты. При печати будут выходить 2 странички на лист. К сожалению, отдельные странички на половинках листов не будут распечатываться. По крайней мере, на принтере HP 1020. Если вы вставите в принтер половинку листа и попробуете напечатать отдельную страничку из такого документа, то страничка останется чистой, а принтер попытается напечатать на несуществующей половинке листа, чем только испачкает барабан, и следующие копии будут слегка серыми. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2011, 12:38 |
|
||
|
Некоторые особенности работы в Word
|
|||
|---|---|---|---|
|
#18+
Сегодня поговорим об общих для нескольких проектов процедурах. Речь пойдёт о Word, но аналогичные действия можно провести и в Access. Я не упомянул о том, что в данном разделе Word выступает как самостоятельный инструмент отчётов, а не форма выдачи отчёта из Access. Т.е. работа с внешней базой данных возможна и из Word. Известно, что внутри организации возможны изменения в оформлении документов. Это порождает проблему, из-за которой часто приходится менять и сами шаблоны, и отдельные процедуры. Поскольку шаблонов отчётов может быть много, а общие процедуры должны быть едины для всех, приходится часто их обновлять. Стандартным способом является сохранение общих для нескольких проектов процедур в едином модуле, а затем добавление его в каждый шаблон. Это делается через VBA: Import File. Однако, если шаблонов (проектов) у вас много, такой метод заставляет хорошо помучаться. Решением является добавление модуля через References. Итак, откройте Word, затем VBA. Добавьте новый модуль (Insert > Module). Внесите в него все процедуры, которые будут использоваться в проектах. Можно добавить несколько модулей, можно также на панель инструментов шаблона внести дополнительные кнопки. Так, у меня используется следующая кнопка: Код: plaintext 1. 2. 3. 4. Далее следует сохранить шаблон (расширение - dot) в папке, которая будет использоваться для всех проектов. Теперь осталось для каждого шаблона отчёта выполнить следующие действия: - открыть шаблон, - перейти в VBA, - войти в меню Tools > References, - нажать в диалоговом окне кнопку Browse, затем выбрать "Тип файлов" - "Документы Word (*.doc, *.dot)", перейти в папку, куда вы сохранили общий шаблон, выбрать его, нажать OK, - сохранить и выйти из шаблона документа. Всё, к форме отчёта подключён общий модуль. Можно точно также подключить общий модуль ко всем оставшимся шаблонам. Теперь, если вы вносите какие-то изменения в общие процедуры, они отразятся на всех проектах. Не придётся заново обходить все проекты и копировать общие процедуры. Единственная сложность - это папка, в которой лежит общий модуль. Дело в том, что через Tools > References указывается абсолютный путь. Соответственно, на компьютере пользователя он должен быть таким же, как у вас. Если это не так, то во время выполнения отчёта общий модуль будет искаться в текущей для отчёта папке. Если он не будет найден, возникнет ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2011, 09:41 |
|
||
|
Некоторые особенности работы в Word
|
|||
|---|---|---|---|
|
#18+
Время от времени приходится исправлять ошибки. Так, например, процедуру FitWordPage придётся переделать. Выяснилось, что если в открывшемся окне Word нет ни одного документа (пустое окно), то она выдаёт ошибку. Если документов много, то меняет масштаб только у активного окна. Исправим. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2011, 09:56 |
|
||
|
Некоторые особенности работы в Word
|
|||
|---|---|---|---|
|
#18+
Недавно озаботился тем, чтобы сделать шкалу выполнения (progressbar) более симпатичным. Нашёл пару изображений, которые помогли бы в этом. Sonic Progress Bar Control и ProgressBarXP соответственно. Сделал простенький пример. Внутри есть модуль формы со шкалой прогресса и заполнение таблицы. При нажатии на кнопку "Отмена" таблица перестаёт заполняться. Чтобы запустить пример, достаточно дважды щёлкнуть по шаблону. Результат вы видите на экране. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 13:46 |
|
||
|
Некоторые особенности работы в Word
|
|||
|---|---|---|---|
|
#18+
CoolMindХотя существует раздел форума по MS Office, мне уютнее у вас. Думаю, многие программисты так или иначе работают с отчётами в Word. В связи с этим хотелось бы подсказать некоторые особенности, которые могут вам помочь в работе. Сразу оговорюсь, что к Access это не имеет отношения, вся работа с VBA ведётся исключительно в Word. Первое выделенное красным - не аргумент. А второе - как раз аргумент. Хороший и полезный топик, пусть у людей будет шанс его найти. Переношу. Модератор: Тема перенесена из форума "Microsoft Access". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 14:00 |
|
||
|
Некоторые особенности работы в Word
|
|||
|---|---|---|---|
|
#18+
поясните пжл получше о строке состояния (Status Bar) процент выполнения текущей задачи так мы вызываем процедуру: Код: plaintext имею ввиду например код Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 18:03 |
|
||
|
Некоторые особенности работы в Word
|
|||
|---|---|---|---|
|
#18+
Ципихович Эндрю, добрый вечер! Ципихович Эндрю Код: plaintext 1. 2. В этом случае вам можно написать так: Код: plaintext 1. 2. 3. Правда, во время работы такого цикла будет заметно небольшое подёргивание строки состояния, поэтому лично я перешёл к другому варианту (см. предыдущий совет со шкалой прогресса в виде рисунка). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 18:12 |
|
||
|
Некоторые особенности работы в Word
|
|||
|---|---|---|---|
|
#18+
CoolMind, зря я такой пример написал 999999 Бипов, а если код в столбик 999999 Бипов, тогда где вызов процедуры писать??? Beep Beep Beep Beep Beep Beep Beep ...... 999999Beep ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 18:55 |
|
||
|
Некоторые особенности работы в Word
|
|||
|---|---|---|---|
|
#18+
Ципихович Эндрю, в этом случае вам можно добавить вызов процедуры в любом месте программы. Например, после каждого десятого оператора. Но тогда и считать кол-во процентов надо самостоятельно. Например, используя ещё одну процедуру (код не проверял). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2011, 08:16 |
|
||
|
Некоторые особенности работы в Word
|
|||
|---|---|---|---|
|
#18+
СoolMindНедавно озаботился тем, чтобы сделать шкалу выполнения (progressbar) более симпатичным. Нашёл пару изображений, которые помогли бы в этом. А можно немного поподробнее об использовании и настройке этих элементов? Скачать я смогу видимо только не раньше понедельника. Бесплатно - видимо только на какой-то ограниченный срок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2011, 13:34 |
|
||
|
Некоторые особенности работы в Word
|
|||
|---|---|---|---|
|
#18+
ALEXIS_22, добрый день! Оба компонента платные, но в демо-режиме работают. Sonic Progress Bar ActiveX Control устанавливается как ActiveX; ProgressBarXP - это, по-моему, OCX, а в примере есть использование на VB. К сожалению, я не стал использовать их как ActiveX'ы в своих программах, пока ограничился одним рисунком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2011, 14:45 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=37257045&tid=2176555]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 337ms |

| 0 / 0 |
