Какой язык программирования встроен в пакет офисных программ microsoft office

Обновлено: 07.07.2024

Microsoft Office

Microsoft Office – это пакет офисных программ, специально разработанных корпорацией Microsoft под операционные системы Microsoft Windows и Apple Mac OS X. Программное обеспечение, которое входит в офисный пакет Microsoft Office, позволяет пользователям работать с различными видами документов – такими, как тексты, базы данных, изображения, электронные таблицы и т.д. Поддерживает макросы и скрипты на VBA.

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

История развития

История офисных приложений началась в далеком 1983 году, когда был создан первый текстовый редактор для DOS - Multi-Tool Word. Еще через год появился предшественник Excel: в 1984 году были разработаны первые редакторы, в которых можно было составлять электронные таблицы, и в 1985-ом они уже вовсю использовались. В 1987 году была создана первая версия Power Point для Macintosh – пока только в черно-белом формате. В 1988 году вышел Power Point и для Windows.

Самый же первый пакет офисных приложений Microsoft Office вышел в 1988 году. Это была версия для Macintosh, которая состояла из следующих программ:

- текстовый редактор;
- приложение для работы с электронными таблицами;
- средство для создания презентаций;
- почтовый клиент.

То есть, по сути, уже в 1988 году Microsoft предоставил пользователям (правда, пока только пользователям Macintosh) практически полный набор офисных инструментов.


А в начале 90-х годов – в 1992-1993 гг. – была выпущена и версия Microsoft Office 3.0 для Windows, которая включала в себя все основные приложения современного MS Office: текстовый редактор Word 2.0, Excel 4.0, Power Point 3.0 и почтовую программу Mail. В 1994 году к пакету был добавлен еще и Access, а в 1995-ом - календарь Shedule+, который вскоре был объединен с почтовиком в единый органайзер Outlook.

В 1997 году к офисному пакету был добавлено и приложение для редактирования изображений - Photo Editor. В 1999-ом году Microsoft Office был расширен за счет приложения Publisher – средства для подготовки публикаций и программы FrontPage, позволяющей создавать сайты. Тогда же PhotoEditor был заменен на PhotoDraw.

В 2001 появился Microsoft Office ХР, из которого безвозвратно удалили редактор фотографий PhotoDraw (в 2003 году та же участь постигла и приложение FrontPage).

В 2003 году выходит наиболее популярный офисный пакет приложений - Microsoft Office 2003. Он включает в себя приложение для сбора и обработки данных InfoPath, настольную издательскую систему, средства для голосового ввода данных, а также предоставляет возможность управления текстовыми документами для мобильных ПК.

В 2007 году выходит новый пакет MS Office 2007, главное отличие которого от предыдущих версий – это новое меню. Вместо привычного системного меню в 2007-ом «офисе» появляется Ribbon, ленточный интерфейс, состоящий из панелей инструментов, разделенных вкладками. Кнопки на лентах – различного размера, в зависимости от частоты используемости, и объединены по группам. По мнению разработчиков данного интерфейса, такое меню позволяет объединить все функции в одном месте, что должно повысить удобство и производительность программ. Мнение пользователей сильно отличалось от мнения разработчиков, и компания получила множество критических отзывов о нововведении (и еще больше высказанных критических отзывов компания не получила).

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

В 2010 ленточный интерфейс более-менее доработали таким образом, что он стал удобнее для пользователей и сохранил все плюсы «открытых» кнопок. В этом же году была прекращена продажа и поддержка пакетов Office 2003 и Office 2007. Официально продажи были остановлены 11 января 2010 года в связи с патентным разбирательством при участии компании i4i.

Таблица версий Microsoft Office 2010


Последняя на данный момент версия офисного пакета MS Office была представлена 16 июля 2012 года под названием Microsoft Office 2013. Также эта версия известна как Office 2013 или Office 15. MS Office 2013 компания Microsoft предоставляет бесплатно всем пользователям, которые купили и активировали Microsoft Office 2010 с 19 октября по 30 апреля 2013 года. Новый Office интегрирован с облачным хранилищем SkyDrive, поддерживает работу с файлами формата PDF, позволяет вставлять онлайн-видео и др.


На сегодняшний день офисный пакет приложений Microsoft Office выпускается для операционных систем семейства Windows и Apple Mac OS X, а также имеет 32-битную и 64-битную редакции.

Приложения и возможности Microsoft Office

Основные программы, которые входят в офисный пакет, и их возможности:

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

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

3. Microsoft OneNote – приложение для создания и хранения заметок как в текстовом, так и в аудио-и видеоформатах. Также предоставляет возможность работы с изображениями. К записным книжкам организован общий доступ.

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

5. Microsoft Outlook – органайзер, который включает в себя менеджер электронной почты, планировщик задач, календарь, блокнот и адресную книгу. Позволяет создавать несколько расписаний одновременно и объединяет все имеющиеся почтовые ящики.

6. Microsoft Access – это приложение для создания баз данных и последующего управления ими. В MS Office 2010 добавлена возможность совместного использования несколькими пользователями одновременно. Кроме того, возможна работа с базами через Интернет непосредственно в браузере.

7. Microsoft InfoPath предназначен для сбора и управления данными.

8. SharePoint Workspace – приложение, которое расширяет возможности совместного доступа к документам и работы над ними. Работа происходит в единой среде SharePoint Workspace.

Кроме вышеописанных, пакет Microsoft Office опционно может содержать и другие, узконаправленные либо специализированные приложения.

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

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

Предварительные требования

Для выполнения данного пошагового руководства на компьютере должны быть установлены Microsoft Office Excel и Microsoft Office Word.

Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Персонализация среды IDE.

Настройка надстройки Excel

Запустите Visual Studio.

В меню Файл выберите пункт Создать, а затем команду Проект.

В области Шаблоны выберите Надстройка Excel <version> .

Если нужно, в поле Имя введите имя проекта.

В обозревателе решений появится новый проект.

Добавление ссылок

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

На вкладке Сборки в списке Имя компонента выберите Microsoft.Office.Interop.Excel, версия <version>.0.0.0 (расшифровку номеров версий продуктов Office см. в разделе Версии Майкрософт), а затем, удерживая нажатой клавишу CTRL, выберите Microsoft.Office.Interop.Word, version <version>.0.0.0 . Если сборки отсутствуют, может потребоваться проверить, что они установлены и отображаются (см. раздел Практическое руководство. Установка основных сборок взаимодействия Microsoft Office).

Добавление необходимых операторов Imports или директив using

В обозревателе решений щелкните правой кнопкой мыши файл ThisAddIn.vb или ThisAddIn.cs и выберите в контекстном меню команду Просмотреть код.

В верхнюю часть файла с кодом добавьте следующие операторы Imports (Visual Basic) или директивы using , если это еще не сделано.

Создание списка банковских счетов

Замените определение класса Account следующим кодом. В определениях классов используются автоматически реализуемые свойства. Дополнительные сведения см. в разделе Автоматически реализуемые свойства.

Чтобы создать список bankAccounts , содержащий два счета, добавьте в метод ThisAddIn_Startup в файле ThisAddIn.vb или ThisAddIn.cs следующий код. В объявлениях списков используются инициализаторы коллекций. Дополнительные сведения см. в разделе Инициализаторы коллекций.

Экспорт данных в Excel

В том же самом файле добавьте в класс ThisAddIn следующий метод. Этот метод служит для настройки книги Excel и экспорта данных в нее.

В более ранних версиях этого языка приходилось использовать особый синтаксис.

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

Добавьте в конец метода DisplayInExcel следующий код, чтобы ширина столбца изменялась в соответствии с содержимым.

Например, excelApp.Columns[1] возвращает Object , а AutoFit является методом Excel Range. Без типа dynamic необходимо выполнять приведение объекта, возвращаемого excelApp.Columns[1] , к экземпляру Range перед вызовом метода AutoFit .

Дополнительные сведения о внедрении типов взаимодействия см. в подразделах "Поиск ссылки PIA" и "Восстановление зависимости PIA" далее в этом разделе. Дополнительные сведения о dynamic см. в разделе dynamic или Использование типа dynamic.

Вызов метода DisplayInExcel

Добавьте следующий код в конец метода ThisAddIn_StartUp . Вызов метода DisplayInExcel содержит два аргумента. Первый аргумент представляет собой имя списка счетов, которые требуется обработать. Второй аргумент — это состоящее из нескольких строк лямбда-выражение, которое определяет, каким образом следует обрабатывать данные. Значения ID и balance для каждого из счетов отображаются в соседних ячейках, а если баланс имеет отрицательное значение, строка отображается красным. Дополнительные сведения см. в разделе Лямбда-выражения.

Чтобы запустить программу, нажмите клавишу F5. Появится книга Excel, содержащая данные о счетах.

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

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

Запуск приложения

  1. Нажмите клавишу F5 для запуска приложения. Будет запущено приложение Excel, в котором будет открыта таблица, содержащая сведения о двух счетах из списка bankAccounts . Затем будет открыт документ Word, содержащий ссылку на таблицу Excel.

Очистка готового проекта

  1. В Visual Studio в меню Построение выберите пункт Очистить решение. В противном случае надстройка будет запускаться при каждом открытии Excel на компьютере разработчика.

Поиск ссылки PIA

Запустите приложение снова, но не выбирайте пункт Очистить решение.

Выберите кнопку Пуск. Найдите Microsoft Visual Studio <version> и откройте командную строку разработчика.

В окне командной строки разработчика для Visual Studio введите команду ildasm , а затем нажмите клавишу ВВОД. Появится окно программы IL DASM.

В меню Файл в окне IL DASM выберите пункт Файл > Открыть. Дважды щелкните Visual Studio <version> и Проекты. Откройте папку проекта и найдите в папке bin/Debug файл имя_проекта.dll. Дважды щелкните файл имя_проекта.dll. В новом окне будут показаны атрибуты проекта, а также ссылки на другие модули и сборки. Обратите внимание, что в сборку включены пространства имен Microsoft.Office.Interop.Excel и Microsoft.Office.Interop.Word . По умолчанию в Visual Studio компилятор импортирует в сборку необходимые типы из сборки PIA, на которую указывает ссылка.

Дважды щелкните значок МАНИФЕСТ. Откроется окно со списком сборок, содержащих элементы, на которые имеются ссылки в проекте. Сборки Microsoft.Office.Interop.Excel и Microsoft.Office.Interop.Word не будут указаны в этом списке. Поскольку необходимые для проекта типы были импортированы в сборку проекта, ссылки на сборки PIA не требуется. Это упрощает развертывание. Сборки PIA не обязательно должны присутствовать на компьютере пользователя, а поскольку приложение не требует развертывания конкретной версии сборки PIA, можно разрабатывать приложения, которые работают с различными версиями Office, если в этих версиях имеются все необходимые интерфейсы API.

Поскольку развертывать сборки PIA больше не требуется, можно создавать приложения для применения в сложных сценариях, чтобы эти приложения работали с несколькими версиями Office, включая и более ранние версии. Тем не менее это возможно только в том случае, если в коде не используются интерфейсы API, которые недоступны в используемой версии Office. Разработчик не всегда знает, был ли доступен тот или иной интерфейс API в более ранней версии, поэтому работать с более ранними версиями Office не рекомендуется.

До Office 2003 сборки PIA не публиковались. Поэтому единственными способом создания сборки взаимодействия в Office 2002 или более ранних версиях является импорт ссылки COM.

Закройте окно манифеста и окно сборки.

Восстановление зависимости PIA

В обозревателе решений нажмите кнопку Показать все файлы. Разверните папку Ссылки и выберите Microsoft.Office.Interop.Excel. Нажмите клавишу F4, чтобы открыть окно Свойства.

В окне Свойства измените значение свойства Внедрить типы взаимодействия с True на False.

Повторите шаги 1 и 2 этой процедуры для сборки Microsoft.Office.Interop.Word .

Нажмите клавишу F5, чтобы проверить, что проект по-прежнему выполняется правильно.

Повторите шаги 1–3 из предыдущей процедуры, чтобы открыть окно сборки. Обратите внимание, что сборки Microsoft.Office.Interop.Word и Microsoft.Office.Interop.Excel больше не входят в список внедренных сборок.

Дважды щелкните значок МАНИФЕСТ и просмотрите список сборок, на которые имеются ссылки. В списке будут указаны сборки Microsoft.Office.Interop.Word и Microsoft.Office.Interop.Excel . Поскольку приложение содержит ссылки на сборки PIA Excel и Word, а свойство Внедрить типы взаимодействия имеет значение False, на компьютере пользователя должны храниться обе сборки.

В Visual Studio в меню Построение выберите пункт Очистить решение, чтобы очистить завершенный проект.

Язык Visual Basic for Applications ( Visual Basic для приложений, сокращенно VBA ) является основным инструментом офисного программирования, т.е. программирования в пакетах MS Office. VBA – реализация языка программирования Visual Basic , встроенная в линейку продуктов Microsoft Office, а также во многие программные пакеты, такие как AutoCAD, WordPerfect и другие.

Язык Basic был разработан как средство обучения и работы непрофессиональных программистов. Его назначение ясно из названия, которое является сокращением от Beginner 's All-purpose Symbolic Instruction Code (многофункциональный язык символических инструкций для начинающих). Популярность этому языку придала его простота. Язык Basic поставлялся вместе с компьютерами и рекомендовался для начинающих программистов.

Microsoft Visual Basic (VB) – популярный инструмент разработки приложений в среде Windows , является очень удобным средством для решения небольших задач и для обучения непрограммистов, которые хотели бы создавать собственные приложения.

В MS Office 97 впервые была реализована общая среда разработки VBA 5.0 для решения задач как по автоматизации операций, так и по созданию законченных приложений. VBA 5.0 использовала тот же самый языковый механизм и среду разработки, что и универсальная система VB 5.0. В состав новых версий MS Office включаются и новые версии VBA , которые применяются в настоящее время во многих офисных пакетах. Язык VBA , являясь унифицированным языком программирования для всех приложений, упрощает создание программных решений. VBA заменил прежние специализированные языки разработки, например, WordBasic, и расширил их функциональные возможности.

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

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

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

13.2. Преимущества и недостатки разработки приложений в офисной среде

К достоинствам VBA можно отнести следующие:

  • относительная простота разработки. Несмотря на свою мощность и гибкость, этот язык очень прост для изучения. Пользователи- непрограммисты могут управлять своим документом, сами создавать приложения "под себя";
  • язык встроен в офисную среду. Пакет MS Office широко распространен. Миллионы людей по всему миру используют приложенияMS Office в своей повседневной работе и им проще работать с уже известной технологией. Любое дополнительное решение в этой среде не вызывает серьезных затрат на обучение и поддержку;
  • сокращение времени и затрат при использовании MS Office в качестве платформы для разработки объясняется тем, что большинство необходимых функций уже реализовано в офисных приложениях. Это форматирование текстов, выполнение разного рода расчетов, поиск и отбор данных, построение диаграмм и т.д. Разработчик включает готовые компоненты во вновь создаваемые приложения, может повторно задействовать разработанные программы в нескольких проектах, основанных на одном или на разных офисных приложениях;
  • среда MS Office обеспечивает интегрированные решения. Так как все офисные приложения тесно интегрированы и имеют единый интерфейс, решения, создаваемые с помощью компонентов MS Office, будут иметь похожую структуру и включать все средства обработки документов, необходимые для работы конечного пользователя.

Основными недостатками VBA являются:

  • невозможность создания автономного приложения и открытость
  • программ для случайного изменения;
  • реализована только парольная защита модулей проекта;
  • наличие процедур VBA может восприниматься как макровирусы.

Вследствие широкого распространения макровирусов в офисных пакетах предусмотрены опции для защиты от вирусов. Пользователь по своему усмотрению может исполнять макросы VBA или не исполнять их.

Пакет программ Microsoft Office — это не только фактический стандарт офисного ПО, но и весьма сложная и многофункциональная среда, позволяющая создавать решения, предназначенные прежде всего для применения возможностей Microsoft Office и автоматизации рутинных действий пользователя при работе с документами. Эта программная платформа, называемая Объектной Моделью Microsoft Office (Microsoft Office Object Model), или же Автоматизацией Microsoft Office (Microsoft Office Automation) основана на Объектной Модели COM и содержит обширный набор классов, предоставляющих доступ практически к любому элементу или действию, доступному пользователю при работе с Microsoft Office через графический интерфейс.


Объектная модель Microsoft Word (частично)

Говоря о программировании для Microsoft Office, часто подразумевают «внутренние» программы — макросы, написанные на VBA (Visual Basic for Applications, реализация Visual Basic в Microsoft Office) и встраиваемые непосредственно в документы.


Создание макроса для Microsoft Excel

Благодаря широким возможностям языка (за счет доступа к внешним dll и компонентам практически неограниченным) и удобной модели распространения (с файлами документов) макросы Microsoft Office использовались для создания зловредного ПО с момента появления VBA и получили собственное название — макровирусы. Несмотря на некоторое ужесточение настроек, связанных с макросами (на текущий момент актуальные версии Microsoft Office при настройках по умолчанию запрещают автоматическое выполнение макросов, уведомляя об этом пользователя), макровирусы активно применяются злоумышленниками и сейчас. Для эффективного использования этой технологии с двадцатилетней историей оказалось достаточно дополнить ее элементами социальной инженерии.

image


Предложение пользователю разрешить макросы в документе, содержащем зловредный код

image


Доступ к объектной модели Microsoft Office из PowerShell

Объектная Модель Microsoft Office представляет приложения Microsoft Office в виде COM-объектов. Но существует также возможность добавлять в документы и другие COM-объекты — управляющие элементы ActiveX, не относящиеся к Microsoft Office, но присутствующие в операционной системе. Будучи включенными в документ, эти элементы могут взаимодействовать с кодом макросов, либо выполнять собственный код, основанный на добавляемых в документ «свойствах» — properties объекта. В умелых руках встраивание элементов ActiveX также может приводить к выполнению произвольного кода, поэтому в последних версиях Microsoft Office по умолчанию запрещен запуск встроенных ActiveX за исключением некоторого «белого списка» элементов. Впрочем, пользователь и в этом случае при желании может явно разрешить выполнение.


Предупреждение о встроенных ActiveX

Предложение разрешить (или запретить) запуск активного содержимого поступит пользователю при открытии документа нормальным образом в соответствующем приложении. Что же случится, если открыть тот же документ, воспользовавшись Объектной Моделью Microsoft Office?
Примеров таких программ — великое множество на самых разных языках и под самые разные задачи:

Пример на VBScript

Пример на C++

Пример на PowerShell

При изучении подобных примеров лишь один раз нам попалась в коде интересная строчка:

Application.AutomationSecurity Property (Excel)

Returns or sets an MsoAutomationSecurity constant that represents the security mode Microsoft Excel uses when programmatically opening files.

MsoAutomationSecurity can be one of these MsoAutomationSecurity constants.

msoAutomationSecurityByUI. Uses the security setting specified in the Security dialog box.|
msoAutomationSecurityForceDisable. Disables all macros in all files opened programmatically without showing any security alerts.
msoAutomationSecurityLow. Enables all macros. This is the default value when the application is started.

Оказывается, если приложение Microsoft Office запущено как элемент автоматизации, то код макросов в открываемых документах будет по умолчанию выполнен. Если, конечно, специально не изменить уровень безопасности управляющей программой. Это умолчание не зависит от настроек, выставленных пользователем или администратором. Помимо макросов, будет также загружен и выполнен код любых элементов ActiveX, добавленных в документ.



Выполнение макроса при открытии документа через Автоматизацию

Эта неочевидная особенность, судя по всему, достаточно редко учитывается. К примеру, офисные программы других производителей применяют объектную модель Microsoft Office для импорта и экспорта данных в документы Word и Excel. Достаточно часто встречаются примеры для 1С:

Пример для 1С

Программы 1С, называемые «обработками», также могут использовать COM вообще и объектную модель Microsoft Office в частности. Некоторые полезные обработки предоставляются пользователям производителем, например, обработка «ЗагрузкаДанныхИзТабличногоДокумента.epf» позволяет загружать в базу данные из внешних табличных документов.



Выполнение макроса при открытии документа через обработку 1С

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

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