Макровирусы (macro viruses) заражают лишь файлы, созданные вполне определенными программами, такими как Microsoft Word или Microsoft Excel. Макровирусы распространяются при загрузке инфицированного файла, например, инфицированного документа Word.
В отличие от других типов вирусов, для написания которых используются языки ассемблера, C/C++, BASIC или Pascal, макровирусы пишутся с использованием языка программирования макросов, используемого конкретной программой. В большинстве случаев для написания макровирусов используется разработанный фирмой Microsoft язык Visual Basic для приложений (VBA), хотя некоторые из старых макровирусов написаны на языке WordBasic, который был первоначальным языком программирования макросов для Microsoft Word.
Макровирусы заражают шаблоны, с помощью которых определяются поля, шрифты и другие параметры форматирования документов. Каждый раз, когда на основе инфицированного шаблона создается новый документ, макровирус пытается инфицировать другой шаблон и новый документ.