макросы
Подписаться на эту метку по RSS
- Выделение одного слова курсивом
- Выделение одного слова полужирным
- Удаление последнего символа в строке
- Объединение нескольких абзацев в один
- Выбор языка для проверки правописания
- Копирование фрагмента текста из одного документа в другой
- Сравнение слов в двух документах
- wdActiveEndPageNumber
- wdActiveEndAdjustedPageNumber
Таблицы: Добавление колонок слева и справа в таблицы со слитыми ячейками
VBA-addict, активный участник нашего форума, предложил свое решение по таблицам. Публикую это решение также и здесь. Вопросы можете задавать автору заметки как в комментариях, так и на форуме.
При попытке добавления в таблицу со слитыми ячейками колонок слева и справа часто возникают проблемы связанные с тем, что ячейкам колонки присваивается ширина соседних ячеек. Соответственно, если ширина у них разная - таблица разлетается в столбчатую диаграмму.
Не найдя полностью готового решения в сети скомпилировал свое. Работает на текущей таблице под курсором.
Для добавления слева и справа код несколько отличается, т.к. при добавлении слева всегда ссылка идет на первую ячейку строки, которая есть всегда, а справа - на последнюю, номер которой может отличаться из-за слитых ячеек.
Sub AddCol2LeftMergedCTable() If Selection.Range.Information(wdWithInTable) = False Then Exit Sub With Selection.Tables(1) TblRowsNumber = .Rows.Count NewColumnWidth = InputBox$("Enter the width in millimeters for the Column to add", _ "Add column to the LEFT for a table with merged cells", _ NewColumnWidth) If Val(NewColumnWidth) = 0 Then Exit Sub For i = 1 To TblRowsNumber .Range.Cells.Add BeforeCell:=.Cell(i, 1) .Cell(i, 1).Width = MillimetersToPoints(NewColumnWidth) Next End With Selection.MoveDown End Sub
Sub AddCol2RightMergedCTable() If Selection.Range.Information(wdWithInTable) = False Then Exit Sub With Selection.Tables(1) TblRowsNumber = .Rows.Count NewColumnWidth = InputBox$("Enter the Width in millimeters" & vbCrLf & "for the Column to add", _ "Add column to the RIGHT for a table with merged cells", _ NewColumnWidth) If Val(NewColumnWidth) = 0 Then Exit Sub For i = 1 To TblRowsNumber LastColNum = .Rows(i).Cells.Count .Rows(i).Cells(LastColNum).Select Selection.MoveRight Selection.InsertCells ShiftCells:=wdInsertCellsShiftRight 'добавляем ячейку' Selection.Cells.Width = NewColumnWidth Next End With Selection.MoveDown End Sub
Как расположить таблицу по центру страницы
Андрей Куличев, автор Инструкции по оформлению текстовой документации, предлагает простой способ расположить таблицу прямо по центру страницы по вертикали.
Андрей пишет:
На форуме была тема, где спрашивали, как расположить таблицу по центру страницы. Я даже выкладывал там макрос для отдельно взятого документа (шахматки).
Но вот недавно, разбираясь с документаторами с необычным поведением таблицы обнаружил следующую вещь, которая позволяет возможностями ворда расположить таблицы по центру страницы по вертикали. Для этого в Word 2003 нужно проделать следующие действия:
Удаление пустых абзацев
Дмитрий спрашивает:
В этом случае вы можете воспользоваться следующим макросом:
Обработка графики в Microsoft Word средствами VBA
Метки: inlineshape | shape | графика | макросы | шаблоны
Дата: 18/04/2010 16:34:57
Марк Розенберг, один из авторов рекомендуемой мною книги
В своей статье Марк приводит исчерпывающие сведения о графических объектах Shape и InlineShape. Кроме того, к статье прилагаются образцы учебных макросов и шаблон EachShape, который позволяет выделить все графические объекты в активном документе и вывести информацию о каждом из них.
Рекомендую ознакомиться со статьей всем, кто работает с графикой в редакторе Word и хотел бы узнать об особенностях и возможностях программирования на VBA для графических объектов.
О форматировании отдельных символов
Юрий интересуется:
Существует ли способ переключить начертание, чтобы те буквы (не слова), что были жирными, стали обычными, а обычные - жирными?
Юрий, вот примеры макросов для ваших целей, подсказанные
Проверка орфографии и сохранение по запросу
Метки: AutoClose | FileSave | автосохранение | макросы | орфография
Дата: 24/03/2010 12:51:00
Максим задал вопрос:
Можно ли сделать так, чтобы word 2007 перед тем, как я собрался сохранить или выйти из документа, автоматически меня спрашивал - проверить ли орфографию и чтобы после проверки орфографии еще спрашивал - сохранять документ или нет?
Вот пример мини-программы (состоит из трех отдельных макросов). Подключите их к шаблону Normal.dotx и при сохранении, или при закрытии документа будет выводиться запрос.
Вставка документа с книжной ориентацией в документ с альбомной ориентацией
Метки: макросы | разрывы
Дата: 23/02/2010 10:55:08
Сергей интересуется:
Второй документ - основной. В нем имеется несколько страниц с разлиным форматированием листа, т. е. есть листы книжной раскладки, есть листы альбомной раскладки. И начинается 2-ой документ как раз с альбомного листа.
Вопрос: Как мне вставить лист из 1го документа во второй, таким образом чтобы при вставке этот лист не изменял автоматически свою ориентацию на альбомную?
Сергей, решить эту проблему можно с помощью макроса.
Вам нужно открыть ваш основной документ (2-й документ), запустить макрос, выбрать нужный файл и он будет вставлен в качестве 1-й страницы книжного формата вашего основного документа.
Вот код макроса:
Определяем тип графического объекта и его размеры
Заметка навеяна поиском решения (см.
В итоге родился следующий макрос, результат работы которого выглядит как простое сообщение:
Вставка изображений из указанной папки для Word 2007
Метки: word 2007 | макросы | полезности | рисунки | шаблоны
Дата: 15/01/2010 16:18:31
Если вам необходимо часто вставлять изображения в документ из одной и той же папки, то вам может оказаться полезной предлагаемая надстройка для Word 2007. После подключения надстройки на вкладке «Вставка» появится группа «Изображений из папки»:
Как начать новый раздел с нечетной страницы
Метки: макросы | поиск и замена | разделы | разрывы | стили | форматирование
Дата: 10/01/2010 14:54:26
К заметке "Поиск заголовков и вставка разрывов страниц перед ними" некоторые пользователи оставили абсолютно справедливые комментарии, что при выборе определенного стиля, например, "Заголовок 1", можно в его настройках определить вставку разрыва страницы перед текстом, оформленным данным стилем. И нечего "огород городить" с помощью макроса.
Полностью согласен.
Но мне поступил новый вопрос на почти аналогичную тему от пользователя Валерия. Он спрашивал:
Читать полностью
Преобразование сносок в обычный текст
Метки: макросы | сноски | форматирование
Дата: 03/01/2010 12:32:53
На форуме был задан вопрос о возможности преобразования сносок в обычный текст (с небольшим форматированием). Я нашел решение и предлагаю его в виде макроса.
Изменение размера выделенного рисунка
Метки: макросы | рисунки | форматирование
Дата: 29/12/2009 06:56:04
Дмитрий спрашивает:
Дмитрий, на эту тему уже была опубликована заметка на сайте: Макрос массового уменьшения размеров всех рисунков. В ней описан макрос для изменения размеров ВСЕХ рисунков.
Для изменения размера одного рисунка следует немного подкорректировать макрос с тем, чтобы изменялся лишь выделенный рисунок. Вот примерное решение:
Псевдокириллица: макрос замены латиницы на кириллицу
Метки: макросы | поиск и замена
Дата: 27/12/2009 19:52:30
Евгения спрашивает:
Я - редактор, и в присланном мне автором многостраничном - более 11-ти авторских листов - файле практически в каждом слове при наборе были употреблены кириллица и латиница. Выбирать ошибки по одной очень долго, и велика вероятность что-то пропустить. Возможно ли как-то автоматизировать этот процесс?
Обновлено (спасибо комментатору):
Евгения, если я правильно понял, вам нужно заменить латинские буквы на кирилические? То есть, если в тексте встречается буква латинская "a", то ее нужно заменить на русскую "а", так? В этом случае, полагаю, что вам может подойти вот этот макрос:
Как автоматически увеличивать номер договора при каждом открытии документа
Метки: AutoOpen | автоматизация | макросы | нумерация | переменные | поля
Дата: 30/09/2009 08:08:55
Иван задал вопрос:
Существует договор в формате word 2003. У него есть номер. Как можно сделать, чтобы при новом открытии данного документа у него увеличивался номер на один?
Макрос пакетной замены от Александра Витера
По просьбам читателей сайта
Александр предлагает скачать (ниже) бета-версию его разработки кто заинтересован в подобном решении. Вот, что он предлагает.
Поиск и замена текста: макросы от Марка Розенберга
Метки: макросы | поиск и замена | сайты
Дата: 18/09/2009 08:15:12
Сегодня я хочу представить вашему вниманию сайт Марка Розенберга, одного из авторов книги Microsoft Word: комфортная работа с помощью макросов.
Марк разработал несколько полезных программ (макросов) для поиска и замены текста в документах редактора Word. Операции поиска и замены текста самые востребованные в редакторе и очень популярны среди пользователей редактора. Об этом свидетельствуют многочисленные комментарии к тематическим статьям, опубликованным на моем сайте.
Итак, на сайте
1.
2.
А на странице
Макрос для удаления другого макроса
Николай задал вопрос:
В файле Стандартный.doc с образцом текста есть макрос AutoOpen, предлагающий сохранить файл с другим именем. Существует ли возможность автоматического программного удаления макроса при сохранении файла с другим именем? Версия - Word XP.
Автоматическое сохранение документа при его закрытии
Вопрос от Михаила:
Как сделать так, чтобы при закрытии документа Word не выдавал окно с запросом на его сохранение и автоматически сохранял его всегда?
Михаил, если документ изменялся, то сообщение о необходимости сохранения изменений будет выводится всегда. Но вы можете воспользоваться следующим макросом:
Поиск и применение стилей к абзацам документа
Метки: макросы | стили | форматирование
Дата: 05/09/2009 05:33:37
Вопрос от Андрея:
Между "@" и "" в начале абзацев (не всех) расставлены стили, которые необходимо применить к абзацам, а саму отметку стереть. Вот, например: @MIH_HEAD_F АУДИТОРСКОЕ ЗАКЛЮЧЕНИЕ. После работы макроса получаем:"АУДИТОРСКОЕ ЗАКЛЮЧЕНИЕ" стилем MIH_HEAD_F. При этом в тексте могут встречаться и простые @ (например e-mail) без знака. Все возможные стили уже в ворде.
Я предложил следующий пример макроса:
Массовое форматирование документов
Метки: макросы | поиск и замена | стили | форматирование | шаблоны
Дата: 28/08/2009 21:08:03
Время от времени пользователям редактора Word требуется изменить что-то (текст, форматирование) сразу в нескольких документах, без необходимости работы с каждым документом по отдельности. В качестве примера могу привести Макрос пакетной замены, с помощью которого возможно искать и менять какой-то единый текст во многих документах одновременно.
И вот недавно ко мне обратился Дмитрий с просьбой помочь ему в аналогичной ситуации. Он спрашивал:
Дано очень много файлов формата rtf и doc. Необходимо их отформатировать разом, не открывая каждый в отдельности, а именно: изменить во всех размер шрифта на 12, поставить абзацы 1.25, сделать times new roman, изменить поля, покрасить текст в черный, интервал одинарный. Помогите, пожалуйста!
Я предложил Дмитрию воспользоваться следующим макросом (см. код ниже). Но затем подумал, что пользователям наверное было бы удобнее использовать специальную форму для выбора необходимых параметров форматирования текста, нежели копаться в коде макроса и менять эти параметры вручную.
Поиск слов и сохранение их в отдельном документе
Валерий спрашивает:
Как из текста в Word 2007 выбрать все слова на определенную букву, расположить их в алфавитном порядке и сохранить их в отдельном файле?
Валерий, вот пример макроса для ваших целей, подсказанный Александром Витером.
Задать обтекание текстом для всех рисунков в документе
Метки: макросы | рисунки
Дата: 18/08/2009 07:57:56
Вопрос от Макса:
Нужно в документе WORD сделать обтекание текстом ВСЕХ рисунков. Как это сделать? По одному делается без проблем, но их очень много, а всех вместе никак...
Попробуйте такой макрос (на копии документа - на всякий случай):
Sub wrapImages() 'Обтекание текстом для всех типов графических объектов Dim pic As Object On Error Resume Next For Each pic In ActiveDocument.Content.InlineShapes If pic.Type = wdInlineShapePicture Then pic.InlineShapes(1).ConvertToShape pic.ShapeRange.WrapFormat.Type = wdWrapTight End If Next For Each pic In ActiveDocument.Content.ShapeRange If pic.Type = msoPicture Then pic.ShapeRange.WrapFormat.Type = wdWrapSquare End If Next End Sub
Отправка документа на печать на разные сетевые принтеры
Метки: макросы | печать
Дата: 17/08/2009 08:07:58
Поступил интересный вопрос от Павла. Он спрашивает:
У меня подключено несколько сетевых принтеров. Можно ли с помощью разных кнопок-макросов печатать на разные предопределенные принтера, а не только на принтер по умолчанию?
Мой соавтор Александр Витер предложил воспользоваться методом ActivePrinter, и я набросал небольшой макрос.
Пусть, например, у вас есть сетевой принтер по имени "Полное_Сетевое_Имя_Принтера" (смотрите наименования в настройках печати). Тогда макрос будет следующий:
Как переместить автофигуру из текста документа в колонтитулы
Метки: автофигура | колонтитулы | макросы | рисунки
Дата: 14/08/2009 08:12:05
Вопрос от Светланы:
На странице имеется объект, например shape1. Его необходимо перенести в колонтитулы этой же страницы. Каким образом это возможно сделать на vba?
Светлана, если у вас в документе действительно содержится объект shape (автофигура), то вот пример макроса, который занесет эту фигуру в верхний колонтитул:
Количество рисунков в документе: макрос
Вопрос от пользователя Bata:
Как указать кол-во используемых в тексте рисунков? Рисунки пронумерованы как Caption (SEQ Рисунок).
Я могу вам предложить следующий макрос для вставки в документ текста с указанием количества рисунков в текущем документе.
Как удалить лишние пробелы в тексте без использования диалогового окна “Найти и заменить”
Метки: макросы | поиск и замена | форматирование
Дата: 09/08/2009 09:30:18
Вопрос от Сергея:
Необходимо реализовать замену нескольких пробелов в тексте на один, при этом не использовать диалог "Найти и заменить" (даже программно), то есть реализовать надо макросом с простым перебором в цикле. Помогите, пожалуйста.
Сергей, вот пример такого макроса, предложенного Александром Витером:
Макрос для подсчета частоты упоминаемых слов
Андрей задал вопрос:
Мой начальник дал такое задание: нужно определить в разных документах частоту упоминаемых слов. Причем не отдельно выбранного слова, а именно сколько раз какое слово встречается. Если дадите готовое решение, буду очень благодарен.
Андрей, у меня есть нужный вам макрос с функцией. Но писал его не я, а по моей просьбе иноязычный товарищ (дело было в августе прошлого года). Вставляет в конце каждого упоминаемого слова в скобках количество его вхождений в тексте.
Подсчет количества некоторых слов в документе
Если вам нужно определить количество вхождений в документ некоторого слова, то здесь может помочь следующий макрос (навеяно заметкой Грега Макси
Вы выделяете некое слово и запускаете макрос, который после подсчета выдает сообщение о количестве найденных слов:
Как вставить поле номера страницы в надпись
Светлана спрашивает:
Имеется надпись. Как в надпись вставить поле, в котором отображался бы номер текущей страницы. Все это на языве VBA.
Светлана, вот пример макроса, который предложил
Sub InsertFieldToCaption() With Selection.ShapeRange(1).TextFrame .TextRange.Fields.Add .TextRange, wdFieldPage, , True End With End Sub
Надпись при этом должна быть выбрана.
Как разместить текст горизонтально на листе с альбомной ориентацией
Метки: макросы | параметры страницы
Дата: 24/05/2009 16:43:46
Андрей спрашивает:
Подскажите пожалуйста, как в альбомной ориентации страницы разместить текст вертикально (как в книжной)? Word 2007.
Андрей, это можно сделать с помощью простого макроса. Выделяете текст на странице с альбомной ориентацией и применяете следующий макрос:
Sub rotating() Selection.Orientation = wdTextOrientationVerticalFarEast End Sub
Если вы не знаете, как подключить к документу и применить эти макросы, изучите следующие заметки с сайта:
Вставка скопированного текста в предопределенном формате
Метки: макросы | стили | форматирование
Дата: 17/05/2009 16:38:21
Сергей задал вопрос:
Довольно часто при работе с текстом нужно вставлять в него цитаты из других документов и было бы удобно, если бы эти цитаты были видны там, куда вставляешь. Т.е., при вставке необходимо, чтобы новый текст вставлялся уже в другом, заранее определенном форматировании (курсивом, цветом и пр.) в отличие от основного текста.
Если бы Вы смогли мне помочь в этом? Кстати, я думаю, что такая особенность работы с текстом была бы необходима многим.
Самый лучший способ - использовать специальные стили для вашего фрагмента текста. Вставляете текст и применяете к нему соответствующий стиль. Это не сложно. Но чтобы вставляемый текст автоматически преобразовывался в этот стиль - так не получится.
Либо, есть еще решение использовать макрос, который бы брал текст из буфера обмена, вставлял его и уже потом применял к вставленному тексту нужное форматирование. Для макроса нужно создать кнопку на панели инструментов и после того, как скопировали текст, следует установить курсор в нужное вам место документа и нажать эту кнопку.
Макрос печати копий документа в один клик
Александр интересуется:
Часто необходимо распечатывать две копии одного документа. Приходится использовать меню «Файл-печать». Помогите создать макрос позволяющий выполнять это в один клик. Необходимо учесть возможность появления предупреждения о строках, расположенных вне области печати.
Александр, попробуйте такой макрос:
Sub printDocCopy2() ActiveDocument.PrintOut copies:=2 End Sub
Создайте для этого макроса кнопку на панели инструментов и пользуйтесь. В коде можно изменить количество копий, указав нужное вам число.
Что касается предупреждений, то это внутренние ресурсы редактора и при программировании их учитывать не обязательно. К тому же, поля могут отличаться от минимальных для редактора Word и используемого принтера.
Автоматическая расстановка переносов
Метки: AutoOpen | автоматизация | макросы | переносы
Дата: 23/04/2009 10:43:16
Галина интересуется:
Подскажите, как настроить word, чтобы при открытии любого документа текст был с переносами и чтобы не приходилось каждый раз выбирать сервис - язык - расстановка переносов?
Галина, полагаю, что у вас по каким-то причинам простая настройка (то есть установка принудительного переноса) действует только на конкретный документ и не может быть настроена по умолчанию для всех документов. Но можно обойти это, если воспользоваться следующим макросом:
Поиск заголовков и вставка разрывов страниц перед ними
Метки: макросы | параметры страницы | поиск и замена | разделы | разрывы | стили
Дата: 23/04/2009 10:19:09
Алексей спрашивает:
Столкнулся со след. проблемой. Имеется документ на 25 000 стр. Этот документ получился в результате выгрузки из БД.
Как в этом документе сделать так чтобы определенные заголовки начинались с новой страницы, а не по окончании пред. текста. То есть, этот загловок начинается с середины, а мне нужно, чтобы с новой страницы.
Для начала вы должны определить, каким стилем у вас оформлены заголовки в тексте. Обычно это Заголовок 1, Заголовок 2 или другой стиль.
Как назначить свою иконку для макроса в Word 2007
Метки: word 2007 | иконки | макросы | панель быстрого доступа
Дата: 20/03/2009 21:36:22
Несколько месяцев назад я получил письмо от пользователя, в котором меня спрашивали о возможности назначить для кнопки макроса (выведенного на панель быстрого доступа в редакторе Word 2007) своей иконки.
Как известно, в прежних версиях редактора можно было назначить для любой команды на панели инструментов свою собственную картинку. Можно было отредактировать иконку на кнопке или нарисовать собственную с помощью окна Редактор кнопок:
В редакторе Word 2007 этой возможности нет.
Однако, на прошлой неделе я просматривал сайт Грэга Макси (Greg Maxey) и обнаружил у него
Мне показалось интересной его статья и я повторил эксперимент.
Все удалось, но многое пришлось додумывать самостоятельно. В этой заметке я расскажу своими словами суть решения и покажу, как можно назначить свою иконку для собственных макросов.
Вставка текста с помощью кнопки
Метки: закладки | макросы | элементы управления
Дата: 07/03/2009 11:42:07
Вячеслав спрашивает:
Как создать кнопку, при нажатии на которую её название добавлялось бы в текстовую строку? Кнопок на странице будет много и с разными названиями.
Для начала необходимо создать
Предположим, в начале документа у вас есть или будет кнопка, а двумя строками ниже вы хотите вставить ее название:
Макрос замены м2 и м3 на обозначения в верхнем регистре
Метки: макросы | поиск и замена | регистр
Дата: 15/02/2009 08:38:17
Алексей спрашивает:
Как сделать автозамену м2 и м3 на обозначения их в верхнем регистре? Средствами автозамены это не получается сделать. А нажимать каждый раз кнопочку верхнего регистра не очень удобно.
Алексей, автозаменой не получиться сделать это, действительно. Используйте приведенный ниже макрос. Текст документа предварительно выделять не нужно.
Создайте для этого макроса кнопку на панели инструментов или назначьте сочетание клавиш:
Разнос данных по строкам и столбцам таблицы
Игорь спрашивает:
Есть ряд слов:
собака кошка мышка кенгуру
цыпленок хомяк мишка птичка.
Как мне их добавить в таблицу, состоящую из 4 столбцов и 2 строк, чтобы каждое слово находилось в отдельной ячейке, не применяя к каждому слову операцию вырезать-вставить. Эти слова у меня так и находятся в столбик по 4 слова в строчку в вордовском документе (так же, как я и написал в примере), а чуть ниже есть таблица пустая, вот туда мне и надо их вставить.
Игорь, попробуйте вот такой макрос (ниже). Выделите ваши слова и запустите макрос:
Операции округления для выделенного числа
Павел задал вопрос:
Как выделенное число в ворде можно умножить на 1,5 и округлить до ближайшего кратного 50-ти? Например: имеем число 44560, после умножения на 1,5 получаем 66840, а нам его надо округлить до 66850 и записать вместо изначального числа.
Этот вопрос был опубликован в рассылке и два специалиста ответили Павлу.
Александр предложил такой макрос:
Макрос извлечения адресов e-mail и размещение их в новом документе
Максим интересуется:
Имею большое количество документов с адресами e-mail. Их-то мне и нужно собрать воедино, в один столбец, а еще лучше сразу в ексель.
Для решения этой задачи воспользуйтесь следующим макросом. Он извлекает все адреса e-mail из текста оригинала документа и помещает их столбиком в новый документ.
Разбиение списка на части
Метки: макросы | нумерация | списки | форматирование
Дата: 13/01/2009 20:23:39
Галина задала вопрос:
Есть список вопросов. Для разных дисциплин разное количество - от 30 до 60-ти. Их надо разделить пополам и соединить потом через один, то есть, при 60-ти вопросах нужно их объединить так: 1й и 31й, 2й и 32й... 30й и 60й. Просто вырезать и вставлять или копировать и вставлять - путаница, смещается нумерация, забываешь, какие вставила, какие нет. Можно как-то решить эту проблему?
Можно воспользоваться следующим макросом для разбиения списка на две части. Он нормально работает и с круглыми цифрами (50, 60) и четными некруглыми (52, 64). Для нечетных он оставляет в самом конце один повторный номер/вопрос.
Выделите ваш список и примените макрос:
Как определить стиль абзаца, в котором находится курсор ввода
Метки: макросы | позиция курсора | стили
Дата: 26/12/2008 13:09:01
Вопрос от Андрея:
Сейчас пишу макрос следующего содержания - необходимо поставить курсор на любой из абзацев и получить полную информацию о стиле документа. Информацию о параметрах шрифта уже выбрал, пусть и не всю, но основую. Встал банальный вопрос - как из макроса получить имя стиля абзаца на котором в данный момент находится курсор?
Получить имя текущего стиля слова, на котором находится курсор ввода, можно так:
MsgBox Selection.Style
Но можно и не использовать макрос - достаточно открыть область задач Показать форматирование («Shift+F1»), где и будет отображена вся информация о текущем стиле.
Как определить номер параграфа, в котором найден фрагмент текста
Метки: макросы | нумерация | позиция курсора
Дата: 25/12/2008 13:52:24
Анатолий задал вопрос:
Как определить номер (pos) параграфа (Paragraphs), в котором найден нужный фрагмент, с тем, чтобы я смог его в дальнейшем использовать?
Например, можно определить текущую позицию курсора в сантиметрах с помощью следующего макроса:
Читать полностью
Полезные макросы для Word
Евгений Родыгин прислал ссылку на страничку с макросами для редактора Word:
Алексей Гончаров, автор страницы, предлагает использовать в своей деятельности следующие макросы:
Удаление лишних абзацев: очередной макрос
Метки: лишние абзацы | макросы | форматирование
Дата: 23/12/2008 12:19:11
Владимир спрашивает:
Подскажите, что делать в такой ситуации. К примеру, копируем из какого-то другого приложения текст в Word. Зачастую потом приходится с помощью клавиши Delete (иногда в сочетании с пробелом) подтягивать текст, чтобы он нахоился как надо, а не обрывками на каждой строчке. Эту рутичнную работу в принципе можно автоматизировать с помощью Замены. Указать искать знак Конец абзаца и заменить на пустоту (подтянуть и пр.), но тогда в этом случае подтянутся не только строки. но и абзацы. Но абзацы должны оставаться абзацами.
Вот код макроса, который объединяет разорванные строки абзацев, не касаясь нормальных абзацев. Ничего выделять не нужно. Макрос сам определит разрывы в абзацах или отдельные абзацы (с точкой в конце), и от этого будет исполняться нужная часть кода.
Поиск слова и удаление строк над ним
Метки: макросы | поиск и замена | форматирование
Дата: 19/12/2008 14:39:26
Вопрос от Алексея:
Мне нужен макрос, который выполнял бы поиск ключевого слова (например "Подпись") и отсчитывал вверх от этого слова 8 строк, и вот эти отсчитанные 8 строк удалял.
Попробуйте следующий макрос:
Запрет обновления полей с разорванными связями
Метки: макросы | поля | связи
Дата: 17/12/2008 12:25:56
Сергей поинтересовался:
Прошу Вас рассказать, как в WORD 2003 запретить обновление полей во всем документе (включая колонтитулы) при печати этого документа.
Чтобы текстовые поля документа не обновлялись при печати, снимите флажок с опции "Обновлять поля" и "Обновлять связи" из вкладки Печать диалогового окна Параметры (меню Сервис - команда Параметры).
Как удалить макросы из документа
Чтобы удалить ставшие ненужными макросы из документа (шаблона), необходимо выполнить следующие действия.
Формулы в разных версиях редактора Word: совет читателя
Метки: word 2007 | макросы | формулы
Дата: 12/12/2008 12:46:32
Совет от Головинова Евгения:
Недавно столкнулся с проблемой редактирования формул в разных версиях Word. Например, у меня на компьютере стоит Word 2007, мне в нём удобнее работать. У моего научного руководителя установлен редактор Word 2003. Работа техническая. Word ни я, ни он переустанавливать не хотим. Ему надо вносить изменения в формулы. Но, как известно, формулы в 2007 принципиально отличаются от Word 2003.
Эту проблему я решил следующим образом.
В своем редакторе Word 2007 я создаю формулы в программе Microsoft Equation 3 и сохраняю документ в формате Word 2003. Кроме того, для себя я разместил на панели быстрого доступа кнопку со следующим макросом:
Sub Equation() ' Вызов редактора формул Equation 3 Selection.InlineShapes.AddOLEObject ClassType:="Equation.3", FileName:="", _ LinkToFile:=False, DisplayAsIcon:=False End Sub
Этот макрос быстро вызывает редактор формул Microsoft Equation. При этом не надо заходить каждый раз в Вставка/Объект/Equation; просто нажимаешь кнопку и всё.
Если у кого есть другое решение этой проблемы, с удовольствием воспользуюсь им!
Как выделить все объекты Shapes на определенной странице
Метки: макросы | рисунки
Дата: 11/12/2008 12:37:22
Борис интересуется:
Как программно выделить все обьекты Shapes, например, прямоугольники, находящиеся на определённой странице документа Word?
Борис, вот пример макроса, выделяет все графические объекты shapes во всем документе:
Поиск и подсвечивание одинаковых слов в документе
Метки: word xp | макросы | поиск и замена | форматирование
Дата: 09/12/2008 12:27:57
Вопрос от Александра:
Не могли бы вы подсказать. можно ли в Word XP сделать так, чтобы при двойном клике на любом слове в тексте, слова, похожие на него, высвечивались бы по всему документу. А потом, чтобы при очередном двойном клике все обратно бы гасло? Мне приходится достаточно много работать с текстом, править стилистику и подобной функции очень очень не хватает. Приходится постоянно лезть в поиск, менять его настройки и каждый раз прописывать нужное слово, бегая затем по всему документу. Очень неудобно...
Александр, увы, по двойному клику можно выделить только текущее слово, но никак не совершить дополнительные действия с текстом.
Возможно, вам подойдет следующий макрос, позволяющий искать в тексте документа выделенное слово и подсвечивать найденные вхождения текущим цветом. То есть, вы выделяете интересующее вас слово и запускаете макрос (например, с помощью кнопки на панели инструментов). Макрос раскрасит текущим цветом все найденные слова.
Вставка текста с полями в нижний колонтитул
Метки: колонтитулы | макросы | поля
Дата: 08/12/2008 12:30:00
Максим спрашивает:
Подскажите, пожалуйста, как должен выглядеть макрос, вставляющий в документ (Word-2003) нижний колонтитул примерно такого содержания - "Это мой документ, стр. ## из №№"? У меня не получается вставить одновременно и текст, и два поля, получается либо одно поле, либо текст.
Следующий макрос может решить эту задачу:
Принудительное разбиение строки с помощью макроса
Метки: макросы | форматирование
Дата: 05/12/2008 11:56:43
Вопрос от Gojah:
Как создать принудительный разрыв строки (максимум 15 символов на строке) автоматически для всего текста?
Например, строку 111111111111111111 преобразовать в:
111
111
...
111
Для этой цели можно воспользоватся следующим макросом:
Выделение видимой части экрана
Алексей задал вопрос:
Скажите пожалуйста, как в Word получить Range документа, отображаемого в данный момент на экране?
Недавно я сам столкнулся с необходимостью выделить только видимую часть текста на экране и путем долгих тестов нашел решение (как оказалось, простейшее):
Sub selWindow() 'выделение видимой части экрана Selection.MoveUp wdWindow, 1, wdMove Selection.MoveDown wdWindow, 1, wdExtend End Sub
Сортировка данных в строке по алфавиту для Word 2007
Метки: word 2007 | макросы | сортировка
Дата: 03/12/2008 11:30:49
Андрей интересуется:
Подскажите пожалуйста, как сделать сортировку в Word 2007 по алфавиту значений, находящихся в строчке? Например, вот такие значения в строчке - 63, 53а, 67, 73в, 75а, 69, 69б, 79в, 75б, 73г, 69в и т.д.
Это можно сделать с помощью следующего макроса (подсказал Graham Mayor). Выделите строчку с вашими номерами и примените макрос:
Замена текста в скобках на пробел
Метки: макросы | поиск и замена
Дата: 01/12/2008 11:50:09
Петр спрашивает:
Помогите, как заменить в Word 2003 много различных предложений, которые находятся внутри скобок, на пробел? Например: а- (перед гласными ан-; греч. a-, an-); или Аарона симптом (Ch. D. Aaron, 1866--1951, амер. врач). Вот то, что внути скобок и надо заменить на пробел.
Такую задачу можно решить вручную с использованием диалогового окна "Найти и заменить", либо посредством макроса (код ниже).
Как программно определить имя текущего пользователя
Абдусаид спрашивает:
У меня есть два вопроса:
1.Как можно узнать программно имя текущего пользователя?
2. Как можно программно запускать MS Outlook и отправлять письмо?
Что касается первого вопроса, то для определения имени текущего пользователя можно использовать следующий макрос:
Sub nameUser() Dim myPath As String myPath = Environ$("username") MsgBox myPath End Sub
А ответ на второй вопрос изложен в переводной статье
Как сохранить в переменной имя выбранной директории
Андрей интересуется:
Здравствуйте! Будьте добры, подскажите как можно вызвать с помощью макроса для Ворда диалоговое окно со списком директорий. Затем выбрать требуемую директорию и сохранить этот путь в переменной (т.е. вернуть значение переменной).
Попробуйте вот такой макрос. Он выводит полный путь к директории, выбранной из диалога.
Удаление конечных знаков абзацев из ячеек таблиц
Метки: макросы | таблицы | форматирование
Дата: 17/11/2008 09:51:12
Юрий интересуется:
Как во всем документе удалить лишние концевые знаки абзацев в конце ячеек таблиц? Это именно знаки абзацев (^13) перед маркером конца ячейки. Вариант искать "(*^13)@", заменить на "\1" не работает в ячейках...
Для этих целей следует использовать следующий макрос. Работает для всех таблиц в документе и удаляет знаки абзацев только в конце текста в ячейке:
Sub TablesRemovePilcrons() Dim oTbl As Table Dim oCll As Cell For Each oTbl In ActiveDocument.Tables For Each oCll In oTbl.Range.Cells While oCll.Range.Characters.Last.Previous = Chr(13) oCll.Range.Characters.Last.Previous = "" Wend Next Next
Использование макроса для вывода части текста поля
Метки: закладки | макросы | поля | шаблоны
Дата: 14/11/2008 21:10:24
Игорь спрашивает:
У меня есть некий шаблон договора. В нем, среди прочего, есть поле ввода ФАМИЛИИ ИМЕНИ И ОТЧЕСТВА. Мне нужно, чтобы после ввода полного ФИО, в конце договора отображалась только ФАМИЛИЯ и ИНИЦИАЛЫ. Решаемо ли это?
Игорь, да это возможно.
Вам следует открыть ваш шаблон договора для редактирования, затем открыть редактор Visual Basic («Alt+F11») и вставить в модуль шаблона вот этот макрос:
Ярлык для запуска в Word 2007 интерфейса публикации в блог
Метки: word 2007 | ключи запуска | макросы
Дата: 10/11/2008 15:26:09
Outlook Blogger задал вопрос:
Как сделать для Word 2007 ярлык, чтобы запускался сразу интерфейс Опубликовать/Блог? А то приходится открывать сначала весь Word, потом заходить в это меню..
Специальных ключей для запуска редактора с интерфейсом для написания текста для блога я не нашел. Но наскоро сделал автоматическую запись макроса, который собственно и открывает это окно. Вот, что получилось:
Преобразование всех таблиц документа в текст
Метки: макросы | таблицы | форматирование
Дата: 27/10/2008 11:15:43
Максим спрашивает:
Преобразовать одну таблицу в текст — дело нехитрое. Но у меня очень часто возникает задача преобразовать ВСЕ таблицы документа в текст. А их может быть десятки и сотни (это типичная ситуация, когда открываешь веб-страницу.) Есть ли какое-нибудь решение?
Следующий макрос может решить эту проблему.
Шаблон для работы с закладками
Метки: закладки | макросы | полезности | шаблоны
Дата: 24/10/2008 11:07:43
В начале этого года я опубликовал заметку
Сегодня я хочу предложить вашему вниманию другое (более элегантное) решение - в виде панели инструментов со списком закладок в текущем документе и часто вызываемых команд для управления закладками.
Вот как это выглядит:
Как отправить письмо из Word при помощи VBA
Метки: макросы | настройка word | почта
Дата: 23/10/2008 11:30:05
1. Использование метода Routing Slip
Самый простой способ отправки документа по электронной почте - это использование встроенного в Word метода RoutingSlip. Используя его, можно отправлять сообщение как одному, так и нескольким адресатам, задавать заголовок и определять отправлять ли сообщение всем адресатам одновременно или пересылать сообщение по цепочке от одного к другому.
Преимущества использования метода RoutingSlip:
Как выделить текст от начала документа до искомого фрагмента текста
Анатолий спрашивает:
Как программно выделить часть текста от начала документа до найденного фрагмента? Он может быть где угодно.
Вот образец рабочего макроса. При запуске макроса происходит поиск в документе определенного текста (в коде это строка "Искомый текст") и выделяет весь текст от найденного фрагмента до начала документа. Сам искомый фрагмент в выделение не входит.
Быстрое создание нового документа на основе шаблона
Метки: автоматизация | макросы | шаблоны
Дата: 13/10/2008 12:30:29
Если вы часто создаете документы, основанные на одном конкретном шаблоне, то вам пригодится следующий совет.
Удаление пробела у выделенного слова
Если вы часто редактируете тексты, то вероятно замечали, что при двойном щелчке на слове выделяется не только само слово, но и стоящий за ним пробел справа (если только после слова не идет знак пунктуации):
Такое поведение редактора нежелательно, если вы применяете к выделенному слову полужирное начертание (ну, или другое форматирование). Ведь в этом случае когда вы снимите выделение и продолжите ввод текст после данного слова, следующий текст также будет иметь полужирное начертание.
Как объединить одинаковые таблицы
Александр спрашивает:
У меня Word 2003. Таблица, загруженная с Интернета, разорвана командой "Разбить таблицу". Вопрос: Как её соединить обратно?
Похожий вопрос был задан недавно на форуме ru-board.com. Пользователь спрашивал, как ему объединить несколько одинаковых по структуре таблиц в одну.
Я предлагаю воспользоваться следующим макросом (автор Helmut Weber). Однако, будьте аккуратны и осторожны, так как если между вашими таблицами есть какой-то текст, то он будет удален.
Замена жаргонных слов в тексте
Андрей работает с документами, в которых встречаются жаргонные или специфические слова. Ему нужен инструмент, позволяющий быстро находить и заменять такие слова нормальными более верными и корректными. Например, словосочетание "Русский хелп" следовало бы заменить на "Русский файл помощи", и другие слова и словосочетания в том же духе.
Андрей предположил, что необходимо использовать макрос для этих целей. И он написал такой макрос с помощью автоматического макрорекордера Word. Однако столкнулся с проблемой: слов много, а объем макроса ограничен и добавление новых блоков (блоков поиска и замены новых слов) стало однажды невозможным.
Андрей интересуется, можно ли как-то усовершенствовать его макрос и иметь возможность работать с большим количеством слов, чем это доступно ему сейчас.
Я предложил использовать следующий макрос (ниже). В нем есть две строки, которые пользователь должен подредактировать под свои нужды. Вот эти строки:
Полезности Word
На этой странице вы можете загрузить на свой компьютер и установить различные шаблоны или полезные программы для редактора Word.
Если у вас возникли вопросы, есть информация об ошибках, а равно есть предложения по размещению ваших программ на этой странице, то жду ваших сообщений либо в теме форума Пожелания по сайту, либо через контактную форму, расположенную в нижней части сайта.
Галерея для упрощённой вставки изображений из папки
Подробная информация изложена в заметке Александра Витера
"Методичка" - пакет макросов для форматирования документов Word
Пакет "Методичка" служит для преобразования неформатированного текста в документ MS Word, который удобно редактировать и использовать.
Пакет можно использовать для форматирования сканированных книг и документов, оформления курсовых и дипломов, правки "кривого" текста полученного из Интернета, вырезанного из книги в формате pdf и т. д.
Пакет распространяется за вознаграждение (цена - любая приемлемая для пользователя сумма). За информацией обращаться на
Макрос пакетной замены от Александра Витера
Подробности в заметке Макрос пакетной замены от Александра Витера.
Шаблон "Массовое форматирование документов"
Шаблон «Массовое форматирование документов» позволяет произвести форматирование текста во многих документах одновременно (без открытия этих документов). Предназначен для редактора Word 2003.
Подробности читайте в заметке Массовое форматирование документов.
Шаблон "СЦЕНАРИЙ" (для автоматизации написания киносценариев)
Шаблон «Сценарий» предназначен для автоматизации написания киносценариев на основе предустановленного формата и заданных стилей. Работает только в редакторе Microsoft Word 2007.
Шаблон "Быстрое выделение"
Шаблон "QuickSelect" предназначен для быстрого доступа к командам выделения объектов (слов, предложений, строк, параграфов, экрана {видимой части документа}, разделов, страниц, всего документа).
Читайте подробности в заметке
Шаблон инструкции по оформлению текстовой документации
Для связи с автором Инструкции сообщаю его реквизиты:
Куличев Андрей Радиевич
kar@elesy.ru
icq 16330502
Шаблон для работы с закладками
Шаблон "BMTools" предназначен для быстрого доступа к закладкам текущего документа и содержит инструменты работы с закладками.
Подробности читайте в заметке Шаблон для работы с закладками и в файле Инструкция.doc в архиве.
Вы можете скачать и установить один из двух вариантов шаблона.
Первый вариант (список закладок отображается в меню после команд):
Второй вариант (список закладок отображается в самом верху меню):
Шаблон инструментов работы с последними файлами
Шаблон "RFTools" предназначен для отображения списка недавно открываемых файлов, вывода диалогового окна "Последние файлы", очистки списка последних файлов (очищается список, файлы не удаляются).
Подробнее можно прочитать в заметке
Обрамляем выделенный текст скобками
При редактировании документа иногда возникает необходимость заключить какой-то текст или просто одно слово в круглые скобки. Это можно сделать вручную, а можно воспользоваться следующим макросом. Выделите двойным щелчком мыши нужное слово или же выделите фрагмент текста и примените макрос:
Макрос определения номера таблицы
Метки: макросы | статистика | таблицы
Дата: 24/09/2008 18:10:34
Руслан спрашивает:
В документе несколько таблиц. Как узнать номер таблицы, в которой находится курсор ввода?
Если вам нужно узнать номер конкретной таблицы (в той, где находится курсор ввода), то надо воспользоваться следующим кодом:
Sub numCurTable() 'номер текущей таблицы MsgBox ActiveDocument.Range(0, Selection.Tables(1).Range.End).Tables.Count End Sub
Копирование таблиц из одного документа в новый
Михаил задал вопрос:
После использования сервиса "Слияние" в MS Word, я получил документ с большим количеством однотипных таблиц (с индивидуальным заполнением). Можно ли теперь сохранить этот документ в виде отдельных файлов с уникальными названиями, каждый из которых будет содержать отельную таблицу?
Это можно сделать с помощью следующего макроса (ниже). Но предварительно создайте в корне диска папку Test, так как именно в нее будут сохранены новые документы с таблицами:
Макрос конвертации форматированного текста в HTML
Метки: конвертация | макросы | программы | стили | формат | форматирование
Дата: 16/09/2008 14:17:10
Недавно обнаружил небольшой макрос для Word, позволяющий преобразовать форматированный текст в документе тегами HTML.
В частности, макрос преобразовывает текст, оформленный такими стилями, как Полужирный, Курсив, Подчеркнутый, а также добавляет вместо знака абзаца тег <BR>, а вместо двух идущих подряд знаков абзаца - тег <P>.
Вид текста до преобразования:
Абзац с цветным фоном
Метки: макросы | стили | форматирование
Дата: 15/09/2008 13:30:42
Иногда в сплошном унылом тексте документа необходимо выделить некий абзац с важной информацией так, чтобы он был заметен среди однообразного текста. Например, применить цветной фон для абзаца.
Конечно, это можно сделать и с помощью соответствующего стиля (стилей). Но можно воспользоваться простым макросом.
Следующий макрос оформляет абзац, в котором находится курсор ввода, желтым фоном со шрифтом синего цвета:
Макрос преобразования числа в текст
Метки: ключи поля | макросы | поля | число прописью
Дата: 08/09/2008 11:11:07
На форуме Microsoft был задан вопрос:
Необходимо в тексте Word введенное число преобразовать в текст на русском.
Для того, чтобы преобразовать некое число в текстовый формат, вы можете воспользоваться специальными программами, о которых я писал в заметке
Но если вам нужно преобразовать уже введенное число, то здесь может помочь следующий макрос (ниже).
Обыкновенный макрос: что это такое и как это работает
Я получаю множество писем, авторы которых не всегда понимают что такое макросы и, тем более, не разбираются в них.
В своей книге Word 2003/2007. Народные советы я давал информацию о макросах и о том, как работать с ними.
А недавно на сайте Microsoft я обнаружил замечательную статью Стефани Кригера, в которой он очень просто и ясно описывает всю "подноготную" макросов.
Статья называется
Ниже я привожу в качестве цитаты несколько абзацев этой статьи и рекомендую вам обязательно прочитать статью целиком.
Преобразование примечаний (комментариев) в сноски
Метки: макросы | примечания | сноски
Дата: 03/09/2008 13:59:24
Сергей интересуется:
Я подготовил большой текст, в котором много примечаний (annotations). Теперь их всех нужно превратить в сноски. Есть ли возможность это сделать наименее трудоемким способом (Word 97, 2002)?
Есть возможность преобразовать все примечания в тексте в сноски. Вот макрос, который решает эту задачу.
Преобразование надстрочных символов в сноски
Метки: макросы | надстрочные символы | поиск и замена | сноски
Дата: 01/09/2008 12:01:50
Наталья работает с отсканированными книгами, в которых вместо обычных сносок стоят верхние надстрочные индексы (1, 2, 3 и т.д.).
Наталье необходимо преобразовать все эти псевдосноски в полноценные сноски.
Следующий макрос решает эту задачу:
Имя документа из текста закладки
Александр спрашивает:
Как сделать так, чтобы при сохранении созданного документа в качестве имени файла предлагалось содержимое одной из закладок.
Вся соль состоит в том, чтобы пользователь сохранял документ через стандартную команду «Сохранить», а не отдельной кнопкой, к которой прикручен макрос.
Предположим, что в тексте документа используется множество разных закладок, одна из которых носит имя "Закладка". Вот ее мы и возьмем в качестве имени файла (документа). Далее воспользуемся следующим макросом.
Как изменить дату создания документа
Этот вопрос однажды мне задал один человек, но я не смог найти на него ответа. Позже, мне прислали ссылку то ли на специальную программу, то ли на программное решение. Не могу сейчас вспомнить, да это и не важно.
На самом деле, даты создания, изменения или последнего открытия документа являются встроенными свойствами любого файла и изменить их так просто не удастся.
Но можно воспользоваться двумя способами изменения даты создания или изменения документа (да, и любого файла).
Извлечение гиперссылок из документа
Андрей интересуется:
Как извлечь гиперссылки из документа Microsoft Office Word 2003 в другой документ? И если гиперссылок много, то выполнять вручную - это довольно утомительный процесс.
Для решения этой задачи можно воспользоваться двумя вариантами макросов. Но прежде, чем выполнять макросы, создайте в корне диска новую папку Test, так как она будет использоваться для хранения нового документа.
Макрос быстрого изменения размера шрифта
Александр Витер прислал небольшой макрос, позволяющий изменить размер шрифта для выделенного текста или для слова, в котором находится курсор ввода.
Вот, что пишет Александр:
Хочу поделиться макросом быстрого изменения размера шрифта.
Преобразование текста ссылки в гиперссылку
Метки: автоформат | гиперссылки | макросы
Дата: 12/08/2008 11:37:56
Алексей интересуется:
Есть список в таком формате:
http://www.адрес_сайта_1.ru
http://www.адрес_сайта_2.ru
...
http://www.адрес_сайта_N.ru
Необходимо, чтобы эти адреса стали ссылками автоматически. Как должен выглядеть макрос для этой цели?
В принципе преобразовать текст ссылки в гиперссылку можно и без макроса. Достаточно применить автоформат к тексту.
Перестановка соседних букв: макрос
Василий задал вопрос:
Подскажите, как поменять местами две соседние буквы одной клавишей или сочетанием двух-трех, чтобы долго не возиться? У меня, как и у многих активно пишущих, это самая рапространенная ошибка/опечатка.
Василий, ответ на ваш вопрос описывается в книге Microsoft Word: комфортная работа с помощью макросов.
Собственно, вот простейший вариант макроса.
Принципы работы с буфером обмена Windows
Метки: API | excel | буфер обмена | макросы
Дата: 08/08/2008 16:17:31
Статья написана специалистом MS Excel и для тех, кто работает с этой программой. Но общие принципы применимы и для разработчиков макросов под Word. Поэтому я и решил заказать перевод этой статьи и разместить ее в блоге. Надеюсь, она будет полезна вам.
На данной странице описываются некоторые методы, используемые в Visual Basic For Applications (VBA) для копирования данных в буфер обмена Windows, а также для получения данных из него. В VBA вы можете копировать или вставлять лишь текстовые данные.
Как назначить сочетания клавиш для макросов
Метки: горячие клавиши | макросы
Дата: 07/08/2008 12:09:44
Меня часто спрашивают в письмах, как назначить сочетания клавиш для макросов, которые я размещаю в блоге. Как правило, я даю ссылки на свои ранние заметки. Но недавно я обнаружил, что эти заметки не содержат той информации, о которой меня спрашивают. Точнее, содержат, но как-то размыто и не конкретно. Исправляюсь и публикую "правильную" инструкцию.
Итак, вы скопировали код макроса, вставили его в редактор Visual Basic и используете. Теперь вы хотите назначить для этого макроса (в целях быстрого доступа к нему) какое-нибудь сочетание клавиш (на ваше усмотрение). Для этого выполните следующие действия:
Как вставить в колонтинтул путь и имя файла
Метки: ключи поля | колонтитулы | макросы | поля
Дата: 06/08/2008 10:56:48
Один из читателей сайта задал вопрос:
Как настроить Word, чтобы при распечатке в нижнем колонтитуле указавался путь и имя файла?
Это достаточно легко сделать. Нужно просто вставить в нижний колонтитул специальное поле FileName с ключом p, а потом отправить документ на печать.
О том, как вставить поля в колонтитулы, я подробно описал в заметке
Расцвечивание отдельных ячеек в таблице
Тимофей спрашивает:
Как сделать условное форматирование в таблице Word: при значении "ready" - красить ячейку в зеленый цвет, при значении "on goning" - в желтый, и при других значениях - в красный? В Excel это называется условным форматированием. В Word найти такого не смог.
Тимофей, если вы хотите делать это автоматически, то вам нужно использовать макрос, который бы проверял каждую ячейку таблицы и, найдя определенное слово в ней, заливал бы эту ячейку нужным цветом.
В принципе это несложно реализовать с помощью следующего макроса.
Макрос изменения регистра первых букв в предложениях
Андрей спрашивает:
Мне нужен макрос, который бы менял первые буквы предложений, например, с маленькой на большую. После однобуквенных предлогов в начале предложений ставится неразрывный пробел. Курсор перед запуском макроса может находиться в любом месте текста.
Можно воспользоваться следующим макросом:
Поиск слов с прописными буквами
Метки: макросы | поиск и замена | регистр | форматирование
Дата: 25/07/2008 10:47:44
Роман интересуется:
Как в документе найти все слова, написанные прописными буквами? Причем, можно ли результаты поиска вывести вместе, или ворд будет переходить от слова к слову?
Можно воспользоваться следующим макросом, который мне помогли реализовать специалисты VBA с форума microsoft.public.word.vba.general.
Удаление всех закладок в документе
Чтобы удалить все закладки из текущего документа можно воспользоваться следующим макросом:
Sub delAllbookmarks() Dim oBkm As Bookmark For Each oBkm In ActiveDocument.Range.Bookmarks oBkm.Delete Next End Sub
Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:
Как передвигать рисунок в тексте с заданной точностью
Сергей спрашивает:
Как передвигать рисунок с заданной точностью (например сдвинуть влево на 2 мм или на 2 пиксела)?
Для этих целей можно воспользоваться следующим макросом:
Макрос определения ориентации и формата страницы
Метки: макросы | параметры страницы | форматирование
Дата: 11/07/2008 11:33:22
Алексей спрашивает:
Имеется документ с несколькими страницами, которые имеют разную ориентацию и формат (А4 и А3). Как определить формат и ориентацию текущей страницы?
Для этих целей можно воспользоваться, например, таким макросом (с функцией):
Макрос пропорционального изменения размеров формул
Иван спрашивает:
В документе WORD есть около 300-400 формул. Необходимо сделать их пропорциональными то есть высота и ширина должны быть более-менее похожы. Одни формулы имеют больший размер а другие маленький.
Как можно для каждой формулы применить определенный процент ширины и высоты отталкиваясь от стандартного измерения?
Поскольку формулы редактора Word представляют собой графические объекты, то предлагаемый ниже макрос очень похож на макрос из заметки
Ударение в редакторе Word 2007
Эта заметка посвящается пользователям редактора Word 2007, которым необходимо использовать знак ударения в словах.
В сентябре 2006 года я уже публиковал заметку с похожим названием - Ударения в Word, но речь в ней шла исключительно о более ранних версиях редактора Word. В Word 2007 те способы, которые были описаны в заметке, не работают.
Когда я уже готовил к изданию свою книгу
Как найти картинку в документе по ее замещающему тексту
Метки: автофигуры | замещающий текст | макросы | рисунки
Дата: 20/06/2008 12:56:49
Не уверен, что многие из вас пользуются предоставляемой редактором Word возможностью добавлять к вставляемой в документ картинке замещающий текст. Такой текст нужен для последующей публикации документа в сети Интернет (после сохранения документа в формате web-страницы). В случае недоступности картинки на сайте пользователь увидит замещающий текст.
Казалось бы, зачем нужен этот замещающий текст, если документ используется исключительно на локальном компьютере и просматривается (редактируется) только в редакторе Word? Расскажу свой случай, может быть кому-то пригодится.
Двойная нумерация страниц в документе
Метки: колонтитулы | макросы | нумерация | разделы
Дата: 18/06/2008 15:49:49
Андрей интересуется:
Возникла необходимость вести в документе две нумерации страниц - сквозную (внизу страницы) и внутреннюю, по разделам, то есть часть номеров страниц в верхнем и нижнем колонтитуле не совпадает - можно это автоматизировать?
Стандартными способами в редакторе Word 2003 это сделать не удастся. Но на официальном сайте Microsoft есть замечательная статья на русском языке, описывающая два способа реализации схемы двойной нумерации в одном документе.
Статья называется
Я написал макрос по первому описанному методу, но у меня возникли сложности с колонтитулами и пришлось просить совета у более опытных товарищей на форуме Microsoft. В итоге получился вполне работающий макрос, который я и представляю вашему вниманию.
Календарь Word
Метки: календарь | макросы | шаблоны
Дата: 15/06/2008 16:00:59
Ольга спрашивает:
Можно ли в Word сделать маленький календарик, который можно было бы вызывать по кнопке на панели инструментов? Наподобие такого, как в Excel или как в 1С?
Можно. В зарубежном интернете есть отличная статья Мартина Грина на эту тему (на тему календаря, а не 1С, конечно же):
Мартин разрешил мне воспользоваться его опытом и опубликовать эту статью на моем сайте. Но переводить всю статью не имеет смысла: она большая и подробная; я лишь изложу ее основные моменты. В итоге, мы должны получить примерно вот такой календарь:
Как вставить поле подсчета страниц в колонтитул
Метки: колонтитулы | макросы | нумерация | поля | статистика
Дата: 13/06/2008 09:07:56
Елена работает с документами, в которых титульный лист (первый по счету) не должен учитываться в общем количестве листов в документе. Количество страниц необходимо вывести в колонтитул. Елена создала автоматический макрос, который создает поле следующего вида - {={NUMPAGES}-1}, но затрудняется вставить его в колонтитул. Елена спрашивает: как можно вставить в колонтитул такое поле с помощью макроса?
Это можно сделать с помощью следующего макроса.
Обратите внимание: этот макрос очищает колонтитул от любого текста, который там содержится. Будьте внимательны!
Макрос вставки колонтитулов на нечетные страницы
Алена задала вопрос:
Есть две возможности вставить колонтитул на нечетные страницы: в первый раздел документа (если он, например, единственный), или во все разделы документа.
Вот примеры макросов, позволяющие реализовать эти два способа.
Как удалить колонтитулы из всех разделов документа
Станислав спрашивает:
Да, это возможно. Есть два способа удалить колонтитулы из документа: вручную и через макрос. Ручное удаление колонтитулов осуществить достаточно легко, но этот способ непродуктивен. Лучше воспользоваться следующим макросом, который удалит все имеющиеся колонтитулы (верхние и нижние) во всех разделах документа.
Как изменить имя закладки
Алена спрашивает:
Можно, но с оговоркой. Следует учитывать, что в действительности при этом происходит удаление первой закладки и создание второй закладки для этого же фрагмента текста, но уже с новым именем. Хотя, ничто не мешает создать для одного и того же фрагмента текста несколько разных закладок.
Макрос: определение номера текущей страницы
Алексей задал вопрос:
Как программно определить номер текущей страницы? Единственное, до чего я додумался - по проценту скробара. Но правильно ли это?
В VBA есть две константы, по которым можно определить номер текущей страницы:
Первая константа wdActiveEndPageNumber используется тогда, когда в документе нумерация начинается с первого номера (нормальная нумерация), а вторая - wdActiveEndAdjustedPageNumber - если пользователь использует свою нумерацию документа (не с первого по порядку листа документа).
Вставка неформатированного текста
Метки: макросы | специальная вставка | стили | форматирование
Дата: 13/05/2008 12:50:25
Сергей спрашивает:
При вставке в документ Word текста из другой программы, он появляется в формате этой программы, что неудобно. Можно воспользоваться "специальной вставкой" и там выбрать пункт "неформатированный текст" и тогда вставляемый текст воспринимает формат Word'a. Но как сделать так, чтобы вставляемый текст всегда вставлялся в виде "неформатируемого теста", не прибегая к помощи меню каждый раз?
Есть три (возможно, и больше) основных способа решить данную ситуацию.
Обтекание картинки текстом
Метки: макросы | обтекание текстом | рисунки
Дата: 10/05/2008 00:09:16
Сергей интересуется:
Как с помощью макроса сделать обтекание картинки текстом?
Сделать обтекание текстом возможно. Но лишь после того, как рисунок будет переконвертирован в графический объект.
Здесь следует объяснить, что в редакторе Word различаются два типа графических объектов: рисунки (например, фотографии или иные объекты, вставленные в документ из файла) и, собственно, объекты (автофигуры, надписи и другие объекты, которые создаются в самом редакторе или в векторных редакторах).
Поиск и замена текста во многих документах одновременно
Метки: макросы | пакетная замена | поиск и замена | форматирование | шаблоны
Дата: 07/05/2008 11:16:27
Обновлено 22.09.2009г.
По просьбе автора макроса Евгения Родыгина и в связи с появлением новой усовершенствованной версии макроса (см. заметку Макрос пакетной замены от Александра Витера) я разместил ниже ссылку на скачивание новой версии.
Предположим, у вас есть несколько документов, в которых вам необходимо изменить определенный (одинаковый во всех документах) фрагмент текста на другой текст. Открывать эти документы по одному и вручную менять текст - утомительно. Ладно, если документов всего пять. А если их десять или того больше? Без средств автоматизации не обойтись.
Я для подобных задач пользуюсь отличной программой
Работа со сканером в Word 2007
Метки: FineReader | word 2007 | база знаний Microsoft | макросы | рисунки
Дата: 06/05/2008 15:42:29
Роман интересуется возможностью работы со сканером в редакторе Word 2007. В редакторе Word 2003 он мог разместить на панели инструментов специальную кнопку "Со сканера или камеры" и спокойно сканировать. В новой версии редактора Роман не может найти такой команды. Есть ли вообще такая команда?
Увы, в редакторе Word 2007 команды "Вставить рисунок со сканера или камеры" нет. Но есть другой способ работы с этими устройствами. Для этого выполните следующие действия.
Замена знаков абзаца на пробелы в выделенном тексте
Метки: макросы | поиск и замена | форматирование
Дата: 30/04/2008 12:46:56
Игорь задал вопрос:
Как удалить все знаки абзацев в выделеном тексте одной кнопкой?
Воспользуйтесь следующим макросом, но для начала выделите нужный фрагмент текста, а потом уже примените макрос:
Вставка будущей даты
Метки: AutoNew | дата и время | закладки | колонтитулы | макросы | шаблоны
Дата: 29/04/2008 15:45:59
Василий спрашивает:
Как написать макрос, чтобы будущая дата (текущая + 15 дней, к примеру) автоматически вставлялась в колонтитулы?
Используйте для этой цели автоматически исполняемые макросы. В данном случае подойдет макрос AutoNew (выполняется макрос при создании нового документа).
Ваши возможные действия:
Обновление полей, содержащихся в надписях в колонтитулах
Метки: колонтитулы | макросы | надписи | поля
Дата: 21/04/2008 16:46:30
Владимир спрашивает:
Нужен макрос для обновления полей в надписях, которые, в свою очередь, размещены в колонтитулах.
Я нашел два подходящих макроса.
Макрос вставки разрыва страницы перед некоторым словом
Метки: макросы | поиск и замена | разделы | разрывы
Дата: 09/04/2008 11:39:12
Сергей спрашивает:
Как реализовать макрос, который бы по тексту расставлял разрыв страницы в определенных местах, например, перед словом "Отчет"?
Можно использовать следующий макрос:
Шаблон сохранения состояния документов
Метки: макросы | программы | сайты | шаблоны
Дата: 09/04/2008 10:59:02
Microsoft Word всегда устанавливает каретку в начало открываемого документа. Это неправильно, а при работе с большими документами и неудобно. Документы должны открываться в том же состоянии, в котором они находились в момент закрытия.
Шаблон "AhDocStateSaver.dot" (далее в тексте - "Программа") предназначен для сохранения состояния документов при их закрытии и восстановлении сохраненного состояния документа при его последующем открытии.
Помимо места расположения каретки программа сохраняет следующие параметры документа - положение выделения (Selection), увеличение (Zoom), положение вертикального скроллинга и вид (Normal, Web, Print, Reading, Outline).
Прочитать более подробную информацию о шаблоне и его возможностях, а также скачать шаблон AhDocStateSaver.dot можно на сайте
Быстрый ввод текста с помощью команды =rand()
Метки: =rand() | автоматизация | контекстное меню | макросы | служебные команды
Дата: 02/04/2008 16:53:52
О такой полезной команде =rand() я уже писал в заметке “Глюки”, “пасхальные яйца” или служебные команды Word.
Но вручную вводить эту команду не всегда бывает удобно. Поэтому лучше иметь ее всегда под рукой, а точнее - иметь ее добавленной в контекстное меню, вызываемое по щелчку правой кнопкой мыши. Тогда не придется вспоминать ее синтаксис и вводить руками:
Если вы хотите добавить эту команду в контекстное меню, откройте ваш шаблон Normal.dot (Normal.dotm) в редакторе Word и/или вызовите редактор Visual Basic с помощью комбинации клавиш «Alt»+«F11». Затем перейдите на проект шаблона и вставьте новый модуль для макросов.
Использование форм для ввода данных в документ
Метки: автоматизация | закладки | макросы | формы | шаблоны
Дата: 31/03/2008 12:13:16
Продолжаем серию заметок по теме автоматизации документов.
Сегодня я расскажу, как добавить к вашим документам специальную форму, с помощью которой можно легко и просто вводить данные в документ. Введенные в форму данные адресата по нажатию кнопки на форме будут автоматически внесены в документ.
Предполагается, что у вас есть готовый шаблон документа, например, письма. В качестве образца можно использовать подготовленный мною шаблон официального письма вымышленной организации.
Использование шаблона необходимо, ведь на его основе вы в дальнейшем будете создавать свои документы.
Подсчет количества заголовков в Оглавлении
Забавный макрос (правда, есть сомнения в его полезности) я нашел на одном из обсуждений пользователей редактора Word в группах Google.
Следующий макрос подсчитывает количество вхождений заголовков (или иных элементов) в Оглавлении и выводит сообщение об этом.
Автоматическое обновление полей при открытии документа
Ваши документы могут содержать различные поля: перекрестные ссылки, оглавления, предметные указатели, нумерацию, даты и т.д., некоторые из которых нуждаются в периодическом обновлении. Например, добавлены или изменились названия глав, которые присутствуют в оглавлении, рисунки были перенесены, удалены или добавлены новые и так далее. После этих действий необходимо принудительно обновлять поля.
Однако редактор Word не имеет стандартных возможностей обновления всех полей в документе одновременно и без лишних мышедвижений (если не считать использование сочетаний клавиш для выделения всего текста - «Ctrl+A» и последующего обновления с помощью клавиши «F9»).
Тем не менее, есть решение: можно воспользоваться специальным макросом, который будет автоматически обновлять все ваши поля при каждом открытии документа.
Как выделить текст только в одном разделе документа
Предположим, ваш документ содержит несколько разделов. Вам нужно выделить весь текст только в одном конкретном разделе документа, например, в третьем разделе. Как это можно быстро сделать?
Я предлагаю воспользоваться следующим простым макросом:
Sub SelectCurrentSection() 'Выделение текущего раздела в документе Selection.Range.Sections.First.Range.Select End Sub
Поместите курсор ввода в любое место текущего раздела и запустите макрос. Весь текст (все элементы) текущего раздела будет выделен.
Вы можете создать для этого макроса кнопку (или назначьте сочетание клавиш) и разместить ее на панели инструментов (для Word 2003) или на панели быстрого доступа (для Word 2007).
Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:
Белый текст на синем фоне в Word 2007
Метки: word 2007 | макросы | настройка word
Дата: 19/03/2008 11:16:30
Евгений задает вопрос:
В прежних версиях Word была возможность установить настройку Белый текст на синем фоне. В версии 2007 года я такого не нашел. Не могли бы вы подсказать, сохранилась ли такая возможность, и если да, то как совершить указанную настройку?
Насколько мне известно, в редакторе Word 2007 такой функции уже нет, ее исключили. Но есть иные возможности настройки фонового цвета и цвета текста.
Макрос вставки текста перед каждым абзацем
Александр спрашивает:
Как вставить (автоматически!) по всему документу в начале каждой строки один и тот же текст? Вручную это очень долго если документ много строк.
Можно воспользоваться следующим макросом для вставки некоего текста перед первым предложением каждого абзаца.
Макрос обновления полей в колонтитулах
Если ваши документы содержат колонтитулы (верхние и/или нижние) с включенными в них полями, то возникает ситуация, когда необходимо обновить эти поля. Делать вручную такую операцию не очень удобно. Поэтому можно воспользоваться следующим макросом:
Sub uHeadersFooters() 'Обновление всех полей в колонтитулах активного документа во всех разделах Dim oSection As Section Dim HF As HeaderFooter For Each oSection In ActiveDocument.Sections For Each HF In oSection.Headers HF.Range.Fields.Update Next HF Next oSection For Each oSection In ActiveDocument.Sections For Each HF In oSection.Footers HF.Range.Fields.Update Next HF Next oSection End Sub
Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:
Использование Word в качестве HTML-редактора
Один из читателей сайта WordExpert.ru задал вопрос:
Можно ли использовать редактор Word как HTML-редактор, с возможностью просмотра получаемого кода?
На мой взгляд, Word можно использовать как HTML-редактор, но вот просмотреть получающийся код в нем не удастся. Все-таки это текстовый редактор.
Тем не менее, я расскажу об одном способе (для Word 2003), который может заинтересовать тех пользователей, которые сначала печатают текст в редакторе, а затем выделяют и вставляют его, например, в свои блоги. И уже в админпанели блога они форматируют текст, вставляя в нужные места соответствующие теги HTML.
Как добавить свои команды в контекстное меню в Word 2007
Метки: word 2007 | контекстное меню | макросы | настройка word
Дата: 09/03/2008 10:39:46
Ранее я уже писал аналогичную заметку для редактора Word 2003. Но недавно ко мне обратились с вопросом о возможности добавления/изменения команд в контекстное меню редактора Word 2007. Я озадачился этим вопросом и стал искать информацию.
Как передать макросы другим пользователям
Метки: макросы | организатор | шаблоны
Дата: 05/03/2008 16:47:17
Это заметка описывает основные действия по передаче макросов другим пользователям. Ранее уже была опубликована аналогичная статья на эту тему с иллюстрациями. Я забыл о ней и написал новую, а обнаружив повтор, решил оставить эту заметку, так как в ней кратко и четко изложена самая суть.
Глава из книги: Макросы Word
На сайте PC Magazine в разделе Компьютерная литература выложена целиком одна глава из моей книги Word 2003/2007. Народные советы. Глава называется "Макросы Word". Публикуется с разрешения издательства «БХВ-Петербург».
В частности, в этой главе даны описания следующих макросов:
Обновление текстовых полей в надписях
На прошлой неделе я получил письмо от читателя с вопросом:
Известно, что для обновления всех полей в документе, нужно выделить весь текст и нажать «F9». Но если поле находится в надписи, например, название рисунка, то приходится выделять каждый рисунок, в нем надпись и нажимать «F9». А у меня в дипломе 49 рисунков и диаграмм.
Как средствами Visual Basic выбрать все надписи в документе? Под надписями я понимаю графические элементы, имеющие в себе текст.
Поскольку я несколько поостыл к изучению программирования на VBA, то помочь с решением сразу не мог и предложил задать этот вопрос на сайт RusFAQ.ru. Однако полученный совет (выделить весь текст сочетанием клавиш «Ctrl»+«A» и затем нажать клавишу «F9») не решал проблему, поскольку поля находились в надписях, а обновление применялось исключительно к выделенному тексту.
Запрет на распечатку документов с чужого компьютера
Один из читателей сайта задал вопрос:
Скажите пожалуйста, как мне можно поставить в Worde запрет на распечатку через чужой принтер? Возможно вообще такое?
Свое решение этого вопроса представил Леонид Бродский, автор программы LeoBilingua. Он написал:
Список закладок в документе
Один из читателей сайта задал вопрос:
Имея множество закладок по тексту, могу ли я создать из них меню (панель содержания, перечень), дабы не лазить постоянно Вставка - Закладка?
Я обратился за помощью на отличный англоязычный форум по VBA и получил решение в виде макроса, код которого я привожу ниже.
Вставка завтрашней даты
Представим себе ситуацию: вы готовите документ, в конец которого или в любое место, где находится курсор ввода, необходимо вставить завтрашнюю дату (например, вы заранее подготовили нужный документ). Стандартными средствами редактора Word можно вставить лишь текущую дату, либо ввести эту дату вручную.
Но можно поступить проще и написать простенький макрос для этих целей:
Как заменить текст гиперссылки на прямую ссылку
Метки: гиперссылки | макросы
Дата: 21/01/2008 15:52:50
На форуме Microsoft, посвященном обсуждению различных нюансов работы с программами из пакета Microsoft Office, был задан вопрос:
Как в Ворде или в Экселе преобразовать гиперссылку в простой текст (нужно, чтобы осталось не слово, а путь, скрывающийся под гиперссылкой)?
Я попросил помощи на англоязычном форуме и получил простое решение. Код макроса, заменяющего текст в виде гиперссылки на прямую ссылку, привожу ниже:
Создание макроса из готового кода
Продолжение заметки о способах создания макросов.
Если у вас есть готовый код макроса, например, с этого сайта, то следующий совет поможет внедрить его в ваши документы. Есть две возможности создания макроса из готового кода.
Создание кнопки-ссылки на сайт в главном меню редактора
Необходимо в главном меню редактора Word поместить дополнительную кнопку, при нажатии которой откроется во внешнем браузере определенная интернет-страница.
Предлагаемый код:
Макрос изменения цвета заглавных букв в тексте
На форуме ru-board.com интересовались, как написать макрос, который бы в выделенной области менял цвет всех заглавных букв текста на красный, а строчных на черный.
Вот небольшой макрос, который решает этот вопрос:
Преобразование объектов Shape в InlineShape
Метки: автофигуры | конвертация | макросы | преобразование | рисунки
Дата: 20/11/2007 22:44:02
Недавно я получил документ, который следовало привести в порядок (оформить стилями). В документе было много рисунков, созданных в редакторе Word с помощью инструментов рисования, так называемые автофигуры.
Автофигуры, являясь объектами Shape, могут свободно перемещаться по документу, в то время как объекты InlineShape (например, вставленный в документ рисунок из файла) прикрепляются к области текста.
Применение к автофигурам стиля "Рисунок" было невозможно, поэтому пришлось быстренько написать (а точнее, подсмотреть в справке VBA) макрос, преобразующий все подобные автофигуры в рисунки, то есть сконвертировать объекты Shape в объекты InlineShape.
Макрос замены черного фона рисунка прозрачностью
Читательница сайта Ольга прислала замечательный совет по использованию макроса при работе с иллюстрациями в редакторе Word.
Ольга пишет, что на работе ей часто приходится вставлять в документ Word захваченные в буфер обмена при помощи клавиши «Print Screen» рисунки из-под OC DOS (или эмуляции DOS). Поскольку фон этих рисунков всегда черный, то необходимо заменять фон прозрачностью. Вручную такую операцию производить конечно можно, но при большом количестве рисунков нецелесообразно.
Ольга предлагает использовать следующий макрос (для Word 2003):
Зеркальное отображение текста
Начиная с версии 6 в VBA появилась команда strReverce, предоставляющая возможность отзеркаливать символы. Например, слово ЖУК после выполнения следующего макроса будет выглядеть как КУЖ.
Sub reverse() 'Замена выделенного фрагмента текста на его 'зеркальное отображение Dim strStroka As String Dim strRev As String strStroka = Selection.Text strRev = strReverse(strStroka) Selection.Text = Replace(strStroka, strStroka, strRev) End Sub
Как использовать: выделите текст и выполните макрос.
Обновление: в комментариях приведен более продвинутый макрос для этого действия.
Макрос массового уменьшения размеров всех рисунков
Метки: макросы | рисунки | форматирование
Дата: 10/11/2007 16:30:22
Иван задал вопрос:
Есть документ Word с картинками (их много) и текстом. Необходимо "ужать" количество страниц. Уменьшить шрифт текста - понятно, но как уменьшить размер всех картинок одновременно, скажем, на 50%?
Сделать это можно с помощью следующего макроса:
Как определить нахождение курсора ввода в ячейке таблицы
Как узнать, находится ли курсор ввода в таблице в документе Word или нет?
Недавно мне пришлось столкнуться с такой проблемой, когда я готовил шаблон документа для организации. Пришлось поспрашивать на тематических форумах по программированию. Решение нашлось быстро. Возможно оно кому-то и пригодится.
P.S. Обнаружилось, что если курсор ввода находится в конце таблицы (не в последней ячейке, а за границей таблицы впритык к последней ячейке), то этот макрос выдает неверный результат.
Правильнее использовать другой код (макрос + функция), опубликованный ниже макроса "PointIntoTable".
Sub PointIntoTable Set rngTable = Selection.Range If Not rngTable.Information(wdWithInTable) Then MsgBox prompt:="Курсор находится вне таблицы" Else ... 'ваш код после условия End if End sub
Дополнено с учетом комментариев Вождя и Александра Витера:
Sub PointIntoTable2() Dim rngTable As Range Set rngTable = Selection.Range If Range_InCell(rngTable) = True Then MsgBox prompt:="Курсор находится в таблице" Else MsgBox prompt:="Курсор находится вне таблицы" End If End Sub Public Function Range_InCell(ByRef icRange As Word.Range) As Boolean ' возвращает True, если область icRange целиком находится в ячейке Range_InCell = False On Error Resume Next If icRange.Information(wdWithInTable) <> True Then ElseIf icRange.Cells.Count <> 1 Then Else Range_InCell = True End If End Function
О передаче макросов другим пользователям
Метки: импорт макросов | макросы | экспорт макросов
Дата: 29/10/2007 23:20:06
Если ваши коллеги или знакомые пользуются какими-либо макросами, автоматизирующими часто повторяемые действия или решающими специфические задачи в документах Word, то имеет смысл взять на вооружение такой макрос и использовать его на своем компьютере для своих нужд. Но здесь возникает вопрос: как перенести этот макрос в свои документы (шаблоны)?
Первый способ – воспользоваться диалоговым окном Организатор и скопировать модуль с макросами из одного документа (шаблона) в другой документ, который затем будет передан пользователю.
Здесь следует отметить, что автоматически создаваемые макросы в редакторе Word записываются в стандартный модуль NewMacros глобального (общего) шаблона Normal.dot. Этот модуль может содержать большое количество макросов для самых различных манипуляций с текстом.
Автоматическая запись макроса
Меня часто спрашивают в письмах, как создаются макросы с помощью редактора Word и как использовать коды макросов, которые я публикую в заметках.
В ранних записях я подробно описывал необходимый порядок действий, чтобы воспользоваться приводимыми в заметках макросами. В последнее время эта практика мною не поддерживается по разным причинам.
Чтобы не повторять в каждом совете последовательность шагов по созданию макросов, открытию редактора Visual Basic, назначении макросам сочетаний клавиш или размещении кнопок макросов на панелях инструментов, я решил написать несколько заметок на эту тему. Первая заметка описывает процесс автоматической записи макросов с помощью макрорекордера от редактора Word.
Макрос вставки текущей даты прописью
Я уже публиковал заметку о надстройке для Word - Дата прописью - позволяющей вставлять в документ или таблицу Excel различные даты прописью.
В этой заметке я приведу код макроса, с помощью которого можно легко вставить текущую дату прописью.
Написание цифр через дробь
Метки: автозамена | автоформат | дроби | макросы | форматирование
Дата: 12/10/2007 00:01:36
Редактор Word предоставляет возможность автоматического преобразования нескольких цифр с наклонной чертой (слеш или дробь) между ними в одиночный символ дробного числа. Например, если ввести цифры 1⁄2 или 1⁄4, то они автоматически преобразуются в соответствующие числовые формы с изменением размера шрифта и его смещением вверх (для числителя) и вниз (для знаменателя).
Следует оговориться, что такое автоматическое преобразование возможно лишь в случае, если в диалоговом окне Параметры автозамены на вкладке Автоформат при вводе у вас установлен флажок на параметре Заменять при вводе дроби соответствующими знаками.
Но что делать, если необходимо ввести иные цифры и представить их в виде дробей (например, номер дома 21⁄4)?
Макрос изменения вида кавычек
Метки: кавычки | макросы | поиск и замена | форматирование
Дата: 28/09/2007 12:04:57
Этот макрос (спасибо за помощь Леониду Бродскому) может пригодиться в тех случаях, когда в документе встречаются наряду с парными кавычками также и прямые кавычки. Поскольку в России принято использовать парные кавычки (елочки), то необходимо преобразовать все прямые кавычки в «правильные».
Макрос подсчета количества строк в таблице
Если ваш документ содержит таблицу и вам нужно подсчитать количество строк в ней, то результат можно получить двумя способами.
Первый способ заключается в том, что вы выделяете таблицу, открываете диалоговое окно Свойства таблицы и на вкладке Строка узнаете количество строк:
Как изменить регистр
Метки: макросы | регистр
Дата: 17/09/2007 23:43:01
Посетитель сайта в комментариях к одной заметке задал вопрос:
Как перевести некий текст в верхний регистр, например, "привет" в "ПРИВЕТ".
Есть очень простое решение, которое подсказали читатели рассылки.
Обновилась программа Дата прописью
Метки: макросы | программы | сайты | число прописью
Дата: 07/09/2007 19:49:46
Буквально на днях обновилась замечательная программа-макрос Сергея Шершнева Дата прописью (ссылка с описанием программы приведена ниже), позволяющая вставлять в документы Word или Excel дату прописью, например, Седьмое сентября две тысячи седьмого года, причем не только текущую дату.
Если вы ищете инструмент, решающий подобные задачи, то эта программа как раз и создана для таких ситуаций.
Ссылка: Дата прописью.
Как выровнять все таблицы по ширине окна
Метки: макросы | таблицы | форматирование
Дата: 07/09/2007 12:24:45
Если в вашем документе содержится много таблиц, имеющих различный формат и выравнивание на странице, то их ручное выравнивание может занять немало времени и утомить пользователя.
Но есть возможность запустить небольшой макрос, который сам выровняет все имеющиеся в документе таблицы по ширине окна. Таблицы станут одинаковыми и это будет красиво смотреться в документе. Вот код:
Sub tableAutoFit() ' Выравнивает все таблицы в документе по ширине окна Dim myTable As table For Each myTable In ActiveDocument.Tables myTable.AutoFitBehavior wdAutoFitWindow Next myTable End Sub
Быстрая смена ориентации страниц документа
Метки: макросы | настройка word | параметры страницы
Дата: 03/09/2007 12:55:46
Стандартно смена ориентации страниц документа (книжная или альбомная) происходит через диалоговое окно Параметры страницы, вызываемое по одноименной команде из меню Файл (Word 2003) или через вкладку Разметка страницы (Word 2007).
Можно ускорить действия по смене ориентации страниц, если воспользоваться небольшим макросом:
Макрос переключения между форматами страниц
Метки: макросы | параметры страницы | формат
Дата: 26/08/2007 22:02:31
Надежда, читательница рассылки сайта, пожаловалась на имеющуюся у нее проблему с отсутствием в диалоговом окне Параметры страницы редактора Word 2003 выбора формата страницы А5. Ей приходится вручную устанавливать нужные параметры. Надежда спрашивает, можно ли как-то решить эту проблему.
Я предложил воспользоваться небольшим макросом, который позволяет переключаться в редакторе с одного формата А4 на формат А5 и обратно простым щелчком мыши по назначенной для этого макроса кнопке на панели инструментов.
3 способа очистки списка недавно открытых документов
Метки: макросы | настройка word | недавно открытые документы | шаблоны
Дата: 27/06/2007 15:21:01
Если к вашему компьютеру на работе или дома имеют доступ разные люди, у них есть возможность видеть в меню Файл редактора Word список недавно открывавшихся документов, что может быть нежелательно. К сожалению, редактор не имеет каких-либо настроек, позволяющих автоматически удалять этот список. Тем не менее, существуют три способа очистки недавно открытых документов Word.
Очистка списка с помощью команды удаления пунктов меню
Этот способ основан на использовании комбинаций клавиш, вызывающих команду удаления пунктов меню.
Проверка орфографии текста в буфере обмена Windows
Метки: буфер обмена | макросы | орфография | правописание | программы
Дата: 20/03/2007 11:55:00
Если в Windows установлен Word (от 97 версии и выше) можно проверять орфографию текста, находящегося в буфере обмена Windows, одним кликом мыши. Для этого даже не придётся запускать сам текстовый редактор.
Но сначала нужно приготовиться. Для этого зайдите на эту страницу, отыщите там VBS-скрипт spellcheck.vbs, скачайте его и разместите на самом видном месте рабочего стола операционной системы, а еще лучше - сразу перетащите ярлык файла в панель быстрого запуска рядом с кнопкой "Пуск":
Удаление лишних пробелов в Word
Метки: лишние пробелы | макросы | поиск и замена | форматирование
Дата: 19/01/2007 09:49:18
Если вы в силу специфики своей работы часто получаете документы Word, подготовленные кем-то другим, то наверняка встречали в текстах помимо орфографических ошибок, проблемы иного рода - лишние пробелы между словами или перед знаками препинания. Удалять их вручную утомительно и требует много времени.
Но можно значительно облегчить себе жизнь, если создать два макроса, которые самостоятельно и в мгновение ока избавят документ от этой напасти.
Макросы не оригинальны и созданы по мотивам советов авторов книги "Microsoft Word: комфортная работа с помощью макросов".
Хитрости выбора цвета шрифта в Word
Метки: макросы | настройка word | шрифты
Дата: 18/01/2007 09:28:15
Текстовый редактор Word позволяет раскрасить текст документа шрифтами разного цвета. Как правило, это делается для выделения целых фрагментов текста или отдельных слов в документе, чтобы обратить на них особое внимание читателей.
Стандартно в редакторе задан черный цвет шрифта. Но можно изменить эти установки на свои собственные. Для этого в меню Формат (Format) выберите команду Шрифт (Font) или нажмите сочетание клавиш CTRL+D. Откроется вот такое диалоговое окно:
Как построить графики функций, чертежей геометрических объектов в редакторе Microsoft Word
Метки: графики | макросы | надстройки | программы
Дата: 14/12/2006 11:50:08
В 2003 году на конкурсе Microsoft Office Extensions программа "Построитель графиков" заняла второе место. Эта разработка рисует графики заданной функции в редакторе Word в виде полилиний. Разработчик программы - Анзор Березгов.
Согласно комментарию журнала PC Magazine/RE, эта разработка может заинтересовать многих: научных работников, студентов, школьников, верстальщиков, и т.д. Причина ее появления кроется в одной особенности, своего рода "узком" месте пакета Office: отсутствие "явной" возможности для преобразования графиков в векторный формат, позволяющий свободно переносить рисунки в другие прикладные программы и обеспечивать при этом требуемое разрешение (dpi).
Текущая дата прописью
Метки: дата и время | макросы | программы | число прописью
Дата: 06/12/2006 17:51:50
Вчера я получил вопрос от одного читателя рассылки. Он спрашивал о возможности вставить в документ текущую дату прописью. К тому же необходимо при каждом входе в этот документ автоматическое обновление даты.
Надо отметить, что Word позволяет вставлять даты, но только не прописью.
Хотя есть решение, связанное с программированием на VBA. Читайте
Как активировать гиперссылки в защищенном документе с формами
Метки: гиперссылки | защита документа | макросы | формы | элементы управления
Дата: 30/11/2006 20:27:13
Вопрос:
У меня возникла проблема при создании форм. Я делала анкету для удобства с полями ответа с помощью панели Формы. Все хорошо. Но у меня есть тонкость - в анкете есть гиперссылка на мейл. Когда я закрываю ее на замок, то гиперссылка отказывается работать. Так и не смогла это победить. Буду признательна, если подскажите как это можно в Формах обойти.
Этот вопрос оказался чрезвычайно трудным для меня и тех людей, которых я спрашивал. Видимо никто просто не сталкивался с такой проблемой.
Но варианты решения есть. Первый вариант подсказал Александр Щукин - декан Факультета переподготовки специалистов СПбГПУ. Он предложил сделать несколько разделов в документе. А гиперссылка должна быть в том разделе, где нет полей формы.
Секреты Word. Как отформатировать реферат
Метки: макросы | программы | реферат | форматирование
Дата: 29/11/2006 12:38:52
Иногда процесс оформления реферата стоит студенту уйму нервов и времени, особенно если въедливый преподаватель постоянно придирается к оформлению: то шрифт большой или полужирный, то параграфы не так отформатированы.
Избежать подобных проблем, легко и просто оформить реферат поможет специальный макрос "Реферат без проблем" для текстового редактора Microsoft Word от Сергея Шершнева. После установки программы, ее панель инструментов добавляется к набору элементов управления Word.
Создайте свой стиль подчеркивания
Метки: макросы | стили | форматирование
Дата: 20/11/2006 15:28:44
Большинство пользователей текстового редактора Word, когда им необходимо подчеркнуть что-либо в тексте, используют встроенный в панель форматирования инструмент подчеркивания .
Благодаря этому инструменту текст подчеркивается сплошной тонкой линией.
К сожалению, изменить тип этой линии на другой тип, используемый по-умолчанию по клику на кнопке подчеркивания, в редакторе не удастся. Но можно создать свой мини-макрос и заменить им стандартный инструмент.
Удаление лишних пробелов в тексте документа
Метки: лишние пробелы | макросы | поиск и замена | форматирование
Дата: 14/11/2006 19:31:08
Хочу поделиться одним простеньким приёмом, который я часто использую.
Нередко неопытные пользователи вставляют в текст несколько пробелов подряд. Такие повторные пробелы между словами делают интервалы неравномерными, а текст - неаккуратным. Иногда таким образом отмечают красную строку, иногда - используют пробелы вместо установки позиции табуляции. Это затрудняет переформатирование текста.
Поиск и выделение иностранного текста в документе
Метки: макросы | поиск и замена
Дата: 30/10/2006 18:12:30
Вопрос:
Помогите сэкономить силы при работе с Word. В англоязычный текст в круглые скобки я вставляю перевод на русский язык. Для удобства делаю перевод зеленым. Как сделать так, чтобы в данном документе шрифт печатаемого текста был зеленым, а имеющийся текст оставался "авто"?
Насколько я понял, весь документ состоит из английского текста, и лишь некоторые включения делаются на русском языке.
Значит самый простой вариант - это сделать макрос, который бы просто находил все вхождения в тексте на русском языке и окрашивал их в какой-нибудь цвет:
Макрос для работы с закладками
Я уже писал заметку о создании закладок в документе.
Закладки очень помогают при работе с документом, позволяя быстро отмечать нужные места в тексте и так же быстро их находить и перемещаться.
Однако стандартный метод создания закладки не слишком быстр и удобен. Здесь на помощь приходят макросы.
В замечательной книге Microsoft Word: комфортная работа с помощью макросов авторы описывают создание такого специальных макросов для работы с закладками.
Когда необходимо в процессе чтения или редактирования документа отметить для себя какой-то фрагмент текста, вы нажимаете кнопку на панели инструментов или назначенное сочетание клавиш и в текст вставляется закладка. Чтобы вернуться позже к этому фрагменту достаточно нажать другое сочетание клавиш.
В этой заметке я опишу процесс создания макросов своими словами с опорой на источник.
Быстрое перемещение между открытыми документами Word
Если у вас открыто несколько документов Word, с которыми вы одновременно работаете, то для перемещения между ними вы, вероятно, выбираете нужные вам документы из списка в меню Окно (Window).
Хотя, возможно, вы знаете и более быстрый способ: используя сочетания клавиш Ctrl + F6 или Shift + Ctrl +F6.
Сочетание Ctrl + F6 позволяет перемещаться от самого последнего созданного документа (по времени) к первому (в обратном порядке), в то время как сочетание Shift + Ctrl +F6 позволяет перемещаться между документами в порядке очередности их создания - от первого к последнему.
Если вам использовать указанные сочетания клавиш по каким-то причинам неудобно, то можно воспользоваться следующим макросом:
Как преобразовать гиперссылки в документе Word в обычный текст
Метки: гиперссылки | макросы | преобразование
Дата: 11/09/2006 20:56:51
На днях я написал коротенькую заметку "Убей гиперссылку", где дал совет по быстрому превращению гиперссылки в обычный текст.
А один из читателей моей рассылки - Евгений - задал мне вопрос: можно ли как-то автоматизировать этот процесс? Это может пригодиться, когда таких ссылок большое количество.
Теперь я готов ответить на этот вопрос положительно. На сайте Allen L. Wyatt я нашел описание небольшого макроса, который позволяет удалить мгновенно из документа все гиперссылки, преобразовав их в обычный текст. Ниже привожу код и инструкцию по его внедрению в Word.
Как при печати документа Word вывести имя автора
Метки: колонтитулы | макросы | печать | поля
Дата: 31/08/2006 16:24:03
Вопрос:
На предприятии много сотрудников, готовящих документы. Как сделать так, чтобы на отпечатанной странице (автоматически) выводилось имя автора документа (типа {LASTSAVEDBY}) или имя пользователя ПК?
На мой взгляд, автоматически выводить при печати документа какие бы то ни было сведения не получится, если принудительно заранее не включить эти сведения в документ.
Я вижу следующий вариант решения в вашей ситуации.
Как исправить текст, набранный не в той раскладке
Метки: кодировка | макросы | программы | раскладка
Дата: 26/08/2006 18:15:30
Вопрос:
Расскажите, пожалуйста, как можно сделать следующее. Например, печатаешь текст, уже много напечатал, поднимаешь глаза - а там абра-кадабра китайская. А все потому, что забыл переключиться с английского на русский после знаков вопроса, англ терминов и др.
У меня такое бывает нередко. По старинке, стираю все, переключаюсь, перенабираю. Но, Вы, наверное, знаете какой-нибудь более эффективный способ. Например, можно ли создать кнопку на панели инструментов, нажав на которую текст станет читаемым и сэкономится время на исправление собственной же рассеянности.
Может, такое возможно?
Мануковский Роман.
Да, возможно. Вообще, можно было бы здесь привести код для соответствующего макроса, позволяющего переводить ошибочно набранный текст в нужную кодировку. Но я нашел более легкое решение: я дам ссылку на одну программку, которая самостоятельно установит в панель инструментов редактора Word свои две кнопки (для русской раскладки и латинской).
Как автоматически вставить колонтитулы
Метки: колонтитулы | макросы
Дата: 18/08/2006 13:57:31
Вопрос:
Как можно в файл автоматически вставлять колонтитулы? Чтобы при сохранении файла, создавались колонтитулы с указанием полного пути файла на компьютере, желательно и с указанием сетевого имени компьютера.
На мой взгляд одновременно с сохранением файла вставлять колонтитулы будет не совсем верно, поскольку файл вы можете сохранять много раз (при редактировании), а вставка колонтитулов это, как правило, одноразовое действие.
Предлагаю такой способ (запись макроса).
Имя файла на автомате
Метки: FileSaveAs | автоматизация | макросы | поиск и замена
Дата: 28/07/2006 21:51:19
Недавно на сайте wordtips.vitalnews.com я прочитал об интересном макросе, который позволяет автоматически (без вызова команды Сохранить как (Save as) из меню) сохранять ваш документ с именем, уже включающим в себя текущую дату и словом/буквой, которое вы можете определить по своему усмотрению.
Это может понадобиться, когда вы создаете однотипные документы под одним и тем же именем, отличающиеся друг от друга лишь датой создания.
Как отобразить границы текста?
Вопрос от Гарри по автоматическому отображению границ области текста в Word:
Как известно, набирать и корректировать текст значительно удобнее, если на страницах установлены границы текста. Поэтому до набора текста, при открытии нового файла вхожу в Tools (у меня интерфейс на английском) => Options => View => и ставлю "галочку" перед Text Boundaries, другими словами, устанавливаю границы текста в надежде, что файл для набора следующего текста будет открываться уже с этими установленными границами. Увы, этих действий хватает только для того текста, перед набором которого были установлены границы. Для набора следующего текста приходится повторять процедуру с установкой границ текста опять. Как решить проблему?
Да, для некоторых пользователей Word наличие в документе границ ввода текста достаточно удобная функция. К сожалению, эта функция или опция не сохраняется автоматически после закрытия документа. Новый запуск редактора, а я сейчас имею в виду версии Word XP и Word 2003, создает новый документ без этих границ.
Как расположить два открытых документа Word рядом: полезная макрокоманда
Неделю тому назад (5 июля 2006г.) один из читателей моей почтовой рассылки Леонид Бродский прислал очень полезный совет по удобному способу вычислений в таблицах Word. Этот совет я опубликовал здесь.
А теперь Леонид предлагает установить на панель инструментов дополнительные кнопки, повышающие удобство работы с текстовым редактором Word 2002. В частности мне показалась очень интересной кнопка, позволяющая выставлять окна открытых документов рядом друг с другом по вертикали. Стандартная команда Word делает почти то же самое, кроме одного - открытые документы выстраиваются друг под другом горизонтально (в версии Word 2003 уже есть команда выстроить окна по вертикали).