Создать ole в word

Библиографическое описание:


Рудниченко, А. К. Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ. Методы защиты от них / А. К. Рудниченко, С. О. Кошелев. — Текст : непосредственный // Молодой ученый. — 2016. — № 29 (133). — С. 36-38. — URL: https://moluch.ru/archive/133/37122/ (дата обращения: 17.04.2023).



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

Ключевые слова: Microsoft Office, Word, OLE интерфейс, OLE объекты, информационная безопасность, вредоносные программы

В настоящее время в мире существует множество программ, разработчики которых относят свои продукты к разряду офисных. Наибольшую популярность набрал Microsoft Office. Самым массовым продуктом из этого набора является Microsoft Word. Им пользуются практически все как на домашних компьютерах, так и на компьютерах на предприятиях.

Microsoft Word (MS Word) — многофункциональная система обработки текстов, обладающая полным набором средств, необходимых для быстрого создания и эффективной обработки документов практически любой степени сложности. Но на редактировании текста его функционал не ограничивается. Расширяются возможности офисных программ семейства Microsoft с помощью различных дополнений, таких как Visual Basic для приложений, OLE объекты, ActiveX объекты и другие. Таким образом, MS Word — не только текстовый редактор, а ещё средство для выполнения самых разных алгоритмов, написанных на Visual Basic или запуска и связывания с документом различных программ.

Интерфейс OLE (Object Linking and Embedding — связывание и внедрение объектов) поддерживается множеством различных программ и используется для помещения документа, созданного в одной программе, в другую программу. Например, можно вставить документ MS Word в книгу MS Excel. Задача интерфейса OLE проста — создание промежуточного звена между программами для упрощения работы с различным программным обеспечением, поэтому OLE чаще всего используется тогда, когда обрабатываются составные документы с различными между собой системами. В данный момент OLE интерфейс используется в виде OLE объектов, которые зачастую представляют собой различные мультимедийные данные.

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

  1. Открыть MS Word и определить место, где будет помещён OLE объект;
  2. На вкладке «Вставка» в группе «Текст» щёлкнуть «Объект»;
  3. Открыть вкладку «Создание из файла»;
  4. В поле «Имя файла» ввести имя файла или нажать кнопку «Обзор» для выбора файла из списка.

Существует два режима вставки объектов:

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

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

В качестве OLE объекта может быть вставлен не только документ из линейки продукта Microsoft Office. Например, возможно вставить ссылку на простейший текстовый документ, изображение или PDF-документ. Особое внимание стоит уделить тому, что функционал OLE интерфейса позволяет вставлять таким же образом и исполняемые файлы, которые могут нанести вред операционной системе или отдельным файлам.

Таким образом, OLE объект и сам документ, созданный в Microsoft Word, может содержать в себе вредоносный код, который не будет детектироваться антивирусным программным обеспечением. Отсутствие каких-либо замечаний со стороны защищающих программ обуславливается тем, что вредоносный код создан полностью легальными средствами, а также потому что конечным результатом является документ формата «*.doс» или «*.docx» соответственно.

Вредоносный код, содержащийся в OLE объекте, выполняется не сразу. Для запуска исполняемого файла из документа MS Word необходимо кликнуть два раза по вставленному объекту. На данном этапе злоумышленники пытаются доказать жертве отсутствие подозрительного контента: рисунок стандартного объекта заменяется на изображение какой-либо таблицы, а над ней пишется просьба о том, что необходимо кликнуть на таблицу дважды (например, «Для просмотра таблицы кликните дважды на таблицу»). Для запуска исполняемого файла пользователь должен согласиться с запуском в вполне стандартном окне запуска. Пример вредоносного документа с OLE объектом представлен на рисунке 1.

Рис. 1. Демонстрация вредоносного документа с OLE объектом

Для убедительности такие документы с вредоносным кодом посылаются по электронной почте под видом письма от государственных органов (например, налоговой службы) с помощью замены заголовка письма. Таким образом, сотрудник, открывающий письмо, не видит настоящего адреса отправителя. Он замаскирован (например, под noreply@nalog.ru), и визуально определить, настоящий это адрес или изменённый заголовок, зачастую невозможно.

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

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

– Использование аппаратных или программных средств защиты для фильтрации трафика электронной почты. Таким образом, письма с изменёнными заголовками будут отсеиваться или помечаться статусом «Подозрительно»;

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

– Использование относительно новой версии пакета Microsoft Office (2010 и выше). Последние версии данного продукта имеют в своём функционале «Защищённый просмотр», что уменьшает шанс того, что сотрудник откроет OLE объект. «Безопасный режим» позволяет открывать файлы и просматривать их в более безопасной среде (без использования макросов и дополнительных объектов).

Таким образом, стандартные легитимные средства редактирования документов могут служить распространителями различных программ без ведома пользователей. OLE объекты — это относительно новая ветвь развития в сфере вредоносных программ для предприятий. В конце 2016 года в адрес некоторых организаций уже начинают поступать такие документы, так как они отлично подходят для «доставки» вирусов-шифровальщиков или других вредоносных программ на компьютер жертвы руками обычных пользователей. А отследить, откуда пришло письмо с загадочным документом, зачастую не предоставляется возможным.

Литература:

1. Object Linking and Embedding // Википедия — URL: https://ru.wikipedia.org/wiki/Object_Linking_and_Embedding

2. Создание и изменение объектов OLE и управление ими // MicrosoftSupport — URL: https://support.office.com/ru-ru/article/Создание-и-изменение-объектов-OLE-и-управление-ими-e73867b2–2988–4116–8d85-f5769ea435ba

3. ActiveX // Википедия — URL: https://ru.wikipedia.org/wiki/ActiveX

4. Технология MicrosoftOLE используется для внедрения вредоносного кода в документы // Журнал «Хакер» — URL: https://xakep.ru/2016/06/16/microsoft-ole-for-malware/

Основные термины (генерируются автоматически): OLE, вредоносный код, документ, исходный файл, программа, электронная почта, вредоносный документ, запуск, интерфейс, исполняемый файл.

Ключевые слова

Информационная безопасность,

вредоносные программы,

Microsoft Office,

слово,

OLE интерфейс,

OLE объекты,

Word

Microsoft Office, Word, OLE интерфейс, OLE объекты, информационная безопасность, вредоносные программы

Похожие статьи

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

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

Методика исследования вредоносных программ

Далее, запускается образец вредоносной программы. По прошествии некоторого времени (приблизительно несколько минут) завершаем работу ProcessMonitor и сохраняем получившийся в результате файл.

Электронная почта.

Вредоносные программы, блокирующие работу с операционной…

– копирование файла вредоносной программы в системную папку

вредоносная программа, вирус, Windows, троянский, Уинлок, выкуп, Экран блокировки, винлокер.

Задать вопрос. ФИО. Электронная почта.

Актуальные способы внедрения компьютерных вирусов

Ключевые слова: вирус, вредоносная программа, информационная система, компьютер, юникод, RLO, джойнер.

Таким образом, в архив добавляются два исполняемых файла и запаковываются.

Использование криптографии с временным раскрытием для…

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

Запускает записанный на шаге 3файл.

Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ.

Защита информации в сети | Статья в журнале «Молодой ученый»

Рассмотрим термин, вирус — это компьютерная программа или вредоносный код, отличительным

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

Выявление компонентов операционной системы, требующих…

Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ. Методы защиты от них. Анализ методов обнаружения вредоносных программ.

Автоматизированное добавление печатных штампов при помощи…

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

Основные термины (генерируются автоматически): PDF, API, IAC, документ, VBA, OLE, обработанный PDF-документа, нижний колонтитул

Электронная почта. Ваш вопрос.

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

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

Методика исследования вредоносных программ

Далее, запускается образец вредоносной программы. По прошествии некоторого времени (приблизительно несколько минут) завершаем работу ProcessMonitor и сохраняем получившийся в результате файл.

Электронная почта.

Вредоносные программы, блокирующие работу с операционной…

– копирование файла вредоносной программы в системную папку

вредоносная программа, вирус, Windows, троянский, Уинлок, выкуп, Экран блокировки, винлокер.

Задать вопрос. ФИО. Электронная почта.

Актуальные способы внедрения компьютерных вирусов

Ключевые слова: вирус, вредоносная программа, информационная система, компьютер, юникод, RLO, джойнер.

Таким образом, в архив добавляются два исполняемых файла и запаковываются.

Использование криптографии с временным раскрытием для…

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

Запускает записанный на шаге 3файл.

Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ.

Защита информации в сети | Статья в журнале «Молодой ученый»

Рассмотрим термин, вирус — это компьютерная программа или вредоносный код, отличительным

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

Выявление компонентов операционной системы, требующих…

Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ. Методы защиты от них. Анализ методов обнаружения вредоносных программ.

Автоматизированное добавление печатных штампов при помощи…

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

Основные термины (генерируются автоматически): PDF, API, IAC, документ, VBA, OLE, обработанный PDF-документа, нижний колонтитул

Электронная почта. Ваш вопрос.

Похожие статьи

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

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

Методика исследования вредоносных программ

Далее, запускается образец вредоносной программы. По прошествии некоторого времени (приблизительно несколько минут) завершаем работу ProcessMonitor и сохраняем получившийся в результате файл.

Электронная почта.

Вредоносные программы, блокирующие работу с операционной…

– копирование файла вредоносной программы в системную папку

вредоносная программа, вирус, Windows, троянский, Уинлок, выкуп, Экран блокировки, винлокер.

Задать вопрос. ФИО. Электронная почта.

Актуальные способы внедрения компьютерных вирусов

Ключевые слова: вирус, вредоносная программа, информационная система, компьютер, юникод, RLO, джойнер.

Таким образом, в архив добавляются два исполняемых файла и запаковываются.

Использование криптографии с временным раскрытием для…

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

Запускает записанный на шаге 3файл.

Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ.

Защита информации в сети | Статья в журнале «Молодой ученый»

Рассмотрим термин, вирус — это компьютерная программа или вредоносный код, отличительным

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

Выявление компонентов операционной системы, требующих…

Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ. Методы защиты от них. Анализ методов обнаружения вредоносных программ.

Автоматизированное добавление печатных штампов при помощи…

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

Основные термины (генерируются автоматически): PDF, API, IAC, документ, VBA, OLE, обработанный PDF-документа, нижний колонтитул

Электронная почта. Ваш вопрос.

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

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

Методика исследования вредоносных программ

Далее, запускается образец вредоносной программы. По прошествии некоторого времени (приблизительно несколько минут) завершаем работу ProcessMonitor и сохраняем получившийся в результате файл.

Электронная почта.

Вредоносные программы, блокирующие работу с операционной…

– копирование файла вредоносной программы в системную папку

вредоносная программа, вирус, Windows, троянский, Уинлок, выкуп, Экран блокировки, винлокер.

Задать вопрос. ФИО. Электронная почта.

Актуальные способы внедрения компьютерных вирусов

Ключевые слова: вирус, вредоносная программа, информационная система, компьютер, юникод, RLO, джойнер.

Таким образом, в архив добавляются два исполняемых файла и запаковываются.

Использование криптографии с временным раскрытием для…

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

Запускает записанный на шаге 3файл.

Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ.

Защита информации в сети | Статья в журнале «Молодой ученый»

Рассмотрим термин, вирус — это компьютерная программа или вредоносный код, отличительным

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

Выявление компонентов операционной системы, требующих…

Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ. Методы защиты от них. Анализ методов обнаружения вредоносных программ.

Автоматизированное добавление печатных штампов при помощи…

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

Основные термины (генерируются автоматически): PDF, API, IAC, документ, VBA, OLE, обработанный PDF-документа, нижний колонтитул

Электронная почта. Ваш вопрос.

Время на прочтение
16 мин

Количество просмотров 8.7K

Изначально архитектура Microsoft Office строилась на основе концепции составных документов, они же документы OLE, активно продвигаемой Microsoft на заре 32-разрядных Windows. В те времена идея «бесшовного» объединения в одном документе данных самых разных форматов казалась заманчивой и увлекательной, и до выявления первых проблем успела прочно врасти во многие масштабные продукты.

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

приятные

сюрпризы

создателям malware

исследователям безопасности.

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

«Дисковым» представлением составного документа является CFBF файл. В этой статье будет рассмотрено встраивание объектов в документы Microsoft Office (а точнее, только аспект безопасности) в контексте данных и кода, загруженных в память во время исполнения.

Формально встраиваемые в документы Microsoft Office объекты можно разделить на следующие группы:

  • Управляющие элементы ActiveX (ActiveX Controls)
  • Внедренные элементы данных OLE (OLE Embedded Objects)
  • Внедряемые файлы (Packages)
  • Встроенные элементы не-OLE

Управляющие элементы ActiveX

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

Встраиваемые в вебстраницы ActiveX представляли известную брешь в безопасности Internet Explorer, меры безопасности со временем усиливались. Браузеры других производителей практически сразу отказались от поддержки ActiveX. Новый браузер Microsoft Edge окончательно расстался с этим пережитком прошлого. Встраивание в документы Office, однако, все еще возможно.

ActiveX в документах предназначены для использования в связке с Visual Basic for Applications. Тем не менее, для их загрузки и активации VBA не требуется, а для загрузки элементов из «белого списка» не требуется и разрешение пользователя.

Уязвимости в последних особенно опасны — настройки по умолчанию, задаваемые при установке приложения, не предполагают ни какой-либо защиты от загрузки этих элементов, ни предупреждения пользователя. Администратору необходимо принудительно ужесточить настройки, запретив загрузку любых элементов ActiveX (отметим однако, что в режиме безопасного просмотра ActiveX не загружаются).

Пример: CVE-2012-0158

Одной из самых опасных уязвимостей в документах Office в 2012 году была CVE-2012-0158. Код загрузки элемента Microsoft ListView Control 6.0 из библиотеки MSCOMCTL.OCX содержал возможность переполнения буфера, что позволяло подменить адрес возврата и выполнить произвольный код. Поскольку элемент находился в «белом списке» ActiveX, загрузка начиналась сразу же при открытии документа. На текущий момент уязвимость устранена, элемент ListView Control по-прежнему считается «безопасным».

Добавление ActiveX в документ

Для добавления управляющего элемента в документ Microsoft Office (для простоты возьмем Word) при помощи интерфейса пользователя необходимо открыть вкладку «Разработчик» (ее видимость настраивается в меню «Параметры Word») и выбрать Элементы управления -> Инструменты из предыдущих версий -> элементы ActiveX. Меню продемонстрирует набор значков, соответствующих элементам Microsoft Forms, а также возможность выбрать ActiveX из списка, составленного из имеющихся в системе элементов, отобранных по ряду критериев.

Выведенный список не соответствует набору элементов, которые действительно могут быть загружены в документ, поэтому на него нельзя ориентироваться при поиске уязвимых элементов. Сложная многоуровневая проверка загружаемых ActiveX имеет несколько этапов, различается для версий Office и меняется от обновления к обновлению, так что наиболее верный способ проверить возможность загрузки — «вручную» скомпоновать файл документа с интересующим элементом и попытаться открыть его в Office. Возможные форматы документов описаны ниже.

Программное представление

Каждый элемент ActiveX по сути является объектом одного из классов COM, отвечающих определенным требованиям. Загрузка элемента происходит при помощи подсистемы COM, а исполняемый код содержится в одном из модулей, как правило, «внешних» по отношению к приложению-контейнеру. Как и любой COM-объект, элемент ActiveX может быть реализован в виде библиотеки DLL, или же в виде исполняемого EXE-файла. В первом случае библиотека будет загружена в адресное пространство контейнера, во втором — элемент будет обрабатываться в отдельном процессе, с передачей данных между контейнером и объектом посредством COM-маршалинга.

Как и любой объект COM, ActiveX имеет Интерфейсы, Свойства и Методы.

Интерфейсы — это прежде всего набор стандартных интерфейсов, которые обязан иметь класс ActiveX для полноценной загрузки и взаимодействия с контейнером, в частности, IOleControl и IOleObject.

Отсутствие каких-то необходимых интерфейсов может урезать функциональность элемента или прервать его загрузку на каком-то этапе.

Пример: CVE-2015-2424
Уязвимость CVE-2015-2424 была связана с элементом TaskSymbol Class из библиотеки mmcndmgr.dll. Элемент не был предназначен для использования в документах, и не экспортировал интерфейс IDispatch. В процессе загрузки элемента запросившая этот интерфейс процедура получала ошибку и разрушала внутреннюю структуру элемента, что приводило к уязвимости типа use-after-free. На данный момент элемент запрещен к загрузке (несмотря на это, его все еще можно обнаружить в списке для добавления в меню «Разработчик»). Сама уязвимость не устранена.

Помимо стандартных, каждый класс ActiveX экпортирует «основной» интерфейс, представляющий его собственную уникальную функциональность. К примеру, для класса Forms.CommandButton.1 это ICommandButton.

Просматривать интерфейсы ActiveX можно при помощи инструмента OleView, входящего в пакет Microsoft Visual Studio.

Интерфейс элемента определяет его Методы и Свойства. Свойства представляют некоторые данные, определяющие вид и работу элемента. Разработчик ActiveX-элемента присваивает каждому свойству определенное имя, скажем BackColor или GridLineWidth, и тип, например, строка, целое или вещественное двойной точности. Для растровых изображений и значков существует такой тип свойства, как картинка. Клиентская программа может устанавливать отдельные свойства элемента управления, задавая их целочисленные индексы и значения.

С точки зрения низкоуровневой реализации деление на методы и свойства формальное, поскольку «свойства» представлены набором методов get/set. Однако есть и значимое отличие: Методы элемента (его основного интерфейса) могут быть вызваны только программно, в случае документов Office — только из выполняющейся программы VBA. С точки зрения безопасности это не представляет большого интереса, так как исполнение VBA это уже компрометация операционной системы. Свойства же сохраняются в документе и при его открытии будут обработаны и загружены в структуры в памяти даже если исполнение VBA запрещено.

С программной точки зрения, со стороны элемента для сохранения его свойств и состояния в документе контейнер предоставляет интерфейсы IStream, IStorage и IPropertyBag. Их реализация и представление данных в дисковом файле уже не забота элемента ActiveX, и целиком зависит от контейнера и формата документа. Нужно заметить, что набор и формат сохраняемых данных может соответствовать «публично» экспортируемому набору свойств, а может быть и совершенно иным. Рассмотрим примеры реализации, имеющие отношение к Microsoft Office.

Составной файл (compound file, CFBF)

Устаревший формат документов Office, где для хранения данных ActiveX выделялось хранилище нижнего уровня ObjectPool и отдельные подкаталоги внутри него. Поток «01CompObj» содержит идентификатор класса, который в конечном итоге и определяет класс загружаемого объекта. Замена идентификатора непосредственно в hex приведет к попытке загрузки объекта совсем другого класса.

Office Open XML

Современный XML формат документов. Файл представляет собой zip-архив. Данные элементов ActiveX хранятся в подкаталоге ActiveX в файлах с немудреными названиями типа activeX1.xml.

Пример файла:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ax:ocx ax:classid="{D7053240-CE69-11CD-A777-00DD01143C57}" ax:persistence="persistPropertyBag" xmlns:ax="http://schemas.microsoft.com/office/2006/activeX" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
<ax:ocxPr ax:name="Caption" ax:value="CommandButton1"/>
<ax:ocxPr ax:name="Size" ax:value="2540;847"/>
<ax:ocxPr ax:name="FontName" ax:value="Calibri"/>
<ax:ocxPr ax:name="FontHeight" ax:value="225"/>
<ax:ocxPr ax:name="FontCharSet" ax:value="204"/>
<ax:ocxPr ax:name="FontPitchAndFamily" ax:value="2"/>
<ax:ocxPr ax:name="ParagraphAlign" ax:value="3"/>
</ax:ocx>

В этих файлах в текстовой форме указаны идентификаторы классов. Замена идентификатора также вызовет попытку загрузки элемента другого класса.

Далее файл содержит указание на тип хранения данных объекта: persistPropertyBag, persistStorage или persistStream. Если элемент поддерживает хранение свойств persistPropertyBag, его данные могут быть сохранены в том же текстовом файле, см. пример выше. Если же ему необходимо хранилище или двоичный поток, данные будут сохранены в файле с именем типа activeX1.bin, представляющем собой файл CFBF.

RTF

В документе rtf элемент ActiveX определяется тэгами objectobjocx. Тэг objdata содержит хранилище свойств элемента в виде hex-представления файла CFBF.

{objectobjocxf37objsetsizeobjw1440objh480{*objclass Forms.CommandButton.1}
{*objdata 010500000200000016000000
466f726d732e436f6d6d616e64427574746f6e2e31000000000000000000000e0000
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006

Загрузка из файла

Процесс загрузки ActiveX из документа в целом достаточно прост. Приложение-контейнер создает чистый объект указанного класса, запрашивает у него указанный интерфейс хранения, и предоставляет указатель на хранилище, поток или «пакет свойств».

Фильтрация элементов, которые могут быть загружены, имеет множество этапов. Прежде всего отсеиваются классы, указанные в черном списке, известном как Office COM Kill Bit (подветка реестра *OFFICE_KEY*CommonCOM Compatibility). К примеру, флаги, предотвращающие загрузку, имеют такие классы как Microsoft Scriptlet Component и Microsoft Web Browser.

Остальные классы пройдут первоначальную загрузку. Это означает, что библиотека DLL будет загружена в приложение-контейнер, или же будет запущен процесс COM-сервера, реализованного в EXE-файле. Только после этого будут выполняться остальные проверки, включая элементарную — а является ли объект, собственно, представителем ActiveX.

Пример: CVE-2015-6128
В 2015 году исследователь обнаружил, что предварительную загрузку модулей COM можно использовать для обхода ASLR и выполнения произвольного кода за счет загрузки подложных динамических библиотек. В описании вышедшего впоследствии CVE-2015-6128 нет ни слова о Microsoft Office.

Если идентификатор действительно определяет ActiveX, он пройдет еще несколько проверок в нескольких черно-белых списках.

Список ActiveX, загружающихся из .docx на чистых Windows 7 и Office 2016 при настройках по умолчанию.

{00024522-0000-0000-C000-000000000046} RefEdit.Ctrl
{02AF6DD2-77E6-44DF-B3E1-57CF1476D8EA} Microsoft Forms 2.0 OptionButton
{04082FC6-E032-49F2-A263-FE64E9DA1FA3} Microsoft Forms 2.0 HTML TEXT
{0B314611-2C19-4AB4-8513-A6EEA569D3C4} Microsoft Slider Control, version 6.0
{13D557B6-A469-4362-BEAF-52BFD0F180E2} Microsoft Forms 2.0 HTML TextAREA
{19FED08E-EFD1-45da-B524-7BE4774A6AEE} Microsoft Forms 2.0 ListBox
{20DD1B9E-87C4-11D1-8BE3-0000F8754DA1} Microsoft Date and Time Picker Control 6.0 (SP4)
{227B1F3B-C276-4DE0-9FAA-C0AD42ADDCF0} Microsoft Forms 2.0 HTML RESET
{232E456A-87C3-11D1-8BE3-0000F8754DA1} Microsoft MonthView Control 6.0 (SP4)
{3D0FD779-0C2D-4708-A9BA-62F7458A5A53} Microsoft Forms 2.0 ToggleButton
{444D2D27-02E8-486B-9018-3644958EF8A9} FieldListCtrl.2 Object
{4C599241-6926-101B-9992-00000B65C6F9} Microsoft Forms 2.0 Image
{5052A832-2C0F-46c7-B67C-1F1FEC37B280} Microsoft Forms 2.0 Label
{5512D110-5CC6-11CF-8D67-00AA00BDCE1D} Microsoft Forms 2.0 HTML SUBMIT
{5512D112-5CC6-11CF-8D67-00AA00BDCE1D} Microsoft Forms 2.0 HTML IMAGE
{5512D114-5CC6-11CF-8D67-00AA00BDCE1D} Microsoft Forms 2.0 HTML RESET
{5512D116-5CC6-11CF-8D67-00AA00BDCE1D} Microsoft Forms 2.0 HTML CHECKBOX
{5512D118-5CC6-11CF-8D67-00AA00BDCE1D} Microsoft Forms 2.0 HTML OPTION
{5512D11A-5CC6-11CF-8D67-00AA00BDCE1D} Microsoft Forms 2.0 HTML TEXT
{5512D11C-5CC6-11CF-8D67-00AA00BDCE1D} Microsoft Forms 2.0 HTML Hidden
{5512D11E-5CC6-11CF-8D67-00AA00BDCE1D} Microsoft Forms 2.0 HTML Password
{5512D122-5CC6-11CF-8D67-00AA00BDCE1D} Microsoft Forms 2.0 HTML SELECT
{5512D124-5CC6-11CF-8D67-00AA00BDCE1D} Microsoft Forms 2.0 HTML TextAREA
{556C2772-F1AD-4DE1-8456-BD6E8F66113B} Microsoft ImageList Control 6.0 (SP6)
{585AA280-ED8B-46B2-93AE-132ECFA1DAFC} Microsoft StatusBar Control 6.0 (SP6)
{5CBA34AE-E344-40CF-B61D-FBA4D0D1FF54} Microsoft Forms 2.0 HTML CHECKBOX
{5E90CC8B-E402-4350-82D7-996E92010608} Microsoft Forms 2.0 HTML OPTION
{603C7E80-87C2-11D1-8BE3-0000F8754DA1} Microsoft UpDown Control 6.0 (SP4)
{6240EF28-7EAB-4dc7-A5E3-7CFB35EFB34D} Microsoft Forms 2.0 ScrollBar
{65BCBEE4-7728-41A0-97BE-14E1CAE36AAE} Microsoft Office List 16.0
{6C177EBD-C42D-4728-A04B-4131892EDBF6} Microsoft Forms 2.0 ComboBox
{787A2D6B-EF66-488D-A303-513C9C75C344} Microsoft Forms 2.0 HTML Password
{79176FB0-B7F2-11CE-97EF-00AA006D2776} Microsoft Forms 2.0 SpinButton
{86F56B7F-A81B-478d-B231-50FD37CBE761} Microsoft Forms 2.0 CommandButton
{87DACC48-F1C5-4AF3-84BA-A2A72C2AB959} Microsoft ImageComboBox Control, version 6.0
{8B2ADD10-33B7-4506-9569-0A1E1DBBEBAE} Microsoft Toolbar Control 6.0 (SP6)
{8BD21D10-EC42-11CE-9E0D-00AA006002F3} Microsoft Forms 2.0 TextBox
{8BD21D20-EC42-11CE-9E0D-00AA006002F3} Microsoft Forms 2.0 ListBox
{8BD21D30-EC42-11CE-9E0D-00AA006002F3} Microsoft Forms 2.0 ComboBox
{8BD21D40-EC42-11CE-9E0D-00AA006002F3} Microsoft Forms 2.0 CheckBox
{8BD21D50-EC42-11CE-9E0D-00AA006002F3} Microsoft Forms 2.0 OptionButton
{8BD21D60-EC42-11CE-9E0D-00AA006002F3} Microsoft Forms 2.0 ToggleButton
{9432194C-DF54-4824-8E24-B013BF2B90E3} Microsoft Forms 2.0 HTML SUBMIT
{95F0B3BE-E8AC-4995-9DCA-419849E06410} Microsoft TreeView Control 6.0 (SP6)
{978C9E23-D4B0-11CE-BF2D-00AA003F40D0} Microsoft Forms 2.0 Label
{9A948063-66C3-4F63-AB46-582EDAA35047} Microsoft TabStrip Control 6.0 (SP6)
{9BDAC276-BE24-4F04-BB22-11469B28A496} Microsoft Forms 2.0 HTML IMAGE
{A0E7BF67-8D30-4620-8825-7111714C7CAB} Microsoft ProgressBar Control, version 6.0
{CCDB0DF2-FD1A-4856-80BC-32929D8359B7} Microsoft ListView Control 6.0 (SP6)
{D7053240-CE69-11CD-A777-00DD01143C57} Microsoft Forms 2.0 CommandButton
{DCA0ED3C-B95D-490f-9C60-0FF3726C789A} Microsoft Forms 2.0 Image
{DD4CB8C5-F540-47ff-84D7-67390D2743CA} Microsoft Forms 2.0 TextBox
{DFD181E0-5E2F-11CE-A449-00AA004A803D} Microsoft Forms 2.0 ScrollBar
{E9729012-8271-4e1f-BC56-CF85F914915A} Microsoft Forms 2.0 CheckBox
{EA778DB4-CE69-4da5-BC1D-34E2168D5EED} Microsoft Forms 2.0 SpinButton
{EAE50EB0-4A62-11CE-BED6-00AA00611080} Microsoft Forms 2.0 TabStrip
{F14E8B03-D080-4D3A-AEBA-355E77B20F3D} Microsoft Forms 2.0 HTML SELECT
{F8CF7A98-2C45-4c8d-9151-2D716989DDAB} Microsoft Visio Document
{FB453AD8-2EF4-44D3-98A8-8C6474E63CE4} Microsoft Forms 2.0 HTML Hidden
{FDEA20DB-AC7A-42f8-90EE-82208B9B4FC0} Microsoft Forms 2.0 TabStrip
{FE38753A-44A3-11D1-B5B7-0000C09000C4} Microsoft Flat Scrollbar Control 6.0 (SP4)

Можно видеть, что значительное место в списке занимают компоненты группы Microsoft Forms. Это набор управляющих элементов, поставляемых с пакетом Office, вы можете видеть их на панели «элементы ActiveX». Изначально все они регистрировались как «безопасные», но со временем выяснилось, что для отдельных элементов это не так. К примеру, элемент Frame загружает любые другие ActiveX, не проверяя никаких списков (в последних версиях это «исправлено», но собственный блэклист Frame отличается от общего Office). По этой причине часть элементов Microsoft Forms может быть загружена в документ только с разрешения пользователя. Microsoft Forms Frame также требует согласия пользователя (при настройках по умолчанию), зато позволяет загрузить некоторые элементы из Kill Bit списка, которые не могли бы быть загружены при других условиях.

Следовательно, если атакующему удается убедить пользователя разрешить загрузку ActiveX, Frame поможет ему существенно расширить «арсенал» за счет таких элементов как, например Web Browser.

Формат хранения свойств Microsoft Forms частично документирован спецификацией [MS-OFORMS].

В процессе сканирования ActiveX выяснилось, что набор классов для doc, docx и rtf разный, также разные списки доступных ActiveX для приложения, запущенного обычным образом и запущенного в режиме автоматизации.

Многие популярные приложения дополняют эти списки собственными ActiveX. В случае обнаружения уязвимости она будет отражена в бюллетене как имеющая отношение к приложению в состав которого входит. При этом единственным путем эксплуатации уязвимости могут оказаться документы Office.

Пример: Flash ActiveX
Flash ActiveX особенно полюбился вирусописателям за стабильно обнаруживаемые уязвимости и постоянное место в «белых списках» IE и Office. Первые известные уязвимости в этом компоненте появились еще в 2008 году, одна из последних CVE-2018-4878 закрыта в феврале этого года. С угасанием популярности IE документы Office стали основным путем распространения эксплойтов для Flash.

Внедряемые элементы данных OLE

Внедряемые элементы OLE призваны реализовать концепцию «документа в документе» с возможность редактирования «на месте» данных различных форматов, обрабатываемых другими приложениями. Подобно ActiveX, OLE-документы реализованы на основе COM.

Добавить OLE-элемент в документ Word можно следующим образом: открыть вкладку «Вставка» и выбрать Текст -> Объект. Программа выведет список типов документов, для которых зарегистрированы OLE-обработчики. Как и в случае с ActiveX, этот список мало соответствует набору классов, которые действительно могут быть загружены в качестве документов OLE.

Программное представление

Как и в случае ActiveX реализация любого OLE-документа представлена соответствующим классом COM, выполненным в виде DLL или EXE. Компонент экспортирует необходимые служебные интерфейсы, а сохранение состояния в документе-контейнере выполняется посредством интерфейсов IPersist*.

В документе формата CFBF данные объектов OLE сохраняются в хранилище второго уровня ObjectPool. Набор потоков в целом похож на соответствующий элементам ActiveX.

В документах Open Office XML данные объекта OLE сохраняются в подкаталоге embeddings, в файле-хранилище CFBF с именем типа oleObject1.bin.

В документах RTF информация об объекте сохраняется под тэгом objectobjemb. Раздел содержит также хранилище, закодированное как hex-представление файла CFBF.

{objectobjembobjw8307objh553{*objclass WordPad.Document.1}
{*objdata 010500000200000013000000576f72645061642e446f63756d656e742e31000000000000000000000a0000
d0cf11e0a1b11ae100000000

Формат RTF выделяется тем, что поддерживает тэг objupdate, вызывающий автоматическую активацию элемента в то время как по умолчанию OLE-элементы неактивны при загрузке.

Пример: CVE-2017-11882
Уязвимость CVE-2017-11882 OLE компонента Equation Editor благодаря обработке объекта в отдельном процессе давала возможность стабильной и универсальной эксплуатации. Тэг objupdate заставлял Word загружать уязвимый компонент сразу при открытии документа.

Пример: встроенные элементы Excel с макровирусом
Исследователями обнаружены вредоносные rtf-документы, не использующие никаких новых уязвимостей. Документы содержат в качестве встроенных объектов несколько документов Excel с макросом. Расчет сделан на то, что пользователь, вынужденный после открытия документа несколько раз подряд отказываться от выполнения макроса, в итоге «сдастся» и разрешит выполнение. На данный момент техника все еще работает.

Значительное отличие от ActiveX в случае внедряемых элементов OLE состоит в том, что идентификатор класса записывается непосредственно в файл хранилища функцией WriteClassStg. Эта методика унаследована из очень давних времен, когда в Microsoft увлеченно развивали концепцию «сериализации» и хранения объектов с их состоянием в формате CFBF. Документ-контейнер также сохраняет идентификатор класса внедряемого элемента, но загружен будет объект именно того класса, который указан в хранилище. Этот идентификатор возможно заменить, заставив приложение загрузить объект вовсе не предназначенный для этих целей.
Возможно отредактировать и данные элемента, что в определенных случаях приводит к выявлению уязвимостей.

Объекты OLE также проходят многочисленные проверки на возможность загрузки, что затрудняет получение полного списка потенциально загружаемых элементов. Набор элементов, которые могут быть загружены как объекты OLE, отличается от списка загружаемых ActiveX. В частности, проверку они проходят по KillBit списку принадлежащему не Office, а Internet Explorer (HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerActiveX Compatibility).

OLE по ссылке

OLE различает два механизма встраивания содержимого в документ – непосредственно встраивание OLE-документа и создание ссылки внутри основного документа на другой документ. В случае встраивания OLE-объекта по ссылке основной документ содержит указание на путь к файлу внедряемого документа. Путь может быть локальным или сетевым, или же адресом в интернет. OLE-обработчик определяется по расширению файла, соответствующий обработчик должен быть зарегистрирован в операционной системе.

Пример: CVE-2017-0199
Уязвимость CVE-2017-0199 заключалась в возможности добавления в документ «объекта по ссылке» формата hta. Последний представляет собой html с возможностью выполнения кода, то есть, фактически является исполняемым файлом. Обработчик автоматически скачивал и выполнял hta, позволяя выполнить произвольный код при открытии документа.

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

Внедряемые файлы (Packages)

Документы Office поддерживают возможность добавления любого файла (Объект -> Создание из файла или просто перетащить иконку файла в поле редактирования). Технически это реализовано добавлением в документ встраиваемого элемента Object Packager, записывающего в собственные данные желаемый файл. Object Packager позволяет заменить иконку и подпись файла, а также задать командную строку для открытия. Может он включать и файлы «по ссылке», когда открытие файла происходит не из собственного хранилища, а по указанному пути, в том числе и сетевому.

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

Пример: файлы в теле сообщения Outlook
Сообщения Outlook, которые также являются составными документами, позволяют добавлять элементы Object Packager в тело письма. Для пользователя элемент выглядит как изображение, произвольно выбранное злоумышленником. Двойной клик по изображению открывает упакованный файл. Злоумышленнику остается подобрать тип данных из тех, что еще не попали под ужесточение политик безопасности.

Встроенные элементы, реализованные не с помощью OLE

На данный момент наибольшую угрозу/интерес из не-OLE элементов могут представлять изображения, добавляемые в документ по ссылке. При открытии документа не в защищенном режиме изображения скачиваются автоматически, что может приводить к раскрытию местоположения и личности пользователя, скачавшего документ через анонимизирующие прокси или получившего конфиденциальный документ из третьих рук. Эта методика, в частности, была реализована в инструменте Scribbles, находящемся на вооружении спецслужб США.
В локальной сети Windows автоматическое скачивание изображений по ссылке делает возможной эксплуатацию уязвимости NTLMRelay. Механизм ссылок на картинки не совместим с требованиями безопасности сетей ActiveDirectory, поскольку администратор, получающий подобный документ по сути исполняет код злоумышленника с полными административными привилегиями.

Методы защиты

Что можно сделать? В целом, немного.

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

Управляющие элементы ActiveX можно отключить в настройках Trust Center

Обратите внимание, что для встроенных элементов OLE это не работает.

Задание: Задание выполнить в режиме Разметка страницы команды Вид главного меню Word.

I. Оформить таблицу 1

Расходы фирмы «Asus» за 1-ый квартал 2008 г. (тыс. руб.)

Расходы фирмы «Asus» за 1-ый квартал 2008 г. (тыс. руб.)

Код

Категория

Январь

Февраль

Март

2820

Фонд заработной платы

31904

31904

31904

2650

Налоги

3828

3828

3828

3092

Выплаты по контрактам

6500

6500

6500

2830

Премии

834

450

1200

2940

Доступ в ИНТЕРНЕТ

125

125

125

2941

Командировки

1083

975

1400

2940

Телефон

321

321

321

Всего по месяцам

44595

44103

45278

II. Продемонстрировать технологию OLE

Действия:

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

В результате копия таблиц окажется в буфере обмена. Свернуть текущее окно Word. Нажать кнопку Пуск. Выбрать Создать Документ Microsoft Office, затем в появившемся окне щелкнуть по ярлыку Еxcel. Откроется новый рабочий лист электронной таблицы Excel. Установите курсор в ячейку с адресом А1. Щелкнуть по кнопке Вставить,

Таблица будет скопирована на рабочий лист Excel.

Чтобы поместить в Word данные, связанные с рабочим листом Ехсel необходимо выполнить следующие действия:

  1. Открыть рабочую книгу Excel и рабочий лист, содержащий нужные данные;
  2. Выделить таблицу рабочего листа Excel. Выбрать команду Правка,
    Копировать;
  3. Свернуть текущее окно рабочего листа Excel и распахнуть окно
    документа Word;
  4. Установить курсор в нижней части листа (после первой таблицы);
  5. Выбрать команду Правка, Специальная вставка. При этом будет открыто окно Специальная вставка ;
  6. Выбрать переключатель «Связать»;

    В диалоговом окне Специальная вставка в списке «Как» (As) выбрать строку «Обьект: лист Microsoft Excel»;

  7. Нажать кнопку ОК, Данные из рабочей книги Ms Ехсеl будут помещены в документ Word как рисунок.

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

  1. Открыть исходную рабочую книгу Excel и внести изменения в скопированной ранее таблице по образцу;

    Расходы фирмы «Asus» за 2-ый квартал 2008 г. (тыс. руб.)

    Код

    Категория

    Апрель

    Май

    Июнь

    2820

    Фонд заработной платы

    34900

    34900

    34900

    2650

    Налоги

    4188

    4188

    4188

    3092

    Выплаты по контрактам

    6500

    6500

    6500

    2830

    Премии

    834

    450

    1200

    2940

    Доступ в ИНТЕРНЕТ

    125

    125

    125

    2941

    Командировки

    1083

    975

    1400

    2940

    Телефон

    321

    321

    321

    Всего по месяцам

  2. Для вычисления в Excel общей суммы расходов за Апрель следует установить курсор в ячейку C9 и нажать на значок ∑ Автосуммы, затем нажать клавишу «Enter».

    По аналогии, вычислить общую сумму расходов за Май и Июнь месяцы;

  3. Закончив внесение изменений, нажать клавишу «Enter», для того чтобы выполнить обновление данных. При этом, соответствующие данные в документе Word также будут обновлены;

    Переключится в Ms Word, для того чтобы увидеть изменения.

    Расходы фирмы «Asus» за 2-ый квартал 2008 г. (тыс. руб.)

    Код

    Категория

    Апрель

    Май

    Июнь

    2820

    Фонд заработной платы

    34900

    34900

    34900

    2650

    Налоги

    4188

    4188

    4188

    3092

    Выплаты по контрактам

    6500

    6500

    6500

    2830

    Премии

    834

    450

    1200

    2940

    Доступ в ИНТЕРНЕТ

    125

    125

    125

    2941

    Командировки

    1083

    975

    1400

    2940

    Телефон

    321

    321

    321

    Всего по месяцам

    47951

    47459

    48634

уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

В одной из статей, посвященных работе с Excel в Delphi читатель с ником Kanti задал весьма не тривиальную задачку — как добраться до диаграммы Excel, внедренной в документ Word и работать с ней. За что Kanti большое человеческое спасибо — приятно, когда читатели интересуются жизнью блога и предлагают новые темы и идеи.
На первый взгляд задача довольно не простая. Однако решение для неё есть. Я пошел немного дальше в решении проблемы и сегодня расскажу вам:

  • как работать с объектом Excel, внедренном в документ Word
  • как работать с документом Word, внедренным в Excel.

План статьи:

  • Азы работы с MS Word в Delphi
  • Как работать с объектом Excel, внедренном в документ Word
  • Как работать с документом Word, внедренным в Excel

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

1. Азы работы с MS Word в Delphi

Запуск MS Word в принципе ни чем не отличается от запуска MS Excel за одним небольшим исключением — меняется параметр функции CreateOLEObject:

MyWord:=CreateOleObject('Word.Application');

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

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

MyExcel:=GetActiveOleObject('Word.Application')

Соответственно, чтобы не гадать запущена или не запущена та или иная программа пакета MS Office достаточно воспользоваться связкой двух функций:

try
  MyWord:=GetActiveOleObject('WordApplication');
except
  MyWord:=CreateOleObject('Word.Application');
end;

Для того, чтобы открыть уже имеющийся документ Word необходимо воспользоваться методом Open объекта Documents, например так:

MyWord.Documents.Open('myword.doc');

После того как документ открыт, Вы можете его редактировать, изменять текст, параметры страницы и т.д., но сегодня нам это не важно. Главное сегодня — научиться работать с объектами. И с этого момента начинается решение первой задачи.

2. Как работать с объектом Excel, внедренном в документ Word

Каждый документ Word имеет коллекцию Shapes, которая позволяет добавлять в документ объекты, созданные и отображаемые с помощью программ-серверов OLE (OLE-серверов). OLE-объекты в документах Word могут отображаться также, как они отображаются в приложениях, предназначенных для их создания и редактирования. Все наверно пользовались редактором формул Math Type? Вот вам простой OLE-сервер. Добавляете OLE-объект формулы  в документ — открывается окно Math Type где вы вводите то, что хотите увидеть и потом формула отображается в документе Word.

Другое дело, когда Вы пробуете вставить в документ Word, например файл mp3. В этом случае объект будет отображен в документе в виде ярлыка, но, тем не менее будет внесен в коллекцию Shapes и до него можно будет добраться из Delphi.

insert_objectТеперь попробуем посмотреть как выглядит добавление OLE-объектов. В простейшем случае Вы открываете Word, создаете документ и выбираете «Правка — Вставить — Объект» и перед Вами открывается окно с перечнем всех OLE-объектов, которые Вы можете использовать в документе. Выбираете объект, вставляете в документ — работаете. Обратите внимание на рисунок — в окне на рисунке как раз отображены всевозможные объекты нашего с Вами исследования.

Для того, чтобы вставить OLE-объект в документ Word из Delphi необходимо воспользоваться методом AddOleObject коллекции Shapes, который имеет следующий вид:

Shapes.AddOleObject(ClassType, FileName, LinkToFile, DisplayAsIcon, IconFileName, IconIndex, IconLabel, Range)

ClassType — имя, используемое для включения указанного объекта OLE. Например, чтобы вставить в документ Word диаграмму Excel следует использовать

для добавления листа Excel, соответственно:

и так далее. В принципе ничего сложного нет — вставить можно, что угодно, хоть exe-файл :)

FileName — имя файла, из которого должен быть создан объект. Если этот аргумент опущен, то используется текущая папка. Вы должны указать либо ClassType либо  FileName, но никак не одновременно оба параметра.

LinkToFile True для того, чтобы связать OLE-объект с файлом, из которого он был создан. False, чтобы сделать объект OLE-объект независимым от копии файла, т.е. включить объект в документ Word. Если Вы определили значение для ClassType, аргумент LinkToFile должны быть ложными. Значение по умолчанию False.

DisplayAsIcon True для отображения объекта OLE в виде значка. Значение по умолчанию False.

IconFileName — Файл, который содержит значок для отображения объекта OLE.

IconIndex -индекс иконки отображения из IconFileName. Значение по умолчанию — ноль.

IconLabel — подпись к иконке объекта.

Range — диапазон,  где объект OLE будет размещен в тексте. Объект OLE заменяет выбранный диапазон. Если этот аргумент опущен, объект вставляется автоматически (в текущую позицию курсора в документе).

Давайте теперь продемонстрируем использование этого метода на практике и, заодно, приготовим плацдарм для дальнейшей работы. Рассмотрим как можно вставить чистый лист Excel в документ Word. Причем вставим лист в нужные нам координаты и зададим ему (листу) длину и ширину:

var MyWord: OLEVariant;
  begin
    MyWord:=CreateOleObject('Word.Application');  
    MyWord.Visible:=true;
    MyWord.Documents.Open(doc);
    MyWord.ActiveDocument.Shapes.AddOLEObject(ClassType:='Excel.Sheet',Left:=10, Top:=10, Width:=400, Height:=300);
  end;

Как видите, вместо того, чтобы указать объект Range мы просто расписали его параметры Left, Top, Width и Height. После выполнения этих операций в документе doc аккурат в верху страницы вставиться лист Excel.

Теперь, когда лист вставлен, можно приступать к дальнейшему изучению «глубин» OLE-серверов Microsoft.

Создадим новую переменную, в которой будем хранить ссылку на OLE-объект.

и сразу получим ссылку на наш лист Excel в Word’е:

MyOLE:=MyWord.ActiveDocument.Shapes.Item(1);

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

Представим себе, что мы ничего абсолютно не знаем про то, что лежит в MyOLE. Знаем только то, что это элемент из коллекции Shapes и все. Как определить, что мы получили ссылку именно на объект Excel, а не на автофигуру или, ещё хуже, не на файл mp3?

Для того, чтобы получить всю необходимую информацию об OLE-объекте достаточно обратиться к объекту MS Word под названием OLEFormat.

OLEFormat имеет следующие свойства:

Свойство Описание
Application Возвращает имя приложения к которому относится объект. В нашем случае вернет «Microsoft Word»
ClassType Возвращает или устанавливает тип класса для указанного объекта OLE, фотографии или поля.
Creator Возвращает 32-битное целое число, которое указывает на приложение в котором был создан объект.
DisplayAsIcon True, если указанный объект отображается в виде значка. Свойство для чтения/записи
IconIndex Возвращает или устанавливает индекс иконки, используемой если DisplayAsIcon True.
IconLabel Возвращает или устанавливает подпись к иконке OLE-объекта.
IconName Возвращает или устанавливает файл программы, в которой хранится икона для объекта OLE.
IconPath Возвращает путь к файлу, в котором хранится иконка для объекта OLE
Label Возвращает строку, которая используется, чтобы определить часть исходного файла для связывания объектов
Object Возвращает объект, который представляет собой объект верхнего уровня интерфейса указанного объекта OLE
Parent Возвращает объект, который представляет собой родительский объект указанного объекта OLEFormat
ProgID Возвращает программный идентификатор (ProgID) для указанного объекта OLE.

Теперь, используя эти свойства, попробуем получить всю необходимую нам информацию об OLE-объекте.

Вызовем последовательно свойства ClassType и ProgID:

ShowMessage(MyOle.OLEFormat.ClassType);
ShowMessage(MyOle.OLEFormat.ProgID);

В моем случае, результатом выполнения операций были две одинаковых строки «Excel.Sheet.12» Так как у меня установлен Office 2007 то версия 12, что и отразилось в сообщениях. У Вас это могут быть 10, 11 или как у меня 12 версии. С помощью номера версии можно будет определять — возможно ли в принципе изменять такие объекты на машине пользователя или нет.

Идем дальше. Итак, мы определили, что объект представляет собой лист Excel. Как получить доступ к Excel? И причем сделать это так, чтобы можно было наш OLE-объект изменить?

Обратимся к свойству Object. Согласно описанию, свойство должно вернуть нам ссылку на объект верхнего уровня. Следовательно, применительно к нашей ситуации — это будет ссылка на объект Excel. Чтобы убедиться в сказанном, сделаем так:

ShowMessage(MyOle.OLEFormat.Object.Application.Name);

то есть получим имя приложения в котором был создан объект. В результате получим сообщение в виде строки «Microsoft Excel«.

Ну, а теперь развязка вопроса — используя ссылку на Excel попробуем написать что-нибудь на листе, например, избитую фразу «Hello World!»:

MyOle.OLEFormat.Object.Application.ActiveSheet.Range['A1'].Value:='Hello World!';

Можете проверить — в ячейку А1 запишется строка. Здесь следует обратить внимание на то, что при записи в Excel мы не использовали свойства ActiveWorkBook, которое обычно предшествует свойству ActiveSheet. Все дело в том, что среди объектов OLE Office нет такого OLE-объекта — вставляется только лист либо диаграмма. По сути диаграмма — это два листа Sheet где на одном находится сам график, а на втором — данные к нему.

Вот таким простым и достаточно понятным способом можно добавлять, изменять и удалять OLE-объекты. Кстати, на досуге можете потренироваться вставлять, активировать, редактировать сразу несколько различных OLE-объектов — принцип работы тот же. Получаете Object и используете его функции.

3. Как работать с документом Word, внедренным в Excel.

Надо сказать, что разработчики в Microsoft весьма неплохо потрудились, чтобы запутать бедных разработчиков :).  В начале все просто — как в Word. Есть Shapes у которого в свою очередь есть метод AddOLEObject, с практически теме же параметрами.

Далее, по логике вещей, у Shapes должно быть свойство-объект OLEFormat. Проверяем — действительно есть, но…свойства другие, точнее одно из свойств другое, а большинства вообще нет. Но, мы люди не гордые — будем управляться с тем, что есть:

Свойство Описание
Application При использовании без классификатора объектов, это свойство возвращает объект приложения, представляющий приложение Microsoft Excel.
При использовании с объектом Qualifier, это свойство возвращает объект приложения, которое использовалось для создания объекта
Object Возвращает OLE Automation объект ассоциированный с OLE объектом
Parent Возвращает объект, который представляет собой родительский объект указанного объекта OLEFormat
progID Возвращает программный идентификатор (ProgID) для указанного объекта OLE.

Как видите свойств не много. Главное, что осталось свойство Object — вот его мы и попробуем использовать в своих корыстных целях.

За что следует, наверное, сказать спасибо разработчикам Excel, так это за то, что они предусмотрели сразу объект OLEObjects предоставляющий нам в распоряжение все OLE-объекты листа. Используя этот объект мы минуем использование Shapes. Например так:

MyExcel.ActiveWorkBook.ActiveWorkSheet.OLEObjects.Count

Мы получаем число OLE-объектов документа.

MyExcel.ActiveWorkBook.ActiveWorkSheet.OLEObjects(1)

соответственно даст доступ к первому из OLE-объектов документа, а уж с ним-то нам и предстоит работать. Итак, рассмотрим следующую задачку: необходимо вставить в документ Excel пустой документ Word и написать в нем любую строку.

Чтобы не повторяться в применениях метода — вставим в Excel уже готовый документ Word из файла:

...
 
MyExcel.ActiveWorkBook.ActiveSheet.OLEObjects.Add(FileName:=doc, Left:=10, Top:=10, Width:=300, Height:=300);
MyOLE:=MyExcel.ActiveWorkBook.ActiveSheet.OLEObjects.item(1);
MyOLE.Activate;
ShowMessage(MyOle.ProgID); //убедимся, что объект относится к Word
ShowMessage(MyOle.Object.Application.Name); //запросим имя приложения
MyOle.Object.Application.ActiveDocument.Range.InsertAfter('Привет');
....

Обратите внимание, в данном случае мы использовали для работы с OLE-объектом не Shapes, а OLEObjects. Попробуйте воспроизвести те же самые действия как в случае работы с Excel из Word, т.е. воспользоваться свойством Object у объекта ObjectFormat. Думаю Вы будите «приятно» удивлены, т.к. в результате запроса имени приложения Вам вернется не Word как ожидалось, а Excel — следовательно работать с OLE-объектом становится невозможно.

Также следует отметить, что прежде, чем приступать к редактированию OLE-объекта, следует его предварительно активировать.

Вот так можно работать с Excel из Word и с Word из Excel и при этом не выходить из Delphi :). Ну, а для чего это использовать — решать Вам. Я только показал Вам возможности работы в Delphi с программами Word и Excel.

Книжная полка

Название:Разработка приложений Microsoft Office 2007 в Delphi

Описание Описаны общие подходы к программированию приложений MS Office. Даны программные методы реализации функций MS Excel, MS Word, MS Access и MS Outlook в среде Delphi.

купить книгу delphi на ЛитРес

0
0
голоса

Рейтинг статьи

уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

Интерфейс связывания и внедрения объектов (Object Linking and Embedding, OLE) позволяет добавлять в приложение Microsoft Office Excel содержимое из других программ, например Microsoft Office Word.

В этой статье

Подробнее об OLE

Интерфейс OLE поддерживается множеством различных программ и используется для помещения содержимого, созданного в одной программе, в другую программу. Например, можно вставить документ Office Word в книгу Office Excel. Чтобы посмотреть, содержимое какого типа можно вставить, на вкладке Вставка
в группе Текст
выберите элемент Объект
. В поле Тип объекта
отображаются только объекты программ, установленных на данном компьютере и поддерживающих интерфейс OLE.

Связанные и внедренные объекты

Данные, которые копируются в Excel из другой программы, поддерживающей интерфейс OLE (например, Word), можно вставить как связанный объект или внедренный объект. Основные различия между внедренными и связанными объектами заключаются в том, где хранятся данные и как обновляется объект после вставки в конечный файл. Внедренные объекты хранятся в той книге, в которую вставлены, и не обновляются. Связанные объекты остаются в отдельных файлах и могут обновляться.

Связанные и внедренные объекты в документе

1. У внедренного объекта нет связи с исходным файлом.

2. Связанный объект связан с исходных файлом.

3. При обновлении исходного файла обновляется связанный объект.

Когда следует использовать связанные объекты?

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

При использовании связанного объекта исходные данные хранятся в исходном файле. В конечном файле отображается представление связанных данных, однако хранится в нем только информация о местоположении исходных данных (и размере, если объект является диаграммой Microsoft Excel). Для поддержания связи с исходными данными файл, в котором они хранятся, должен быть доступен на локальном диске или в сети.

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

Когда следует использовать внедренные объекты?

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

При открытии файла на другом компьютере можно просмотреть внедренный объект, не имея доступа к исходным данным. Поскольку внедренный объект не связан с исходным файлом, он не обновляется при изменении исходных данных. Чтобы изменить внедренный объект, дважды щелкните его для открытия и редактирования в исходной программе. Исходная программа (или другая программа, позволяющая редактировать объект) должна быть установлена на компьютере.

В книге связанный объект или внедренный объект может отображаться либо в том же виде, что и в исходной программе, либо в виде значка. Если книга будет просматриваться через Интернет и ее не придется печатать, можно выбрать отображение этого объекта в виде значка. Это уменьшает площадь, занимаемую объектом на экране. Для просмотра этого объекта в исходном виде необходимо дважды щелкнуть его значок.

Связывание или внедрение содержимого из другой программы с помощью OLE

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

Создание ссылки на содержимое из другой программы

Примечание:
Команду Объект
нельзя использовать для вставки графики и файлов определенных типов. Чтобы вставить графическое изображение или файл, на вкладке Вставка
в группе Иллюстрации
нажмите кнопку Рисунок
.

Внедрение содержимого из другой программы

Связывание или внедрение части содержимого из другой программы

Изменение способа отображения объекта OLE

    Объект
    тип объекта
    (например, Объект Документ
    ) и выберите команду Преобразовать
    .

    • Чтобы отобразить содержимое объекта, снимите флажок В виде значка
      .

      Чтобы отобразить значок, установите флажок В виде значка
      .

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

Управление обновлением в связанных объектах

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

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

Примечание:
Если дважды щелкнуть некоторые внедренные объекты, такие как видео- и звуковые клипы, начнется их воспроизведение, а не открытие. Чтобы изменить такой внедренный объект, щелкните правой кнопкой мыши значок или объект, наведите указатель на элемент Объект
тип объекта
(например, Объект Клип мультимедиа
), а затем выберите команду Изменить
.

Редактирование внедренного объекта в приложении, отличном от исходного

    Выделите внедренный объект, который необходимо изменить.

    Щелкните правой кнопкой мыши значок или объект, наведите указатель на элемент Объект
    тип объекта
    (например, Объект Документ
    ) и выберите команду Преобразовать
    .

    Выполните одно из следующих действий.

    • Чтобы преобразовать внедренный объект в тип, выбранный в списке, установите флажок преобразовать в
      .

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

Выделение объекта OLE с помощью клавиатуры

    Нажмите клавиши CTRL+G для отображения диалогового окна Переход
    .

    Нажмите кнопку Выделить
    , выберите вариант объекты
    и нажмите кнопку ОК
    .

    Несколько раз нажмите клавишу TAB, пока не будет выделен требуемый объект.

    Нажмите клавиши SHIFT+F10.

    Наведите указатель на элемент Объект
    или Объект Диаграмма
    и выберите команду Изменить
    .

Проблема: при двойном щелчке по связанному или внедренному объекту появляется сообщение «Нельзя изменить»

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

Убедитесь, что исходная программа доступна.
Если исходная программа не установлена на компьютере, преобразуйте объект в формат файла той программы, которая есть на компьютере.

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

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

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

Убедитесь, что имя исходного файла не изменилось.
Если исходный файл, который требуется изменить, является связанным объектом, убедитесь, что он имеет то же имя, что и при создании связи, а также что он не был перемещен. Чтобы узнать имя исходного файла, выделите связанный объект, а затем на вкладке Данные
в группе Подключения
выберите команду Изменить связи
. Если исходный файл был переименован или перемещен, воспользуйтесь кнопкой Смена источника
в диалоговом окне Изменение связей
, чтобы найти исходный файл и восстановить связь.

Начиная примерно с 13 июня 2017 года, в программе Outlook пакетов Office 20007/2010 перестали открываться некоторые вложения, размещенные внутри сообщений/событий календаря в виде объектов. При попытке открыть подобные «вложенные» файлы, появляется сообщение об ошибке следующего содержания: Данный объект был создан в следующей программе: Outlook
. Эта программа не установлена на вашем компьютере либо не отвечает. Чтобы изменить данный объект, установите Outlook либо убедитесь, что все диалоговые окна в Outlook закрыты
:

При всем этом вложенные файл свободно «перетаскиваются» (drag-and-drop) при помощи мыши (сенсора) на рабочий стол, где, в последствии, могут быть открыты ассоциированным приложением!

Проблема

Описанная проблема проявляет себя, когда в письме/событии календаря имеются «вложенные» файлы. Возможно создание двух типов сообщений: можно использовать тип Rich Text (RTF) , в этом случае внешний файл встраивается тело письма в виде объекта (OLE), или же использовать формат HTML , тогда файл добавляется в виде вложения (attachment). Объектная технология встраивания, применяемая в случае использования RTF формата, уже давно является целью различного рода вредоносного кода, эксплуатирующего различные уязвимости в реализации объектной модели. И открываться вложенные (встроенные) файлы перестали после выпуска и установки в систему следующих обновлений безопасности:

  • KB3203467 — для Office 2010;
  • KB3191898 — для Office 2007;

Которые закрывают ряд уязвимостей, меняя политику проверки встраиваемых/прикрепляемых файлов и общую фильтрацию ввода при загрузке библиотек. Похоже, это же обновление ужесточает политику блокировки вложений, имеющих множественное расширение (несколько точек в имени), теперь подобные вложения в Outlook не открываются ни при каких обстоятельствах, а заголовке письма высвечивается сообщение Outlook заблокировал доступ к потенциально небезопасным вложениям
и настройками это поведение нигде не изменить. Из оригинального описания следует, что обновление устраняет проблемы безопасности в продуктах Microsoft Office, которые приводят к удаленному исполнению кода при открытии пользователем специально подготовленного файла.
Обновление закрывает уязвимости.

Существует множество различных способов совместного использования данных программами Microsoft Office. Например, Word предоставляет несколько способов вставки данных Microsoft Excel в документ Word. Можно скопировать и вставить электронную таблицу Excel в документ Word. Кроме того, в документ Word можно также вставить электронную таблицу в виде связанного объекта или внедренного объекта.

Основные различия между связыванием и внедрением (встраиванием) объектов заключаются в месте хранения данных и способе обновления данных после помещения их в документ.

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

Внедренный объект – это объект (например, электронная таблица), вставленный в файл. Будучи внедренным, объект становится частью файла. При двойном щелчке внедренный объект открывается с помощью программы, в которой был создан. Все вносимые во внедренный объект изменения отображаются в содержащем его файле.

Связывание и внедрение можно осуществлять как при помощи буфера обмена, так и при помощи диалогового окна «Вставка объекта», которое вызывается командой Объект в меню Вставка.

Для выполнения этой лабораторной работы необходимо ознакомиться со способами совместного использования данных программами Microsoft Office
. Внедрение при помощи диалогового окна «Вставка объекта» изложено в лекционном курсе
и в рекомендованных источниках информации.

20.2 Цель работы

Приобретение практических навыков работы с программами Microsoft Excel и Word в процессе создания документов, копирования, связывания и внедрения объекта (электронной таблицы) Microsoft Excel в документ Word.

20.3 Постановка задачи

Для выполнения лабораторной работы выполните следующее:

  1. создайте документ Word в соответствии с прилагаемым образцом, представленном на Рис 20.1;
  2. создайте чистую книгу, заполните рабочий лист в соответствии с прилагаемым образцом, представленном на Рис 20.2, и выполните необходимые вычисления;
  3. вставьте созданную электронную таблицу Excel в документ Word следующими способами:
    • в виде таблицы Word;
    • в виде внедренного объекта;
    • в виде связанного объекта.

После вставки таблицы Excel в документ Word удалите данные в ячейке G5 во всех таблицах и обновите данные.

Рис. 20.1


Рис. 20.2

20.4 Пошаговое выполнение работы

20.4.1 Включите ПК

Нажмите кнопку Power
на системном блоке ПК.

20.4.2 Запустите Microsoft Word и Excel

20.4.2.1 Запустите Microsoft Word, используя команду Главного меню.

После запуска Microsoft Word откроется окно приложения «Документ 1 — Microsoft Word
«, в котором отображается пустой текстовый документ, основанный на шаблоне Обычный. Создайте документ в соответствии с прилагаемым образцом, представленном на Рис 20.1, и сохраните его.

20.4.2.2 Не закрывая Word, запустите Microsoft Excel.

После запуска Microsoft Excel откроется окно приложения, в котором отображается пустая рабочая книга «Книга 1» с тремя рабочими листами.
Создайте новую книгу и заполните рабочий лист в соответствии с прилагаемым образцом, представленном на Рис 20.2. Выполните все расчеты (заполните строки и столбец «Всего» и строку «Итого») в электронной таблице и сохраните файл (рабочую книгу).

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

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

  • перейдите в документ Word, выберите место вставки таблицы и нажмите кнопку Вставить на панели инструментов.

20.4.3.2 Вставьте созданную электронную таблицу Excel в документ Word в виде внедренного объекта.

Для этого выполните следующие действия:

  • выделите диапазон ячеек таблицы;
  • нажмите кнопку Копировать на панели инструментов;
  • перейдите в документ Word, выберите место вставки внедренного объекта;
  • установите переключатель в положение Вставить;

20.4.3.3 Вставьте созданную электронную таблицу Excel в документ Word в виде связанного объекта.

Для этого выполните следующие действия:

  • выделите диапазон ячеек таблицы;
  • нажмите кнопку Копировать на панели инструментов;
  • перейдите в документ Word, выберите место вставки связанного объекта;
  • выберите команду Специальная вставка в меню Правка;
  • установите переключатель в положение Связать;
  • В списке «Как:» выберите Лист Microsoft Office Excel (объект) и щелкните на кнопке ОК.

20.4.4 Удалите данные в ячейке G5 во всех таблицах, вставленных в документ Word, и обновите данные

20.4.4.1 Удалите данные в ячейке G5 (число 128) таблицы Word, созданной способом копирования, и обновите данные во всей таблице.

Для этого:

  • пересчитайте данные во всей таблице.

20.4.4.2 Удалите данные в ячейке G5 (число 128) таблицы Word, созданной способом внедрения объекта, и обновите данные во всей таблице.

Для этого:

  • выполните двойной щелчок на внедренном объекте (таблице), чтобы он открылся с помощью программы Excel, в которой был создан;
  • удалите число 128 в ячейке G5;
  • щелкните вне поля внедренного объекта, чтобы вернуться в Word.

20.4.4.3 Удалите данные в ячейке G5 (число 128) таблицы Word, созданной способом связывания объекта, и обновите данные во всей таблице.

Выполните следующее:

  • выполните двойной щелчок на связанном объекте (таблице), откроется окно приложения Excel с открытой рабочей книгой;
  • удалите число 128 в ячейке G5;
  • данные во всей таблице будут автоматически пересчитаны;
  • закройте приложение Excel, чтобы вернуться в Word.

20.4.5 Завершение работы

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

Like this post? Please share to your friends:
  • Создать excel шаблона для заполнения
  • Создания своей базы данных в excel
  • Создать excel файл по шаблону
  • Создания разных типов документов в word
  • Создать excel не открывается