Макровирусы (macro viruses) являются программами на языках (макроязыках), встроенных в некоторые системы обработки данных (текстовые редакторы, электронные таблицы и т. д.). Для своего размножения такие вирусы используют возможности макроязыков и при их помощи переносят себя из одного зараженного файла (документа или таблицы) в другие. Наибольшее распространение получили макровирусы для Microsoft Word, Excel и Office 97.
Для существования вирусов в конкретной системе необходимо наличие встроенного в систему макроязыка с возможностями:
1) привязки программы на макроязыке к конкретному файлу;
2) копирования макропрограмм из одного файла в другой;
3) получения управления макропрограммой без вмешательства пользователя (автоматические или стандартные макросы).
Данным условиям удовлетворяют редакторы Microsoft Word, Office 97 и AmiPro, а также электронная таблица Excel. Эти системы содержат в себе макроязыки (Word — Word Basic, Excel и Office 97 — Visual Basic), a также:
1) макропрограммы привязаны к конкретному файлу (AmiPro) или находятся внутри файла (Word, Excel, Office 97);
2) макроязык позволяет копировать файлы (AmiPro) или перемещать макропрограммы в служебные файлы системы и редактируемые файлы (Word, Excel, Office 97);
3) при работе с файлом при определенных условиях (открытие, закрытие и т. д.) вызываются макропрограммы (если таковые есть), которые определены специальным образом (AmiPro) или имеют стандартные имена (Word, Excel, Office 97).
Эта особенность макроязыков предназначена для автоматической обработки данных в больших организациях или в глобальных сетях и позволяет организовать так называемый "автоматизированный документооборот". С другой стороны, возможности макроязыков таких систем позволяют вирусу переносить свой код в другие файлы и заражать их.
На сегодняшний день известны четыре системы, для которых существуют вирусы, — Microsoft Word, Excel, Office 97 и AmiPro. В этих системах вирусы получают управление при открытии или закрытии зараженного файла, перехватывают стандартные файловые функции и затем заражают файлы, к которым каким-либо образом идет обращение. По аналогии с MS-DOS можно сказать, что большинство макровирусов являются резидентными: они активны не только в момент открытия/закрытия файла, но до тех пор, пока активен сам редактор.