Макросы можно вставлять (и запускать) программно в момент создания документов.
Вставка макроса:
X++:
public void setVBACode(str _code)
{
COM vbp;
COM vbc;
COM vbmdl;
COM vbcode;
;
vbp = comDocument.VBProject();
vbc = vbp.VBComponents();
vbmdl = vbc.Add(1);
vbcode = vbmdl.CodeModule();
vbcode.InsertLines(vbcode.CountOfLines() + 1, _code);
}
Запуск макроса:
X++:
void runVBACode(str _name)
{
comApplication.run(_name);
}
Перед использованием надо разрешить программный доступ к Excel в его настройках.