1

Тема: Автоматическое формирование списка сокращений (аббревиатур)

Добрый день. Практически уже готов макрос, выполняющий работу, указанную в теме. Для формирования данного списка используются два внешних файла: первый - файл с исключениями (просто словами, написанными заглавными буквами, но не являющиеся абревиатурами), второй - таблица сокращения с расшифровкой - файлы пользователь может заполнять под себя и под свои задачи. Могу просто предоставить свои файлы, собранные из проверяемых мной за несколько лет документов по АСУ.
Если ли у кого-то потребность в таком макросе? У себя на работе уже очень сильно облегчил жизнь этим макросом документаторам.  Думаю, что вместе можно будет обсудить и улучшить данный макрос.

2

Re: Автоматическое формирование списка сокращений (аббревиатур)

Конечно выкладывайте. Такой макрос может много кому пригодиться.
Но, поскольку это Ваш код, то прокомментируйте его как можно подробнее, чтобы сэкономить время желающим разобраться.

Лучше день потерять — потом за пять минут долететь!

3

Re: Автоматическое формирование списка сокращений (аббревиатур)

viter.alex пишет:

Конечно выкладывайте. Такой макрос может много кому пригодиться.
Но, поскольку это Ваш код, то прокомментируйте его как можно подробнее, чтобы сэкономить время желающим разобраться.

Вроде старался коментировать подробно:) Сейчас вспомнил, что у меня в нем изначальное условие, что файлы лежат на сервере, если их нет, идет поиск в целевой папке, и только потом запрашивается у пользователя, чтобы он показал где лежат данные файлы. Пробовал на домашнем компе - тормоза в начале работы макроса - секунд девять. Завтра уберу сетевое расположение файлов из макроса и постараюсь выложить!

Вроде сделал проще, закоментировал обращение к сетевому диску, так оно мне еще понадобится.. А также может понадобиться и другим:)
Выкладываю три файла во вложении:
Sokr_slov.dot - собственно шаблон с макросом - необходимо расположить в директории STARTUP для WORDа.
Исключения для сокращений.doc
Сокращения с расшифровками.doc

К этим двум файлам при первом запуске сам запросит показать путь. В дальнейшем они будут лежать по следующему пути: C:\Program Files\Microsoft Office\OFFICE11\Sokr
Запускать пока из списка возможных макросов (да, нужно шаблон с макросом подключить как надстройку, если он сам не подключится).
Ну а теперь обращение к знатокам - хотелось бы внести следующие дополнения в данный макрос.

1. Сделать автоматический установщик - чтобы шаблон копировался в папку старта ворда для текущего пользователя - так как предстоит устанавливать его на достаточно большом количестве компьютеров.
2. Добавить панель инструментов и меню для запуска данного макроса - по выбору пользователя (меню - для дальнейшего расширения и добавления других макросов)
3. Код, скорее всего, неоптимален. Буду рад любым пожеланиям по его улучшению без потери уже существующей функциональности.
4. После готовности макроса защитить его от комбинации клавишь [Ctrl]+[Break], так как макрос работает с файлами, которые в инвизибле, и при его остановке файлы останутся открытыми, но доступ к ним будет отсутствовать и ворд можно будет только из панели процессов удалить..
Заранее благодарен за любую помощь и комментарии!

Отредактировано andrkar (11.03.2010 04:43:45)

Post's attachments

sokr_slov.rar 107.32 Кб, 133 скачиваний с 2010-03-10 

You don't have the permssions to download the attachments of this post.

4

Re: Автоматическое формирование списка сокращений (аббревиатур)

andrkar пишет:

…К этим двум файлам при первом запуске сам запросит показать путь. В дальнейшем они будут лежать по следующему пути: C:Program FilesMicrosoft OfficeOFFICE11Sokr

Это плохо. Если пользователь работает не с правами администратора, то у него может не быть прав для записи в эту папку. Поскольку большинство ОС сейчас многопользовательские желательно учесть вероятность, что пользователь ограничен в правах. Есть же %APPDATA%

Лучше день потерять — потом за пять минут долететь!

5

Re: Автоматическое формирование списка сокращений (аббревиатур)

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

6

Re: Автоматическое формирование списка сокращений (аббревиатур)

Чтобы не плодить тему - не всем нужен столь навороченный вариант - иногда просто достаточно составить список - решение смотреть на: внешняя ссылка или см приложенный файл
только нужно заменить:
.Text = "<[A-Z]{3" & strListSep & "}>"
на
.Text = "<[A-ZА-ЯЁ]{2" & strListSep & "}>" или
.Text = "<[A-ZА-ЯЁ]@>"
возможно и автор найдет там интересное

Замечания:
1) Случайно запустил в файле, где вначале стояла таблица - он прямо в 1-ю ячеку все всобачил smile
    ? добавить защиту "от дурака" wink
2) При переключении на другое приложение? в ходе работы макроса вставилось только "Список сокращений:"

andrkar пишет:

4. После готовности макроса защитить его от комбинации клавишь [Ctrl]+[Break], так как макрос работает с файлами, которые в инвизибле, и при его остановке файлы останутся открытыми, но доступ к ним будет отсутствовать и ворд можно будет только из панели процессов удалить..
Заранее благодарен за любую помощь и комментарии!

Пока не смотрел, но как вариант - при запуске макроса добавить банальную проверку на наличие открытых файлов - если файлы открыты - значит при прошлом запуске произошел аварийный останов..

Post's attachments

basACRONYMS_Extract_RU.bas 6.18 Кб, 36 скачиваний с 2010-10-12 

You don't have the permssions to download the attachments of this post.
Делай, что можешь, и будь, что будет!

7

Re: Автоматическое формирование списка сокращений (аббревиатур)

viter.alex пишет:

Есть же %APPDATA%

Environ$("APPDATA")

Делай, что можешь, и будь, что будет!

8

Re: Автоматическое формирование списка сокращений (аббревиатур)

andrkar пишет:

...4. После готовности макроса защитить его от комбинации клавишь [Ctrl]+[Break]...

Для контроля возможности прервать макрос клавишами CTRL+BREAK в Word есть параметр Application.EnableCancelKey.
Включить CTRL+BREAK: Application.EnableCancelKey = wdCancelInterrupt
Отключить CTRL+BREAK: Application.EnableCancelKey = wdCancelDisabled

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

9

Re: Автоматическое формирование списка сокращений (аббревиатур)

Вождь - спасибо! Вот это уже куда более дельный совет! smile Обязательно его использую!

10

Re: Автоматическое формирование списка сокращений (аббревиатур)

Заранее прошу прощения за реплику пользователя-чайника в диалоге профессионалов.))

Из переписки так и не сумела понять каким образом пользователи могут создавать автоматически список используемых сокращений (аббревиатур). Как это работает с точки зрения пользователя при создании нового текста? Можно ли этот список  оформить в качестве приложения к документу, или в качестве части документа?

Ответ необходим для понимания полезности Вашего решения для нашей организации. Если решение удобное - буду просить ИТ-ов разобраться и сделать похожее.

Благодарю, что дочитали до конца))

11

Re: Автоматическое формирование списка сокращений (аббревиатур)

Ирина Касаткина пишет:

... так и не сумела понять каким образом пользователи могут создавать автоматически список используемых сокращений (аббревиатур).

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

12

Re: Автоматическое формирование списка сокращений (аббревиатур)

Ирина Касаткина пишет:

каким образом пользователи могут создавать автоматически список используемых сокращений (аббревиатур). Как это работает с точки зрения пользователя при создании нового текста?

Ирина - выделенное - это то, что вы не поняли. Макрос составлен для сбора аббревиатур из уже существующего текста, а не для набора нового. Т.е. не для используемых, а для использованных

Ирина Касаткина пишет:

Можно ли этот список  оформить в качестве приложения к документу...?

А вот это уже я не понял - что вы обзываете приложением к документу?

Делай, что можешь, и будь, что будет!

13

Re: Автоматическое формирование списка сокращений (аббревиатур)

VBA-addict пишет:

А вот это уже я не понял - что вы обзываете приложением к документу?

Наверное, понимается следующее.
Создается отдельная глава документа (или отдельный раздел) с заголовком "Перечень сокращений",
размещается в указанном месте документа (в начале или в конце) и название должно автоматически включаться  в оглавление (содержание) документа.
По аналогии с предметным указателем, перечнем терминов  и т. п.

14

Re: Автоматическое формирование списка сокращений (аббревиатур)

Автору благодарность!
Хороший, полезный макрос.
Однако не выдает предупреждений, что директория не создалась и файлы не скопировались (C:Program Files Micro...)

Пока разбирался почему "каменный цветок не выходит", поменял пути на
Dest_File_path = ThisDocument.Path & "\"
чтобы аббревиатуры и исключения брались "рядом" с документом. Что конечно не оптимально.
Хорошо бы все пути куда-нибудь в конфиг вынести.


Возник еще попутно вопрос, нет ли идей или уже готовых решений, подходов по автоматизации создания списка терминов и определений?

15

Re: Автоматическое формирование списка сокращений (аббревиатур)

Может кому-то будет интересно вот такое решение данного вопроса (см.приложенный файл)

Word не может "тупить".
Он - всего лишь программа, выполняющая наши команды.

16

Re: Автоматическое формирование списка сокращений (аббревиатур)

Не приложился файлик что-то первый раз

Post's attachments

Обозначения и стандарты.docx 33 Кб, 47 скачиваний с 2012-02-16 

You don't have the permssions to download the attachments of this post.
Word не может "тупить".
Он - всего лишь программа, выполняющая наши команды.

17

Re: Автоматическое формирование списка сокращений (аббревиатур)

Пользоваться достаточно просто и удобно. Как пользоваться написано в самом файле. А теперь почему удобно: сокращения, используемые в документах, как правило, не склоняются, поэтому очень удобно все сокращения заменить на ссылки, и при желании поменять это сокращение (редко, но бывает) заменить нужно только текст закладки, а ссылки поменяются автоматом.
В документе сделано так, что форматирование списка ГОСТов и сокращений соответствует стилю "Указатель 1", задаём его форматирование и всё.
Единственный момент, который решить мне не удалось, ток это расстановка знака ";" в списке сокращений после их описания и постановка "." в последней строчке списка. Тут можно было только либо ставить "." после всех, либо ";", я выбрал "." и вроде никто не придирался (в ГОСТах этот момент чётко не регламентирован).

Конечно это не полный список сокращений и ГОСТов, используемых в нашей организации, я только начал, но идея думаю понятна. Список будет дополняться.
Если кому этот вариант интересен и есть вопросы, пишите, отвечу.

Word не может "тупить".
Он - всего лишь программа, выполняющая наши команды.

18

Re: Автоматическое формирование списка сокращений (аббревиатур)

Тот же документ, только там добавлены ещё списки терминов (терминов совсем немного).
Форматирование списка терминов соответствует стилю "Указатель 4".
Немного пояснений:
1) к термину в скобках {} применено прямое форматирование "Ж" (нажать кнопку "Ж" на панели инструментов "Абзац"), в противном случае в списке терминов оно будет не полужирным;
2) знак ":" после самого термина не двоеточие, а символ с кодом 58;
3) если хотите чтобы в самом определении было слово в кавычках, то вводите его не с клавиатуры, а применяйте символы APOSTROPHE с кодом 0027
4) сам термин в документ копировать не обязательно, можно скопировать только текст в скобках {}

Post's attachments

Обозначения и стандарты.docx 34.38 Кб, 35 скачиваний с 2012-02-16 

You don't have the permssions to download the attachments of this post.
Word не может "тупить".
Он - всего лишь программа, выполняющая наши команды.

19

Re: Автоматическое формирование списка сокращений (аббревиатур)

Обозначения и стандарты.docx - можно для 2003го? - Обозначения и стандарты.doc

20

Re: Автоматическое формирование списка сокращений (аббревиатур)

Конечно можно, что-то сразу не подумал.

Post's attachments

Обозначения и стандарты.doc 69.5 Кб, 34 скачиваний с 2012-02-21 

You don't have the permssions to download the attachments of this post.
Word не может "тупить".
Он - всего лишь программа, выполняющая наши команды.

21

Re: Автоматическое формирование списка сокращений (аббревиатур)

очень муторно... заумно...
двойной щелчек мыши и если выделенное то что надо, тогда меняем
как сделать знаю после выделения, а охота по щелчку

22

Re: Автоматическое формирование списка сокращений (аббревиатур)

Каждому своё.
Я пользуюсь именно этим способом и меня он устраивает именно потому что БЕЗ МАКРОСОВ и этот способ использует встроенные функции Word-а, просто я взял и убрал всякие переходы по меню и записи в окнах, вставки и форматирования... (см. группы "предметный указатель" и "таблица ссылок" в меню "ссылки" Word 2007) постарался сделать его наиболее понятным и простым. К тому же этот способ универсален для ГОСТов, сокращений и определений.
Кому понравится - пользуйтесь, кому нет - ищите альтернативу.

Word не может "тупить".
Он - всего лишь программа, выполняющая наши команды.

23

Re: Автоматическое формирование списка сокращений (аббревиатур)

Добрый день! Уважаемые товарищи Гуру. Помогите, пожалуйста. Не работает у меня это штуковина. Я не программист. Пыталась поправить под себя. Посмотрите, плиз, что не так! И надо убрать прибабаху с сервером  hmm

Post's attachments

Module1.bas 16.54 Кб, 5 скачиваний с 2016-05-17 

You don't have the permssions to download the attachments of this post.