Обновление макросов в word

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

Однако редактор Word не имеет стандартных возможностей обновления всех полей в документе одновременно и без лишних мышедвижений (если не считать использование сочетаний клавиш для выделения всего текста — «Ctrl+A» и последующего обновления с помощью клавиши «F9»).

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

Для этого разместите приведенный ниже код макроса в ваш шаблон Normal.dot (Normal.dotm), на основе которого вы создаете свои документы, или в конкретный документ (P.S.: макрос обновлен 27.03.2008, так как Оглавление в документе не обновлялось, если это не сделать явным образом).

Sub AutoOpen()
'Автообновление всех полей документа при его открытии
Dim aStory As Range
Dim aField As Field
Dim myTOC As TableOfContents
For Each aStory In ActiveDocument.StoryRanges
  For Each aField In aStory.Fields
    aField.Update
  Next aField
Next aStory
For Each myTOC In ActiveDocument.TablesOfContents
   myTOC.Update
Next myTOC
End Sub

Если вы желаете обновлять поля вручную, то измените наименование макроса, создайте для него кнопку и разместите ее на панели инструментов (для Word 2003) или на панели быстрого доступа (для Word 2007).

Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:

Создание макроса из готового кода

Автоматическая запись макроса

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

Обновление поля

В открытом документе щелкните правой кнопкой мышки поле, например, оглавление, номер страницы или перекрестную ссылку, а затем выберите команду Обновить поле.

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

Если у вас возникли затруднения при поиске полей в тексте, можно отобразить все поля на сером фоне. Для этого откройте меню Файл > Параметры > Дополнительно, а затем в разделе Показывать содержимое документа в раскрывающемся меню Затенение полей выберите пункт Всегда.

Обновление всех полей в документе

Нажмите клавиши CTRL+A.

Нажмите клавишу F9.

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

Совет: Чтобы не забыть обновить оглавление перед печатью документа, настройте Word для автоматического обновления полей перед печатью. Откройте меню Файл > Параметры > Экран, а затем в разделе Параметры печати, установите флажок Обновлять поля перед печатью.

Примечание: При обновлении поля могут возникнуть проблемы, если элемент, на который оно ссылается, удален. Ссылки и закладки также могут указывать на несуществующие страницы. Дополнительные сведения см. в статье Устранение неполадок с закладками.

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

Однако редактор Word не имеет стандартных возможностей обновления всех полей в документе одновременно и без лишних мышедвижений (если не считать использование сочетаний клавиш для выделения всего текста — «Ctrl+A» и последующего обновления с помощью клавиши «F9»).

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

Для этого разместите приведенный ниже код макроса в ваш шаблон Normal.dot (Normal.dotm), на основе которого вы создаете свои документы, или в конкретный документ (P.S.: макрос обновлен 27.03.2008, так как Оглавление в документе не обновлялось, если это не сделать явным образом).

Если вы желаете обновлять поля вручную, то измените наименование макроса, создайте для него кнопку и разместите ее на панели инструментов (для Word 2003) или на панели быстрого доступа (для Word 2007).

Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:

Вы можете помочь в развитии сайта, сделав пожертвование:

Или помочь сайту популярной криптовалютой:

BTC Адрес: 1Pi3a4c6sJPbfF2sSYR2noy61DMBkncSTQ

ETH Адрес: 0x7d046a6eaa1bd712f7a6937b042e9eee4998f634

LTC Адрес: LUyT9HtGjtDyLDyEbLJZ8WZWGYUr537qbZ

DOGE Адрес: DENN2ncxBc6CcgY8SbcHGpAF87siBVq4tU

BAT Адрес: 0x7d046a6eaa1bd712f7a6937b042e9eee4998f634

XRP Адрес: rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh Депозит Tag: 105314946

USDT (ERC-20) Адрес: 0x7d046a6eaa1bd712f7a6937b042e9eee4998f634

Яндекс Деньги: 410013576807538

Вебмани (R ещё работает): R140551758553 или Z216149053852

А тут весь список наших разных крипто адресов, может какой добрый человек пожертвует немного монет или токенов — получит плюсик в карму от нас 🙂 Благо Дарим, за любую помощь!

Я хочу способ обновления все поля в документе Word 2013. (Если он работает в других версиях, тем лучше; у меня первоначально была эта проблема с Word 2007, и с тех пор ничего не изменилось.) Это включает перекрестные ссылки, номера страниц, оглавлений, индексов, заголовков и т. д. Если он может быть обновлен нажатием F9 , Я хочу его обновить.

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

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

EDIT: комбинируя ответ, данный с тем, что я уже had дает макрос, который, кажется, обновляет все (с помощью известный дефект).

6 ответов

зайдите в настройки печати, выберите Обновить поля. Затем перейдите в раздел Печать или предварительный просмотр документа.

Et voilà, все поля обновлены!

Я просто делаю Ctrl + на — выбрать все — и затем F9 обновить много.

хотя, это не заголовки и нижние колонтитулы, но они обновляются при печати/печати МСИО.

обновление

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

надеюсь, что охватывает все, что вам нужно, если нет пожалуйста, укажите, что это еще не обновление.

этой страница выглядит интересно:

Если вы используете Word 2007, процесс немного отличается: нажмите Кнопка Office и нажмите кнопку Word Опционы. Слово отображает слово Диалоговое окно. Нажмите Дополнительно в левой части диалогового окна. (Щелкните здесь, чтобы увидеть связанную фигуру.) В общей области (прокрутите немного вниз чтобы увидеть его), убедитесь, что обновление Флажок автоматические ссылки при открытии выбирать. Нажмите OK. Эта настройка следует убедиться, что все ваши ссылки всегда в актуальном состоянии. Если вы хотите обновите поля, когда документ открытый, вам нужно использовать макрос для выполнить задачу. Конкретно, вам нужно будет использовать либо AutoOpen или Автозакрытия макрос, в зависимости от хотите ли вы обновить поля при открытии или закрытии документа. Тот ниже приведен пример AutoOpen макрос можно использовать.

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

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

Поля в ворде

Поля в word— это особые элементы, которые могут содержать специальные типы данных.

Чтобы вставить поле, выберите пункт «Поле» в меню «Вставка». Рассмотрим пример поля вставки текущей даты.

В форме поле находим в списке поля «Date» и выбираем нужный формат. После нажмите «ОК» и в документ будет вставлена текущая дата в выбранном формате.

Можно обратиться к этой функции с помощью комбинации Ctrl+F9, чтобы вставить фигурные скобки, затем введите текст поля между ними: <DATE @ «d MMMM yyyy ‘г.’»> данный код выводит время в формате 28 октября 2019 г.

Обновить поле в Word

Для обновления поля в контекстном меню есть утилита.
Выберите поле, которое вы хотите обновить, щелкните левой кнопкой мыши по нему и сверху появится кнопка обновить.

Обновить все поля в Word

Если вы хотите обновить все поля во всем документе Word, вы можете использовать ярлыки.
Нажмите Ctrl + A, чтобы выделить весь документ.
Затем нажмите клавишу F9, чтобы обновить все поля в Word.

Это руководство было создано с использованием версии Microsoft Word 2016 года.

Обновление полей

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

Обновление поля

В открытом документе щелкните правой кнопкой мышки поле, например, оглавление, номер страницы или перекрестную ссылку, а затем выберите команду Обновить поле.

Меню, появляющееся по щелчку ссылки на закладку правой кнопкой мыши

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

Диалоговое окно

Если у вас возникли затруднения при поиске полей в тексте, можно отобразить все поля на сером фоне. Для этого откройте меню Файл > Параметры > Дополнительно, а затем в разделе Показывать содержимое документа в раскрывающемся меню Затенение полей выберите пункт Всегда.

В разделе

Обновление всех полей в документе

Нажмите клавиши CTRL+A.

Нажмите клавишу F9.

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

Совет: Чтобы не забыть обновить одержимый документ перед печатью, Word автоматически обновлять поля перед печатью. Откройте меню Файл > Параметры > Экран, а затем в разделе Параметры печати, установите флажок Обновлять поля перед печатью.

В разделе

Примечание: При обновлении поля могут возникнуть проблемы, если элемент, на который оно ссылается, удален. Ссылки и закладки также могут указывать на несуществующие страницы. Дополнительные сведения см. в статье Устранение неполадок с закладками.

Как создать сайт в программе Frontpage — Уроки Frontpage

Как в word обновить поле

Обновление полей — Word

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

Обновление поля

В открытом документе щелкните правой кнопкой мышки поле, например, оглавление, номер страницы или перекрестную ссылку, а затем выберите команду Обновить поле.

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

Если у вас возникли затруднения при поиске полей в тексте, можно отобразить все поля на сером фоне. Для этого откройте меню Файл > Параметры > Дополнительно, а затем в разделе Показывать содержимое документа в раскрывающемся меню Затенение полей выберите пункт Всегда.

К началу страницы

Обновление всех полей в документе

Нажмите клавиши CTRL+A.

Нажмите клавишу F9.

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

Совет: Чтобы не забыть обновить оглавление перед печатью документа, настройте Word для автоматического обновления полей перед печатью. Откройте меню Файл > Параметры > Экран, а затем в разделе Параметры печати, установите флажок Обновлять поля перед печатью.

Примечание: При обновлении поля могут возникнуть проблемы, если элемент, на который оно ссылается, удален. Ссылки и закладки также могут указывать на несуществующие страницы. Дополнительные сведения см. в статье Устранение неполадок с закладками.

К началу страницы

См. также

Коды полей в Word

Создание и обновление перекрестных ссылок

Использование формул в таблице Word или Outlook

Обновить поля — Word

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

Обновить поле

В открытом документе щелкните правой кнопкой мыши поле, например оглавление, номер страницы или перекрестную ссылку, и выберите Обновить поле .

Если вы обновляете оглавление, в диалоговом окне Обновить оглавление выберите, хотите ли вы обновить только номера страниц или всю таблицу. Обновление номеров страниц просто обновляет номера страниц для существующих разделов. Он не добавляет новые разделы в оглавление. Чтобы обновить оглавление новыми разделами из документа, выберите Обновить всю таблицу .

Если у вас возникли проблемы с различением, какие части текста являются полями, вы можете настроить отображение всех полей на сером фоне. Для этого щелкните ФАЙЛ > Параметры > Расширенный и в разделе Показать содержимое документа в раскрывающемся меню Затенение поля выберите Всегда .

Обновить все поля в документе

Нажмите Ctrl + A.

Если в вашем документе есть таблицы с полями или формулами, вам может потребоваться выбрать каждую таблицу отдельно и нажать F9.

Совет: Чтобы не забыть обновить оглавление перед печатью документа, настройте Word на автоматическое обновление полей перед печатью. Щелкните ФАЙЛ > Параметры > Показать и в разделе Параметры печати установите флажок для Обновить поля перед печатью .

Примечание: Иногда поле не обновляется, потому что элемент, на который ссылается поле, больше не существует. Ссылка или закладка также могут быть повреждены. Для получения дополнительной информации см. Устранение неполадок с закладками.

См. Также

Коды полей в Word

Создать или обновить перекрестную ссылку

Используйте формулу в таблице Word или Outlook

Word: обновить поля в верхних и нижних колонтитулах

У вас есть документ Word с кодами полей в нем (например, автоматически созданное оглавление, закладки и перекрестные ссылки, имя файла в нижнем колонтитуле и т. Д.). Но когда вы обновляете поля с помощью F9 , поля в верхних и нижних колонтитулах не обновляются. Разочарованный, вы понимаете, что вам нужно перейти к верхнему и нижнему колонтитулам по отдельности, выделить все и нажать F9 .

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

Word 2003

  1. Переключиться из режима макета печати на Обычный макет .
  2. Нажмите Ctrl + A , чтобы выделить весь документ.
  3. Нажмите F9 , чтобы обновить поля.
  4. Вернуться в режим Макет печати .

Word 2007

Вот как это легко сделать в Word 2007: перейдите в режим Print Preview (> Print> Print Preview ), затем закройте Print Preview.(Спасибо Грегу Макси на дискуссионном форуме Microsoft Office за этот трюк!)

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

Если вы создаете один из этих макросов, но не добавляете его на панель быстрого доступа или сочетание клавиш, вам нужно будет запустить его вручную (вкладка Developer , > Макросы> выберите имя макроса, затем щелкните Выполнить ).Вероятно, есть способ добавить их к функциям AutoOpen или AutoClose, но я еще не проверял это. Если кто-нибудь может предупредить меня о веб-странице, где обсуждается, как это сделать, я был бы очень признателен (я немного новичок в макросах!)

[Обновлено с учетом обновленной информации Word 2007, июнь 2009 г.]

Нравится:
Связанные

Как добавить или обновить оглавление в Microsoft Word.

Обновлено: 30.06.2019 компанией Computer Hope

Оглавление помогает читателям узнать, какая информация содержится в документе и где она находится. В Microsoft Word оглавление также может позволить читателю перейти к определенному разделу документа, щелкнув заголовок. Чтобы добавить или обновить оглавление в документе Word, выберите одну из ссылок ниже, чтобы просмотреть соответствующие шаги.

Добавить новое оглавление

  1. Щелкните страницу в документе, на которую нужно добавить оглавление.
  2. Щелкните вкладку Ссылки на ленте.
  3. В разделе Оглавление щелкните опцию Оглавление .
  4. В диалоговом или всплывающем окне выберите один из доступных макетов оглавления, чтобы вставить его на текущую страницу документа.

На шаге 4 выберите опцию Custom Table of Contents , чтобы настроить макет.

Во-первых, можно обойтись без VBA. Преимуществ море, недостаток — обновление по Crtl+A; F9, т.е. не автоматически.
Для этого см. Вставка/Поле, поля Ask и Ref, а также закладки.

Если надо чтобы везде все обновлялось НЕПРЕМЕННО в процессе ввода, то Вам надо использовать не поля, а элементы управления. Включите панель инструментов «Элементы управления» и вставьте элемент Поле. Отформатируйте его, используя тип расположения в документе «в тексте». (Элементы управления форматируются подобно рисункам).
Далее редакторе VBA все элементы управления будут доступны в модуле «ThisDocument», и можно будет писать что-то типа

Код: Выделить всё

Private Sub TextBox1_Change()
  TextBox2.Text = TextBox1.Text
End Sub

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

что важно:
возможность послать такой документ заполнять кому попало — без кучи пояснений и без лишнего воя антивирусов и ворда про макросы

Забудьте про элементы управления и VBA — используйте поля. Вместо кучи пояснений потребуется рекомендация — включить автообновление полей перед печатью, или использовать ручное обновление.

Дополнительно, для удобства конечного пользователя, можно защитить от случайного изменения статическую чать документа (все кроме заполняемый полей). См. панель инс трументов «Формы».

0 / 0 / 0

Регистрация: 17.12.2012

Сообщений: 20

1

16.01.2013, 17:53. Показов 13646. Ответов 14


Студворк — интернет-сервис помощи студентам

Добрый вечер. Есть файл excel и word. В Word вставлены связи из Excel. При запуске Word выдает запрос на обновление связей. Как сделать так, чтобы связи обновлялись автоматически без этого запроса? В Word 2003 это делал через реестр, а тут не знаю.

Миниатюры

Запрос на обновление связей в Word 2010
 



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

16.01.2013, 17:53

14

5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

16.01.2013, 18:11

2

Edward2209, если ничего не найдёте, то можно попробовать следующее:

  1. можно убрать флажок, про который написано в окне, которое появляется, когда в документе есть связи. Только надо помнить, что этот флажок убирается для всех документов;
  2. и сделать макрос, который будет запускаться при открытии документа и обновлять данные.



0



Модератор

Эксперт HardwareЭксперт Windows

15212 / 7795 / 733

Регистрация: 03.01.2012

Сообщений: 32,101

16.01.2013, 18:24

3

Запрос на обновление связей в Word 2010



0



0 / 0 / 0

Регистрация: 17.12.2012

Сообщений: 20

16.01.2013, 18:43

 [ТС]

4

Цитата
Сообщение от Скрипт
Посмотреть сообщение

и сделать макрос, который будет запускаться при открытии документа и обновлять данные.

Находил я эту тему вчера, но почему-то мне этот макрос не подошел..

Добавлено через 14 минут
gecata, спасибо. Вопрос: Как сделать так, чтобы связи обновлялись автоматически без этого запроса? т.е. без диалогового окна.



0



Модератор

Эксперт HardwareЭксперт Windows

15212 / 7795 / 733

Регистрация: 03.01.2012

Сообщений: 32,101

16.01.2013, 18:48

5

Edward2209, А что, установленной галочки не достаточно? Странно…



0



0 / 0 / 0

Регистрация: 17.12.2012

Сообщений: 20

16.01.2013, 18:54

 [ТС]

6

Цитата
Сообщение от gecata
Посмотреть сообщение

А что, установленной галочки не достаточно? Странно…

Установленной галочки недостаточно. При открытии вордовского файла, при установленной галочке «Автоматически обновлять связи при открытии», диалоговое окно запроса на обновление связей всё равно выдаётся.



0



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

16.01.2013, 19:05

7

Цитата
Сообщение от Edward2209
Посмотреть сообщение

Находил я эту тему вчера, но почему-то мне этот макрос не подошел..

одна и та же задача может решаться несколькими способами.
Какой вы макрос использовали?



0



0 / 0 / 0

Регистрация: 17.12.2012

Сообщений: 20

16.01.2013, 19:09

 [ТС]

8

Цитата
Сообщение от Скрипт
Посмотреть сообщение

Какой вы макрос использовали?

Я сейчас его ищу.. Переустанавливал сегодня ОС…



0



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

16.01.2013, 19:28

9

Edward2209, во всех документах должно происходить обновление связей или только в одном?
Если убрать флажок, связанный с обновлением связей, то во всех документах не будут обновляться связи.



0



0 / 0 / 0

Регистрация: 17.12.2012

Сообщений: 20

16.01.2013, 19:43

 [ТС]

10

Цитата
Сообщение от Скрипт
Посмотреть сообщение

Edward2209, во всех документах должно происходить обновление связей или только в одном?
Если убрать флажок, связанный с обновлением связей, то во всех документах не будут обновляться связи.

Вот подобный вопрос , но как-то мне не подошло.. Попробовал поэкспериментировать — ноль.
Связи должны обновляться во всех документах. Вопрос в удалении этого запроса.

Добавлено через 6 минут

Цитата
Сообщение от Edward2209
Посмотреть сообщение

подобный вопрос

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



0



Скрипт

5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

16.01.2013, 19:55

11

Edward2209,

  1. разархивируйте файл, который я выложил на Форуме;
  2. откройте программу Word;
  3. откройте программу VBA;
  4. два раза кликните на Normal
  5. FileImport File… — выберите файл, который вы только что разархивировали;
  6. в Normal будет добавлен модуль AutoOpen;
  7. нажмите сохранить, закройте программу VBA и тестируйте код.

Примечание

  1. На время тестирования кода можете поместить вот такой код в модуль AutoOpen, чтобы было видно: срабатывает код или нет:
    Visual Basic
    1
    2
    3
    4
    5
    
    Sub Main()
     
        MsgBox "Open"
     
    End Sub
  2. Условия, которые нужно выполнить, чтобы код запускался при открытии каждой книги:
    1. код должен находиться в Normal;
    2. модуль должен называться AutoOpen;
    3. процедура должна называться Main.
  3. Если программа Word закрыта, а вы открываете файл, то макрос будет два раза запускаться. Как этого избежать — не знаю.

Вложения

Тип файла: zip AutoOpen.zip (432 байт, 58 просмотров)



1



Edward2209

0 / 0 / 0

Регистрация: 17.12.2012

Сообщений: 20

16.01.2013, 20:25

 [ТС]

12

Попробовал это

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Document_Open()
    Dim ish As InlineShape
    Dim intShapes As Integer
    Dim intI As Integer
      
    intShapes = ThisDocument.InlineShapes.Count
    
    If intShapes > 0 Then
        For intI = 1 To intShapes
            With ThisDocument.InlineShapes(intI)
                If .Type = wdInlineShapeLinkedOLEObject Then
                    .LinkFormat.Update
                End If
            End With
        Next intI
    End If
End Sub

Но почему-то запутался. Ворд пару раз выдал ошибку. В результате я сохранил файл с поддержкой макросов. Обновление идет четко без запроса. Но в редакторе сценариев я не нашел этого своего кода НИГДЕ! Ничего не понимаю… Да и открываю я файл с именем, например «Отчет», а открывается «Документ1»



0



Скрипт

5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

16.01.2013, 20:45

13

Да, действительно, можно не создавать специального модуля AutoOpen, а использовать событие шаблона Normal — Open.

Вот код, который находится в Normal в ThisDocument (см. скриншот). Этот код запускается при открытии любого документа.

Visual Basic
1
2
3
4
5
Private Sub Document_Open()
    
    MsgBox "Open"
 
End Sub

При использовании события Open макрос не запускается два раза при открытии файла, когда программа Word ещё закрыта.

Миниатюры

Запрос на обновление связей в Word 2010
 



1



Скрипт

5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

16.01.2013, 20:51

14

Цитата
Сообщение от Edward2209
Посмотреть сообщение

в редакторе сценариев

в программе Word это называется Visual Basic.

Visual Basic
1
ThisDocument

— означает, что код находится в документе, который нужно обрабатывать.

Если вы хотите применять код ко всем открываемым документам, то код должен находиться в Normal, в этом случае ThisDocument — это Normal.

Поэтому нужно использовать Activedocument вместо ThisDocument.



1



Edward2209

0 / 0 / 0

Регистрация: 17.12.2012

Сообщений: 20

16.01.2013, 21:54

 [ТС]

15

Цитата
Сообщение от Скрипт
Посмотреть сообщение

Поэтому нужно использовать Activedocument вместо ThisDocument.

Большое спасибо за решение. Сделал так: в Normal в ThisDocument вставил

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Document_Open()
    Dim ish As InlineShape
    Dim intShapes As Integer
    Dim intI As Integer
      
    intShapes = ActiveDocument.InlineShapes.Count
    
    If intShapes > 0 Then
        For intI = 1 To intShapes
            With ActiveDocument.InlineShapes(intI)
                If .Type = wdInlineShapeLinkedOLEObject Then
                    .LinkFormat.Update
                End If
            End With
        Next intI
    End If
End Sub

Всё работает. Спасибо большое!



0



Like this post? Please share to your friends:
  • Обновление листа excel vba
  • Обновление котировок акций в excel
  • Обновление источника данных для excel
  • Обновление значений ячейки в excel
  • Обновление для word 2016