Разработка технической документации и технические писатели Технические писатели и разработка технической документации технические писатели в Телеграм 

 obmen_soobsheniyami.png Чат для технических писателей 
 Зарегистрируйтесь
Страницы: 1 2 След.
RSS
Что такое макросы и чем они могут быть полезны в Word
 
Кто нибудь использует макросы Word? Поделитесь, пожалуйста, их практическим применением. Что это такое и чем они могут быть полезны?
Работаю по-старинке...
 
Цитата
Кто нибудь использует макросы Word? Поделитесь, пожалуйста, их практическим применением. Что это такое и чем они могут быть полезны?

Я использую макросы только для автоматизации некоторых простейших действий
(макросы создаю автоматически путем записи своих действий).
Макросы позволяют делать  много полезных вещей.
Но для этого надо  изучить язык программирования VBA (на котором они  и пишутся) .

Вот пример макроса, удаляющего ненужные междустрочные интервалы:
Код
Sub delPilcrows()
'Удаление пустых абзацев только в выделенном фрагменте или во всем документе
With Selection.Find
   .ClearFormatting
   .Replacement.ClearFormatting
   .Text = "[^13]{1;}"   'искомый знак абзаца (один или больше)
   .Replacement.Text = "^p"   'заменяем на один знак абзаца
   .Format = False
   .Forward = True
   If Selection.Type = wdSelectionIP Then
      .Wrap = wdFindContinue
   Else
      .Wrap = wdFindStop
   End If
   .Execute Replace:=wdReplaceAll
End With
Selection.Collapse direction:=wdCollapseStart   'снимаем выделение
End Sub
 
Админам можно сделать подфорум по макросам, полезная штука. А вам Гена нужно прочитать для начала книжку VBA для чайников
 
Макросы незаменимая штука в постоянной работе с документами, если Вы фанат выполнять рутинные и специфические действия в ручную, то макросы Вам ни к чему.......
 
А может будем выкладывать полезные макросы для Word здесь? очень полезная вещь эти макросы и не знаешь точно когда и какой пригодится.
Работаю по-старинке...
 
Здесь их не скачать потом даже в архиве, антивирусы замучают и MS Office заблокирует их сохранение и воспроизведение, если все это происходит в корпоративной сети (в большинстве случаев).

А может и нет  :lol:
 
Почему же, можно вручную вставить текст в Visual Basic. Постоянно использую макрос для обработки рисунков в тексте:

Цитата
Sub Рисунок()
'
' Рисунок Макрос
'
'
   Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
   Selection.Style = ActiveDocument.Styles("_Рисунок")
   x = Selection.InlineShapes(1).Height
   y = Selection.InlineShapes(1).Width
   Selection.InlineShapes(1).Height = x * 0.65
   Selection.InlineShapes(1).Width = y * 0.65
   Selection.InsertCaption Label:="Рис.", TitleAutoText:="InsertCaption1", _
       Title:="", Position:=wdCaptionPositionBelow, ExcludeLabel:=0
   Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
   Selection.Style = ActiveDocument.Styles("_Название объекта Рис")
   Selection.MoveLeft Unit:=wdCharacter, Count:=1
   Selection.MoveRight Unit:=wdCharacter, Count:=4
   Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
   Selection.TypeText Text:=" "
   Selection.EndKey Unit:=wdLine, Extend:=wdExtend
   Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
   Selection.MoveRight Unit:=wdCharacter, Count:=1
   Selection.TypeParagraph
   Selection.WholeStory
   Selection.Fields.Update
End Sub

Как работает:
Исходные условия: рисунок вставлен в документ, курсор расположен справа от рисунка.
Макрос выделяет рисунок слева от курсора, придает ему масштаб 65%, стиль "_Рисунок" (необходимо предварительно создать или скорректировать на название нужного стиля в тексте макроса), создает под рисунком название вида "Рис." (нужно предварительно создать или отредактировать на нужное в тексте макроса), придает названию стиль "_Название объекта Рис" (необходимо предварительно создать или скорректировать на название нужного стиля в тексте макроса), обновляет поля в документе.

Очень функционально, используется каждые 15 минут в работе...
Работать надо не 12 часов, а головой.
 
а я вот записал макрос для развертывания/свертывания вложенных документов.
иногда  очень выручает. не нужно  переходить открывать Вид - Структра
С уважением, Максим!
 
Цитата
а я вот записал макрос для развертывания/свертывания вложенных документов
Maxim, а можно в студию этот макрос? наверняка он кому-нибудь в будущем поможет.
 
Товарищи, запись макросов это только часть  общей темы..........
 
потом можно в отдельную тему перекинуть все макросы.
 
Хорошая книга для изучения макросов в Word:

Клименко Б. Н., Розенберr М. М. Мiсrоsоft Word: комфортная работа с помощью макросов. Самоучитель.  - СПб.: БХВ-Петербурr, 2006.
Если у вас появятся вопросы, пожалуйста, обращайтесь - будем думать вместе!
 
Последний макрос, который я применил в своей работе, помог мне быстро просмотреть все таблицы в большом документе. Макрос выполняет переход к следующей таблице.
После разового запуска этого макроса следующие таблицы можно найти с помощью стандартного сочетания клавиш Ctrl+Alt+Y:
Код
Sub GoToNextTable01()
'
    Set myRange = ActiveDocument.Words(1).GoToNext(What:=wdGoToPage)
    With Selection
        Set myRange = .GoToNext(What:=wdGoToTable)
        .MoveRight Unit:=wdWord, Extend:=wdExtend
    End With
End Sub


Будет справедливо отметить, что в Word 2010 появилась стандартная возможность поиска таблиц (подробнее см.:
viewtopic.php?f=44&t=1408&p=6560&sid=0bbfc30aff395cc8badd9078af5365ac#p6560).
Если у вас появятся вопросы, пожалуйста, обращайтесь - будем думать вместе!
 
А вот еще простенький макрос, который мы используем перед каждым закрытием документа. Был написан, дабы не отслеживать перекрестные ссылки, поврежденные после удаления объекта. Например: в тексте имеется ссылка на рисунок 1. Сам рисунок 1 в ходе работы был удален, но ссылка в тексте осталась и после обновления полей приняла вид "Ошибка! Источник ссылки не найден.". Макрос обновляет поля в документе и ищет в тексте вхождения "Ошибка!".

Цитата
Sub Ошибка()
'
' Ошибка Макрос
'
'
   Selection.WholeStory
   Selection.Fields.Update
   Selection.Find.ClearFormatting
   With Selection.Find
       .Text = "Ошибка!"
       .Replacement.Text = ""
       .Forward = True
       .Wrap = wdFindAsk
       .Format = False
       .MatchCase = True
       .MatchWholeWord = False
       .MatchWildcards = False
       .MatchSoundsLike = False
       .MatchAllWordForms = False
   End With
   Selection.Find.Execute
End Sub
Работать надо не 12 часов, а головой.
 
Цитата
А вот еще простенький макрос, который мы используем перед каждым закрытием документа. Был написан, дабы не отслеживать перекрестные ссылки, поврежденные после удаления объекта. Например: в тексте имеется ссылка на рисунок 1. Сам рисунок 1 в ходе работы был удален, но ссылка в тексте осталась и после обновления полей приняла вид "Ошибка! Источник ссылки не найден.". Макрос обновляет поля в документе и ищет в тексте вхождения "Ошибка!".

Очень полезный макрос! :)
Если у вас появятся вопросы, пожалуйста, обращайтесь - будем думать вместе!
 
Цитата
Очень полезный макрос! :)
Согласен!
Nadufka спасибо!
 
Реанимирую тему.
Вот мой любимый макрос, обновляющий все поля в документе, в том числе в колонтитулах. При монотонной работе с большими документами экономит усилия, особенно если сделать для него кнопку на панели инструментов.


Код
Sub RefreshAllFields()


Dim aStory As Range
Dim aField As Field
Dim myTOC As TableOfContents
For Each aStory In ActiveDocument.StoryRanges
  For Each aField In aStory.Fields
    aField.Update
  Next aField
Next aStory
For Each myTOC In ActiveDocument.TablesOfContents
   myTOC.Update
Next myTOC

Application.ScreenUpdating = False
ActiveDocument.PrintPreview
ActiveDocument.ClosePrintPreview
Application.ScreenUpdating = True

End Sub
Изменено: Odnako - 14.08.2014 17:45:46
 
Цитата
Odnako пишет:
Реанимирую тему.
Вот мой любимый макрос,
Спасибо!
 
Коллеги, давайте поделимся нароботками. Прошу в этой теме выкладывать "макросы", которые будут полезны техническим писателям. Спасибо!
 
Цитата
Гость написал:
пример макроса, удаляющего ненужные междустрочные интервалы
это можно делать и без макросов:

Специальные символы и подстановочные знаки в операциях поиска и замены Microsoft Word
Хозяинов
Другие 1
Другие 2

для Эксель
https://support.office.com/ru-ru/article/%D0%9F%D0%BE%D0%B8%D1%81%D0%BA-%D0%B8-%D0%B7%D0%B0%D0%BC%D0...

У Хозяинова был хороший пакет макросов "Перестройка", там много чего полезного, в том числе и обработка файла (поиск/замена) по списку – таблица с параметрами поиска/замены, составленная по определенным правилам
http://szanowa.narod.ru/perestrojka.html
http://www.banksofta.ru/downloadsoft/MTAxNw==/
пакет бесплатный, я его прикрутил к Word-2010, работает и радует...
 
Включение дополнительного шаблона с макросами
Если у вас появятся вопросы, пожалуйста, обращайтесь - будем думать вместе!
 
Несколько простых, но полезных макросов,  которые я применяю в работе

Макрос, применяющий английский язык для выделенного текста (я присвоил ему комбинацию клавиш Ctrl+Alt+E):
Код
Sub LangEngUS()
    'Язык текста - английский (Ctrl+Alt+E)
    Selection.LanguageID = wdEnglishUS
End Sub

Макрос, применяющий русский язык для выделенного текста (я присвоил ему комбинацию клавиш Ctrl+Alt+R):
Код
Sub LangRus()
    'Язык текста - русский (Ctrl+Alt+R)
    Selection.LanguageID = wdRussian
End Sub
Изменено: Alex_Gur - 12.07.2017 21:47:34
Если у вас появятся вопросы, пожалуйста, обращайтесь - будем думать вместе!
 
Макрос, вставляющий неформатированный текст ("PlainText") из буфера обмена (я присвоил ему комбинацию клавиш Ctrl+Alt+V):
Код
Sub PasteText()
    'Вставить только текст (Ctrl+Alt+V)
    Selection.PasteAndFormat (wdFormatPlainText)
End Sub

В этом случае для вставляемого текста автоматически применяется текущее форматирование.  
Если у вас появятся вопросы, пожалуйста, обращайтесь - будем думать вместе!
 
Макрос, позволяющий настроить папку для сохранения файлов Word по умолчанию (данный макрос нужно применить только один раз):
Код
Sub Folder_for_saving()    'Папка для сохранения файлов по умолчанию (одноразовый запуск)
    Options.DefaultFilePath(wdDocumentsPath) = _
        "D:\"
    'Вместо "D:\" можно указать любой удобный для пользователя путь.
End Sub
Если у вас появятся вопросы, пожалуйста, обращайтесь - будем думать вместе!
 
Макрос, позволяющий изменить настройку комбинаций горячих клавиш (данный макрос нужно применить только один раз; его можно повторять в случае сбоя указанных настроек):

Код
Sub HotKeys1()
    'Настройка горячих клавиш (одноразовый запуск)
    CustomizationContext = NormalTemplate
    KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyO, wdKeyControl), KeyCategory:= _
        wdKeyCategoryCommand, Command:="FileOpen"
    CustomizationContext = NormalTemplate
    KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyS, wdKeyControl), KeyCategory:= _
        wdKeyCategoryCommand, Command:="FileSave"
    CustomizationContext = NormalTemplate
    KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyW, wdKeyControl), KeyCategory:= _
        wdKeyCategoryCommand, Command:="FileClose"
    CustomizationContext = NormalTemplate
    KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyN, wdKeyControl), KeyCategory:= _
        wdKeyCategoryCommand, Command:="FileNew"
End Sub

Такой макрос полезен для версий Word, в которых по умолчанию установлены нестандартные комбинации горячих клавиш для наиболее часто используемых команд (например, Shift+F12 вместо Ctrl+S для сохранения текущего файла).
Приведенный макрос устанавливает для команды открытия файла комбинацию клавиш Ctrl+O, для сохранения файла - Ctrl+S, для закрытия текущего файла - Ctrl+W и для открытия нового файла - Ctrl+N.
При сбое настроек данный макрос позволяет сэкономить очень много времени и нервов.
Если у вас появятся вопросы, пожалуйста, обращайтесь - будем думать вместе!
Страницы: 1 2 След.
Читают тему