Макрос сохранить как слово

Обновлено: 21.11.2024

Спасибо. Мы получили ваш запрос и незамедлительно ответим.

Присоединяйтесь к нам!

  • Общаться с другими участниками
  • Уведомления об ответах
    на ваши сообщения
  • Поиск по ключевым словам
  • Доступ в один клик к вашим
    любимым форумам
  • Автоматические подписи
    на ваших сообщениях
  • Лучше всего то, что это бесплатно!

*Функции Tek-Tips зависят от того, получают ли участники электронную почту. Присоединяясь, вы соглашаетесь на получение электронной почты.

Правила публикации

Реклама, продажа, рекрутинг, размещение курсовых и дипломных работ запрещено.

Макрос для сохранения Word.docx с текстом заголовка этого документа

Макрос для сохранения Word.docx с текстом заголовка этого документа

Привет,
Я новичок в Macro-country для MSWord.
Хотелось бы создать макрос, который сохранил бы мой файл MSWord с именем файла, совпадающим с заголовком документа. Если это сработает, я хотел бы добавить пользовательский значок в мой предпочтительный список, активирующий этот макрос. Это выполнимо? И если да, то кто-нибудь готов помочь мне?
Будьте здоровы,
Коэн

Как получилось, что у этого документа есть заголовок, но он не сохранен?
Сколько абзацев в заголовке и какой из них вы хотите использовать?
Есть ли в заголовке какой-либо другой контент, кроме обычного текста (например, вкладки, изображения и т. д.)?
Какой заголовок вы хотите захватить (документы Word имеют три объекта заголовка)?

Ура!
Пол Эдштейн
[MS MVP – Word]

Павел,
При создании документа первое, что нужно сделать в этом бизнес-правиле, это сделать заголовок. Заголовок содержит только один абзац и только текст, без картинок. Заголовок для всех страниц/абзацев документа. Заголовок содержит только один столбец и представляет собой чистый текст.
Этот дополнительный пустой документ теперь сохраняется следующим образом:
после создания заголовка содержимое C&P. Файл сохранен, а в поле имя файла заголовок C&V.
Все это работает нормально, пока вам по какой-то причине не придется изменить заголовок. Тогда вы получите 2 saged docs, где первый сохранен с неправильным именем.
Было бы удобно иметь кнопку SaveWithHeaderContent без этих C&P и C&V
Было бы неплохо, если бы макрос заменял старое имя файла на новое имя файла
На случай, если нет содержимого заголовка и пользователь сохраняет файл чем можно ввести имя файла в поле.
А логично ли и тем более выполнимо ли сделать такую ​​кнопку?
Будь здоров,
Коэн

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

Ура!
Пол Эдштейн
[MS MVP – Word]

Пол,
две вещи: как я сказал в своем 1-м сообщении "Я новичок в стране макросов для MSWord", так где я могу найти "Этот модуль документа", а также я считаю, что макрос должен быть активируется/присутствует, когда я открываю новый документ, как я могу быть в этом уверен?
Я намеревался просто открыть новый пустой документ MSWord, установить заголовок и щелкнуть значок (недавно добавленный), который активирует макрос для сохранения документа в виде файла с именем = содержимое заголовка.
Возможно ли это?
Будь здоров,
Коэн

Чтобы сделать макрос доступным для всех документов на основе шаблона, который вы используете для этого, добавьте макрос в модуль кода шаблона «Этот документ». Для этого откройте существующий документ на основе шаблона или создайте новый, затем нажмите Alt-F11, чтобы открыть редактор VBA. На (верхней) левой панели вы увидите ссылку на ваш документ, а над ней ссылку на его шаблон. Нажмите на запись «Объекты Microsoft Word», чтобы развернуть ее, затем нажмите на модуль кода «Этот документ», чтобы открыть его. Скопируйте код макроса из сообщения выше и вставьте его в модуль кода «Этот документ». Нажмите Alt-F11, чтобы открыть редактор VBA, затем выйдите из Word, не забыв разрешить ему сохранить изменения в шаблоне. Обратите внимание: если ваш шаблон ранее был сохранен в формате .dotx, теперь его необходимо сохранить в формате .dotm (т. е. как шаблон с поддержкой макросов).

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

Ура!
Пол Эдштейн
[MS MVP – Word]

> код для перехвата таких действий намного сложнее и может привести к значительному снижению производительности

Не уверен, что согласен, вам действительно нужно реагировать только на событие WindowSelectionChange

Strongm,
Интересно, не могли бы вы сконструировать для меня такой макрос:
сохранить файл как (заголовок this.file)
а затем
назначить это макрос на кнопку, которую я мог бы добавить на свою панель быстрого доступа (панель, на которой вы размещаете свои собственные кнопки настроек, прямо над вкладкой «Пуск».

было бы здорово!
С уважением,
Будьте здоровы,
Коэн

Цитата:

Точно. Это влечет за собой гораздо больше кода, чем макрос, который я предоставил, и замедлит работу Word, срабатывая каждый при изменении выделения.

Ура!
Пол Эдштейн
[MS MVP – Word]

Цитата:

Как и предоставленный мной макрос, макросы событий WindowSelectionChange запускаются автоматически — вы не назначаете им кнопки. Панель быстрого доступа, как вы ее называете, – это панель быстрого доступа (QAT).

Ура!
Пол Эдштейн
[MS MVP – Word]

Да, я согласен с тем, что OP действительно хочет/нуждается в кнопке с простым кодом, как в ваших сообщениях.

Тем не менее, я все же не согласен с вами — принятие этого может быть просто личным мнением — о сложности и снижении производительности кода для отслеживания переключения между заголовком и за его пределами (но повторюсь, такой фрагмент кода не мне кажется подходящим в качестве решения для ОП); на моей машине активация соответствующего обработчика событий при переключении выбора с верхнего колонтитула на нижний колонтитул (наихудший сценарий из моего тестирования) добавляет накладные расходы примерно на 1,5 мс, что по сравнению со скоростью фактического изменения выбора (около 28 мс на моей машине для этого сценарий), или пользователь щелкает или печатает (мы, люди, такие медленные), его можно в значительной степени игнорировать. И помните, что он срабатывает только при изменении выбора, а не при каждом нажатии клавиши (конечно, ясно, что если вы поместите много-много медленного кода, который вызывается для каждого отдельного изменения выбора, вы увидите какое-то замедление - но это не то, что я'' я предлагаю)

Мистер/миссис. Strongm
Кусок кода мистер/миссис. Macropod может работать, но поверьте мне, это не то, что я ищу.
Чтобы активировать этот код, мне нужно создать шаблон с этим макросом.
Каждый раз, когда я хочу, чтобы этот код работал, я должен сначала открыть этот шаблон, поправьте меня, если я ошибаюсь.
Я просто хочу открыть новую пустую форму MS-word и иметь дополнительную кнопку на моем QAT, которая вместо функции сохранения по умолчанию сохранит форму как текст, указанный в заголовке.
Это невозможно, так тому и быть, и мне придется продолжить свою работу с C&V в заголовке, сохранить как, C&P в поле «имя файла».
Это работает нормально, пока мне не нужно что-то изменить в заголовке, в этом случае я получаю две версии, что раздражает.
Так что, если вы можете создать для меня макрокнопку, это будет хорошо.
С уважением,
Будьте здоровы,
Коэн Пиллер

вставьте макрос в normal.dotm
создайте свою кнопку в меню контроля качества и наведите ее на макрос

Есть и другие способы, но это самый простой

Цитата:

Каждый документ Word основан на шаблоне. Вы не можете избежать этого. Документы с вашими конкретными требованиями должны быть основаны на собственном шаблоне, который должен быть ничем иным, как документом с шаблонным содержимым, сохраненным в качестве шаблона. Вряд ли что-то сложное сделать.

Цитата:

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

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

Цитата:

Я просто хочу открыть новую пустую форму MS-word и иметь дополнительную кнопку на моем QAT, которая вместо стандартной функции "сохранить как" сохранит форму как текст, указанный в заголовке.

За исключением совершенно ненужной кнопки, код, который я предоставил, делает то, что вы просили.

Мне кажется, вас больше заботит поиск ошибок в решении, которое отличается от того, что вы просили, независимо от того, что решение лучше во многих отношениях, и без учета того, как на самом деле работает Word. Возникает вопрос, не удосужились ли вы хотя бы попробовать макрос, прежде чем решить «придраться» к нему.

Ура!
Пол Эдштейн
[MS MVP – Word]

Если вы не набрали "Doc1" в заголовке страницы, вы либо не включили макросы, если в диалоговом окне "Файл Сохранить как" отображается "Doc1", либо вы сделали что-то еще, из-за чего макрос не работает правильно (например, вы не не копируйте и не вставляйте его точно так, как есть, в VBE). Если бы вы включили макросы, сохранение документа с макросом, который я указал в шаблоне (или в самом документе, если на то пошло), автоматически представило бы диалоговое окно «Файл Сохранить как» с первым абзацем содержимого вашего заголовка в качестве предлагаемого имени. Кнопки не требуются.Я знаю, что это работает - я только что перепроверил. Даже с кнопкой ничего не произойдет, если вы не включите макросы.

Более того, если вы не поместите какой-либо макрос, который хотите использовать, в шаблон документа, вам придется добавить его в каждый документ, над которым вам нужно работать, и сохранить этот документ в формате docm. Как видите, лучше всего использовать шаблон.

Ура!
Пол Эдштейн
[MS MVP – Word]

Цитата (Пол)

Цитата (Пол)

если в диалоговом окне "Файл Сохранить как" отображается "Doc1" или вы сделали что-то еще, из-за чего макрос не работает правильно (например, вы не скопировали и не вставили его в VBE в том виде, в котором он есть).

Я повторно скопировал и сохранил ваш макрос.

Хммм 'funny1', когда я открываю макрос (нажимаю кнопку Edit) и выбираю макрос FileSave, он выдает ошибку, чтобы изменить его ошибку с 'Подфункция не определена'
Hmmm 'funny2'when Я нажимаю кнопку «Выполнить», выдает ошибку «Макросы включены для его проекта, пожалуйста, обратитесь к онлайн-справке для «хост-приложения», чтобы проверить, как следует активировать макросы».
К сожалению, мой справочный текст не дает никакого решения по «hostapplication» или оригинальному слову в моем файле справки на голландском языке, которое является несуществующим словом на голландском языке, «hosttoepassing».
Вы продолжаете говорить мне, что «кнопки не требуются», макрос выполняется автоматически.
Всякий раз, когда я пытаюсь записать/создать макрос, первым подсказкой является кнопка или клавиатура. У меня сложилось впечатление, что я могу назначить свой макрос кнопке.

А если бы я поместил его в Normal.dot?

Возможно, идея не так уж и хороша, лучше держать Ctrl-V + Ctrl+P и удалять ненужные файлы вручную.
Спасибо за ваше время, я ценю это. Извините, если я не могу понять. Извините.

Будь здоров,
Коэн

Цитата:

когда я открываю макрос (нажимаю кнопку «Редактировать») и выбираю макрос «Сохранить файл», он выдает ошибку, чтобы изменить его ошибки с «Подфункция не определена»

Поскольку макрос использует только стандартные функции Word VBA, это подтверждает, что вы где-то допустили ошибку. Я не могу представить, как ты мог так все испортить.

Цитата:

когда я нажимаю кнопку «Выполнить», появляется ошибка «Макросы включены для его проекта, пожалуйста, обратитесь к онлайн-справке для «хост»-приложения, чтобы проверить, как макросы должны быть активированы».

Кнопки "Выполнить" нет. Предположительно, вы имеете в виду кнопку «Выполнить». Более того, то, что вы говорите, сообщение об ошибке не имеет смысла. Предположительно, он на самом деле начинается с «Макросы не включены для этого проекта», поэтому макрос не запускается — несмотря на то, что вы постоянно говорите, вы не разрешили Word запускать макросы.

В вашем предыдущем сообщении также упоминалось:

Цитата:

Если после этого я изменю заголовок, исходное имя файла должно быть перезаписано содержимым заголовка nem.

Это не то, о чем вы изначально просили, и это не то, что делает макрос. Хотя он сохраняет файл с новым именем, он не перезаписывает и не удаляет старое. Для этого потребуется дополнительный код.

Ура!
Пол Эдштейн
[MS MVP – Word]

Paul,
Чтобы исправить несколько вещей:
1) «выполнить» - это перевод моей голландской настройки, его также можно запустить, cfmd.
2) действительно я пропустил "не" в своем сообщении к вам, извините за это.
3) Я не помню, чтобы говорил вам, что не разрешаю Word запускать макросы, я нажал кнопку, отмеченную, опять же в переводе с голландского, «включить содержимое» в желтом поле при запуске документа.
4) последняя часть действительно добавлена ​​в мой первый исходный пост.

Спасибо за ваше время,
я сдаюсь и продолжу с помощью Ctrl+V и Ctrl+P
Будьте здоровы,
Koen

Цитата:

Хотелось бы создать макрос, который сохранил бы мой файл MSWord с именем файла, совпадающим с заголовком документа.

Это делает макрос. В сообщении ничего не говорится об удалении или замене каких-либо файлов.

Ваше второе сообщение добавлено:

Цитата:

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

Цитата:

Я нажал кнопку, помеченную (опять же в переводе с голландского) "включить контент" в желтом поле при запуске документа.

Таких запросов может быть два: один для включения редактирования и один для включения макросов. В любом случае, очевидно, что у вас не включены макросы.

Ура!
Пол Эдштейн
[MS MVP – Word]

Возможно ли, что из-за того, что у меня был установлен Office365, подписка на который тем временем не продлена, а на моей машине работает Office 2010, Word запутался в том, какой normal.dot использовать?
(Офис 365 - это не ness.на этом компьютере больше, и я отлично работаю с Office 2010.)

Я ожидаю, что будет только один файл Normal.dotm. В любом случае, если вы добавите код в любой файл Normal.dotm, который Word использует с Office 2010, макрос будет работать с Office 2010. Аналогичным образом, если вы добавите код в любой файл Normal.dotm, который Word использует с Office 365, макрос будет работать с Office. 365.

Тем не менее, Normal.dotm — это единственный шаблон, в который я бы не добавлял код.

Ура!
Пол Эдштейн
[MS MVP – Word]

Ну, тогда это может быть моей проблемой. У меня есть 2 файла normal.dotm на этом компьютере.
один в ..Microsoft\Sjablonen (Sjablonen в переводе с голландского означает «шаблоны») размером 26 КБ от 29 июня 2010 г. и один в формате . Microsoft\Templates всего 19 КБ от 27.04.2019
Какой посоветуете удалить?

Будь здоров,
Коэн

Я предлагаю вам проверить обе установки Office, чтобы узнать, какой Normal.dotm они используют. См. Файл|Параметры|Дополнительно>Общие>Расположение файлов. Расположение по умолчанию:
C:\Users\%Username%\AppData\Roaming\Microsoft\Templates\
Если каждый из них использует другой Normal.dotm, измените настройки на тот, который вы считаете уместно указывать на Normal.dotm, используемый другим. Прежде чем удалить другой, я предлагаю вам проверить, какие настройки у него есть, чтобы вы могли перенести их на тот, который вы сохраняете, если это уместно.

Ура!
Пол Эдштейн
[MS MVP – Word]

Отправлено предупреждение

Благодарим вас за помощь в защите форумов Tek-Tips от неприемлемых сообщений.
Персонал Tek-Tips проверит это и примет соответствующие меры.

Ответить в этой теме

Размещение сообщений на форумах Tek-Tips доступно только для участников.

Нажмите здесь, чтобы присоединиться к Tek-Tips и пообщаться с другими участниками! Уже участник? Войти

Я создал макрос в Word и сохранил файл в OneDrive. Однако если я открою файл Word на другом компьютере (из моего OneDrive), макрос будет недоступен. Как я могу сохранить файл Word С макросом?

У меня также есть листы Excel, содержащие макросы, и они доступны независимо от того, где я открываю лист Excel.

Эта тема заблокирована. Вы можете подписаться на вопрос или проголосовать за него как полезный, но вы не можете отвечать в этой теме.

Сообщить о нарушении

Домогательство – это любое поведение, направленное на то, чтобы побеспокоить или расстроить человека или группу людей. К угрозам относятся любые угрозы самоубийства, насилия или причинения вреда другому человеку. Любой контент на тему для взрослых или неуместный для веб-сайта сообщества. Любое изображение, ссылка или обсуждение наготы. Любое поведение, которое является оскорбительным, грубым, вульгарным, оскверняет или демонстрирует неуважение. Любое поведение, которое может нарушать лицензионные соглашения с конечными пользователями, включая предоставление ключей продукта или ссылок на пиратское программное обеспечение. Незапрашиваемая массовая рассылка или массовая реклама. Любые ссылки на вирусы, шпионское ПО, вредоносное ПО или фишинговые сайты или их пропаганда. Любой другой неприемлемый контент или поведение, как это определено Условиями использования или Кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другим жестоким обращением с детьми или их эксплуатацией.

Макросы должны храниться в документах с поддержкой макросов (*.docm) или шаблонах (*.dotm).

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

Сообщить о нарушении

Домогательство – это любое поведение, направленное на то, чтобы побеспокоить или расстроить человека или группу людей. К угрозам относятся любые угрозы самоубийства, насилия или причинения вреда другому человеку. Любой контент на тему для взрослых или неуместный для веб-сайта сообщества. Любое изображение, ссылка или обсуждение наготы. Любое поведение, которое является оскорбительным, грубым, вульгарным, оскверняет или демонстрирует неуважение. Любое поведение, которое может нарушать лицензионные соглашения с конечными пользователями, включая предоставление ключей продукта или ссылок на пиратское программное обеспечение. Незапрашиваемая массовая рассылка или массовая реклама. Любые ссылки на вирусы, шпионское ПО, вредоносное ПО или фишинговые сайты или их пропаганда. Любой другой неприемлемый контент или поведение, как это определено Условиями использования или Кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другим жестоким обращением с детьми или их эксплуатацией.

1 человек нашел этот ответ полезным

Был ли этот ответ полезен?

Извините, это не помогло.

Отлично! Благодарим за отзыв.

Насколько вы удовлетворены этим ответом?

Спасибо за ваш отзыв, он помогает нам улучшить сайт.

Насколько вы удовлетворены этим ответом?

Спасибо за отзыв.

По умолчанию макросы Word сохраняются в шаблоне Normal.dotm, который находится только на вашем компьютере.

Когда вы создаете или записываете макрос, вы можете вместо этого сохранить его в текущем документе, но вы должны сделать этот выбор; кроме того, документ должен быть сохранен как файл типа "Macro-enabled (.docm)", а не .docx.

После того как макрос появится в шаблоне Normal.dotm, вы можете переместить его в документ (сначала используйте команду "Сохранить как", чтобы сохранить его как файл .docm, а затем удалите версию .docx). Для этого нажмите Alt+F11, чтобы открыть редактор макросов. Разверните значок «Обычный» на панели «Проекты» слева. Затем разверните значок «Модули» под ним. Щелкните правой кнопкой мыши значок модуля, содержащего макрос, и выберите «Экспорт файла». Откроется диалоговое окно «Экспорт», которое выглядит так же, как диалоговое окно «Сохранить как». Выберите папку и имя файла (расширение автоматически будет «.bas») и нажмите «Сохранить».

Теперь щелкните правой кнопкой мыши проект вашего файла .docm и выберите «Импорт файла». Перейдите в папку, в которой вы сохранили экспортированный файл, выберите файл и нажмите «Открыть». Экспортированный модуль теперь будет добавлен в проект. Сохраните файл .docm.

Наконец, перейдите в модуль в проекте Normal и удалите там код вашего макроса, чтобы не было двух макросов с одинаковым именем (что может вызвать проблемы). Затем сохраните обычный файл.

Когда вы загружаете документ .docm (и удаляете версию .docx из OneDrive), другие компьютеры будут иметь доступ к макросу в своей загруженной копии — при условии, что они настроили свои настройки центра управления безопасностью для включения макросов и что они разблокируют документ в диалоговом окне свойств документа.

Сообщить о нарушении

Домогательство – это любое поведение, направленное на то, чтобы побеспокоить или расстроить человека или группу людей. К угрозам относятся любые угрозы самоубийства, насилия или причинения вреда другому человеку. Любой контент на тему для взрослых или неуместный для веб-сайта сообщества. Любое изображение, ссылка или обсуждение наготы. Любое поведение, которое является оскорбительным, грубым, вульгарным, оскверняет или демонстрирует неуважение. Любое поведение, которое может нарушать лицензионные соглашения с конечными пользователями, включая предоставление ключей продукта или ссылок на пиратское программное обеспечение. Незапрашиваемая массовая рассылка или массовая реклама. Любые ссылки на вирусы, шпионское ПО, вредоносное ПО или фишинговые сайты или их пропаганда. Любой другой неприемлемый контент или поведение, как это определено Условиями использования или Кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другим жестоким обращением с детьми или их эксплуатацией.

Нет необходимости заново создавать макросы Microsoft Word при переходе на новый компьютер.


Изображение: Getty Images/iStockphoto

Вы используете Microsoft Word и сохранили большую коллекцию макросов для облегчения своей работы. Теперь вы переходите на другой компьютер и хотите взять эти макросы с собой. Нет проблем: вы можете импортировать макросы Word с одного компьютера на другой.

Вы можете передавать макросы по крайней мере несколькими способами. Я расскажу о двух способах, которые мне подходят. Для этого процесса я использую последнюю версию Word по подписке на Office 365, но шаги одинаковы для последних нескольких версий Word.

Как скопировать файл шаблона Word Word Normal.dotm

Первый способ заключается в копировании стандартного шаблона Normal.dotm, на котором основаны все новые документы Word. В этом шаблоне хранятся макросы, которые вы добавили в Word, а также другие параметры и настройки.

<р>1. Откройте Word на своем текущем компьютере.
2. Перейдите на вкладку «Вид», выберите значок «Макросы» и выберите «Просмотр макросов» (рис. A).

Рисунок А

<р>3. Убедитесь, что для параметра Входящие макросы установлено значение Normal.dotm (Глобальный шаблон) и что в списке перечислены все макросы, которые вы хотите перенести на новый компьютер (рис. B).

Рисунок Б

<р>4. Закройте окно «Макросы» и выйдите из Word.
5. Откройте проводник или проводник Windows и перейдите к C:Users[имя пользователя]AppDataRoamingMicrosoftTemplates. (Если папка AppData не отображается, перейдите на вкладку «Вид» и установите флажок «Скрытые элементы».)
6. Выберите и скопируйте файл Normal.dotm в эту папку (рис. C).
7. Вставьте файл в место, доступное для вашего нового компьютера, например в общую сетевую папку, съемный жесткий диск или USB-накопитель.

Рисунок C

<р>8. Перейдите на новый компьютер.
9. Откройте проводник или проводник Windows и перейдите к C:Users[имя пользователя]AppDataRoamingMicrosoftTemplates.
10. Переименуйте существующий файл Normal.dotm во что-то вроде Normal-old.dotm.
11. Скопируйте и вставьте файл Normal.dotm с другого компьютера (рис. D).

Рисунок D

<р>12. Откройте Microsoft Word.
13. Перейдите на вкладку «Вид», выберите значок «Макросы» и выберите «Просмотреть макросы». Теперь вы должны увидеть макросы со своего старого компьютера (рис. E).

Рисунок E

Копируя весь шаблон Normal.dotm, вы переносите не только все макросы, но и другие параметры и настройки, которые вы можете или не хотите применять к Word на новом компьютере. Если вам нужны только макросы, а не другие настройки, воспользуйтесь другим подходом.

Как копировать только макросы

<р>1. Скопируйте файл Normal.dotm со своего старого компьютера и вставьте его в сетевую папку, на съемный жесткий диск или на USB-накопитель.
2. Переименуйте файл из Normal.dotm во что-то вроде Normal-new.dotm и вставьте этот файл в папку C:Users[имя пользователя]AppDataRoamingMicrosoftTemplates на новом компьютере.
3. Откройте Word на новом компьютере.
4. Перейдите на вкладку «Вид», выберите значок «Макросы» и выберите «Просмотреть макросы».
5. В окне «Макросы» нажмите кнопку «Органайзер» (рис. F).

Рисунок F

<р>6. В окне «Органайзер» нажмите кнопку слева, чтобы закрыть файл.
7. Нажмите ту же кнопку, чтобы открыть файл.
8. Выберите файл Normal-new.dotm, который вы вставили ранее. В файле должна быть запись для NewMacros.
9. Убедитесь, что правая часть окна указывает на Normal.dotm в качестве цели.
10. Выберите запись для NewMacros и нажмите кнопку «Копировать» (рис. G). Запись для NewMacros теперь отображается справа.

Рисунок G

<р>11. Закройте окно Организатора.
12. Щелкните значок «Макросы» и выберите «Просмотр макросов». Теперь вы должны увидеть макросы, которые вы скопировали в шаблон Normal.dotm на новом компьютере (рис. H).

Рисунок Н

Еженедельный информационный бюллетень Microsoft

Будьте инсайдером Microsoft в своей компании, прочитав эти советы, рекомендации и памятки по Windows и Office.

Мы являемся одним из ведущих издателей технических книг в Великобритании. Мы опубликовали более 7 000 книг, видео, статей и руководств.

При работе с VBA для Excel вы можете подумать, что ваш код будет работать только с Excel. Однако тот факт, что VBA (Visual Basic для приложений) является общим для всех приложений в составе Office Suite, открывает массу возможностей.

Например, вы можете собирать данные в Excel через пользовательскую форму, а затем автоматически экспортировать их в документ Word. Прелесть этого в том, что все выполняется в фоновом режиме. Другими словами, вам не нужно вручную копировать данные из Excel, искать нужный документ Word, чтобы вставить эту информацию, сохранять файл, а затем снова закрывать Word.

В этой статье мы рассмотрим рецепты для:

  • Создание нового экземпляра Word
  • Написание и форматирование текста
  • Копирование данных в Word
  • Использование шаблонов и закладок

К концу вы сможете создавать документы Word из Excel.

Технические требования

Эти рецепты были написаны и разработаны для использования с MS Office 2019 и MS Office 365, установленными в Windows 8, 8.1 или 10.

Если ваше аппаратное и программное обеспечение соответствует этим требованиям, все готово.

Создание нового экземпляра Word

Первый шаг в процессе создания документа Word из Excel требует внесения некоторых изменений в доступные ссылки. Чтобы быть конкретным, мы должны установить ссылку на библиотеку объектов Word в редакторе VBA. Без этого шага Excel вообще не сможет взаимодействовать с Word, не говоря уже о создании документов и абзацев.

В этом рецепте мы будем создавать новый экземпляр Word из Excel.

Подготовка

Откройте Excel и активируйте новую книгу. Сохраните файл как файл с поддержкой макросов (*.xlsm) на рабочем столе и назовите его Word_Interaction.xlsm. Лист1 должен быть активен. Нажмите Alt + F11, чтобы переключиться в редактор VBA, а затем вставьте новый модуль.

Само собой разумеется, что MS Word также должен быть установлен на вашем компьютере, чтобы инструкции этого рецепта работали эффективно.

Как это сделать…

Вот как связать Word с Excel:

<р>1. В редакторе VBA щелкните Инструменты | Использованная литература.Откроется диалоговое окно «Ссылки — VBAProject»:

Рисунок 1. Диалоговое окно «Ссылки — VBAProject»

<р>2. Прокрутите список доступных ссылок, пока не найдете библиотеку объектов Microsoft Word 16.0. Более ранние версии Word будут иметь другой номер, но по-прежнему будут ссылаться на библиотеку объектов Word:

Рисунок 2. Выбрана библиотека объектов Microsoft Word 16.0

<р>3. После выбора нажмите OK, чтобы сохранить выбор и закрыть диалоговое окно.

Примечание. Ссылка на библиотеку объектов Word действительна только для книги Excel, в которой вы сейчас работаете. Каждая новая книга должна быть точно так же привязана к Word.

<р>4. Создайте процедуру Sub для запуска Word из Excel. Есть несколько способов сделать это, но для этого рецепта мы будем использовать эту конкретную технику:

<р>5. Нажмите F5, чтобы запустить процедуру или протестировать ее, если хотите. На вашем экране появится новый экземпляр Word. Закройте приложение Word, когда убедитесь, что процедура Sub работает.

<р>6. Открытие Word без открытия нового документа не очень удобно. Добавьте следующие строки кода в процедуру Sub, чтобы открыть новый документ:

Примечание. Поскольку нам нужно использовать ключевое слово Word.Application каждый раз, когда мы обращаемся к MS Word, структура цикла упрощает обращение к Word.Application через переменную wdApp.

  • Если вы сейчас запустите процедуру, Word снова откроется, на этот раз отобразив новый документ Document1.
  • Закройте Word, но не сохраняйте документ. Вернитесь в редактор VBA в Excel.

Эти шаги позволят вам создать новый экземпляр Word из Excel, используя VBA для Excel.

Как это работает…

Включение библиотеки объектов Microsoft Word для этой книги Excel позволило использовать ключевые слова и методы Word в Excel. Эти ключевые слова могут открыть экземпляр Word, а также новый документ Word из Excel.

Написание и форматирование текста

Очень хорошо знать, как открыть Word с новым доступным документом. Однако нам нужно больше, чем это. Заголовок для нового документа был бы хорошим началом, но этого еще недостаточно. Форматирование заголовка также необходимо, и оно профессионально округлит его.

В этом рецепте мы будем писать и форматировать текст.

Подготовка

Убедитесь, что файл Word_Interaction.xlsm все еще открыт и что редактор VBA активен.

Как это сделать…

Вот шаги для ввода и форматирования текста в Word:

<р>1. Чтобы добавить текст в документ Word через Excel, добавьте следующую строку кода:

<р>2. Нажмите F5. Запуск процедуры Sub теперь приведет к созданию нового экземпляра Word с новым открытым документом и строкой текста в процедуре Sub в верхней части страницы. Закройте Word без сохранения, так как в нашу процедуру в Excel нужно добавить еще код:

Рисунок 3. Новый экземпляр Word с документом и текстом

<р>3. Совершенно очевидно, что нам нужно сделать некоторое форматирование здесь. Запустив структуру вложенного цикла, мы избавим нас от повторения ключевых слов. Кроме того, если вы еще этого не сделали, вы можете использовать IntelliSense, чтобы помочь вам со всеми ключевыми словами Word. Добавьте следующие строки кода в редактор VBA:

<р>4. Когда вы сейчас запустите процедуру Sub, внешний вид заметно улучшится:

Рисунок 4. Форматирование, выполненное с помощью VBA в Excel

Используя эти принципы, пользователи смогут форматировать документ Word с кодированием VBA в Excel.

Копирование данных в Word

Мы могли бы открыть Word вручную и добиться того, что только что сделали, но вся цель упражнения состоит в том, чтобы сделать это из Excel, чтобы данные электронной таблицы можно было автоматически записать в документ Word.

Теперь нам нужно выбрать данные, скопировать их, а затем вставить в процессе открытия и форматирования.

В этом рецепте мы будем копировать данные в Word.

Подготовка

Убедитесь, что файл Word_Interaction.xlsm все еще открыт. Активируйте Sheet1 и введите следующие данные:

Рисунок 5. Рабочие данные

Как это сделать…

Выполните следующие действия, чтобы скопировать текст из Excel в Word:

<р>1. Создайте код для автоматического выбора любого диапазона на листе:

<р>2. Запустите процедуру Sub, чтобы проверить свой код. Мы знаем, что первая часть будет работать, но в этом случае нам нужно посмотреть, были ли данные в нашей электронной таблице скопированы в Word:

Рисунок 6. Данные Excel скопированы и вставлены в Word

<р>3. Сохранение документа Word — это то, что нам нужно сделать дальше. При добавлении этих строк кода обратите внимание на изменения в операторе With:

<р>4. Последнее, что нам нужно сделать, это закрыть документ и, наконец, сам Word. Просто добавьте следующие две строки в новую строку после имени файла:

<р>5. Когда вы запустите процедуру сейчас, вы увидите, что Word ненадолго откроется и сразу же снова закроется.Если вы хотите устранить это, просто закомментируйте следующие две строки:

<р>6. Мы еще не закончили, потому что каждый раз, когда мы запускаем процедуру, файл заменяется, не давая нам возможности сохранить его под новым именем. Нам нужно добавить код для создания уникального имени файла каждый раз, когда мы запускаем процедуру. Объявив новую переменную SaveAsName, а затем назначив отформатированную версию функции Now, мы можем создать уникальное имя для файла при каждом его сохранении. Добавьте эти две строки после .Selection.Paste:

<р>7. Каждый раз, когда вы запускаете процедуру сейчас, будет сохраняться новый файл с уникальным именем. Следуя этим инструкциям, вы сможете автоматически копировать данные из Excel в Word.

Как это работает…

Вот объяснение того, что мы сделали.

Выбор данных в Excel — не новая концепция, как и копирование. Сохранение его в документе Word с помощью Excel VBA требует использования функции Environ, а также форматирования имени файла. Это обеспечит создание нового файла при каждом выполнении процедуры Excel VBA.

Использование шаблонов и закладок

Не имеет смысла копировать всю электронную таблицу Excel и вставлять ее в Word. Вы могли бы сделать все в Word с самого начала, избавив вас от необходимости копировать из Excel и вставлять в Word.

Дело в том, что если у вас есть существующий документ Word или даже шаблон Word, и вам регулярно нужно экспортировать выбранную информацию из электронной таблицы в Excel в этот шаблон, это способ сделать это. Слово «автоматизация» приобретает новый смысл, если таким образом удается связать Excel с Word.

В этом рецепте мы будем вставлять данные Excel в документ Word по определенной закладке.

Подготовка

Убедитесь, что файл Word_Interaction.xlsm все еще открыт, а редактор VBA активен.

Как это сделать…

Нам нужно сделать следующее:

<р>1. Откройте документ Word, сохраненный на рабочем столе. Удалите вставленную таблицу (выделите только всю таблицу — без строк до или после, щелкните контекстную вкладку «Макет», а затем «Строки и столбцы | Удалить | Удалить таблицу»)

<р>2. Введите короткое предложение Последняя информация о сотрудниках в открытом пространстве.

<р>3. Вставьте закладку в первую открытую строку после этого предложения. Щелкните Вставить | Закладка. Появится диалоговое окно Закладка. Введите имя в текстовом поле Имя закладки, а затем нажмите Добавить, чтобы закрыть диалоговое окно:

Рисунок 7. Название закладки

<р>4. Щелкните Файл | Сохранить как и сохраните файл как шаблон Word. Расширение файла .dotx. Вызовите файл EmployeeReportTemplate.

<р>5. В зависимости от операционной системы и версии MS Office на вашем ПК файл будет сохранен в определенной папке, предназначенной для файлов шаблонов:

Рисунок 8. Папка для файлов шаблонов

<р>6. Закройте файл и вернитесь в редактор VBA в Excel.

<р>7. Добавьте следующую строку текста в окно кода, чтобы открыть конкретный файл, а не только пустой документ:

<р>8. Поскольку мы используем шаблон, нам не нужно форматирование, которое мы сделали для предыдущего документа. Удалите следующие строки кода:

<р>9. Используйте метод GoTo, чтобы точно указать Word, куда следует вставить скопированные данные из Excel. Вот почему мы создали закладку в шаблоне Word. Окончательный код всей процедуры должен выглядеть так:

Эти инструкции позволят вам создать шаблон в Word, а затем автоматически поместить содержимое из Excel в документ Word в определенные закладки.

Вставить данные Excel в шаблон Word можно с помощью Excel VBA. Вставка закладки в шаблон Word позволяет Excel отправлять данные в определенную точку вставки для вставки данных.

См. также

Чтобы прочитать более подробное руководство, ознакомьтесь с нашей книгой VBA Automation for Excel Cookbook, автором которой является Майк Ван Никерк.

от Packt @ packt. Мы являемся одним из ведущих издателей технических книг в Великобритании. Мы опубликовали более 7 000 книг, видео, статей и руководств.

Читайте также: