OpenXML SDK Injeta VBA na pasta de trabalho do Excel

Posso injetar com êxito um pedaço de código VBA em uma pasta de trabalho do Excel gerada, mas o que estou tentando fazer é usar o evento Workbook_Open () para que o código do VBA seja executado quando o arquivo for aberto. Estou adicionando a sub ao objeto "ThisWorkbook" no meu arquivo de modelo xlsm. Em seguida, uso a ferramenta de produtividade openxml para refletir o código e obter os dados VBA codificado

Quando o arquivo é gerado e eu vejo o VBA, vejo os objetos "ThisWorkbook" e "ThisWorkbook1". Meu VBA está no objeto "ThisWorkbook", mas o código nunca é executado em aberto. Se eu mover meu código VBA para "ThisWorkbook1" e reabrir o arquivo, ele funcionará bem. Por que um "ThisWorkbook" extra é criado? Não é possível injetar uma planilha do Excel com um sub Workbook_Open ()? Aqui está um trecho do código C # que estou usando:

private string partData = "...";  //base 64 encoded data from reflection code
//open workbook, myWorkbook
VbaProjectPart newPart = myWorkbook.WorkbookPart.AddNewPart<VbaProjectPart>("rId1");
System.IO.Stream data = GetBinaryDataStream(partData);
newPart.FeedData(data);
data.Close();
//save and close workbook

lguém tem ideia

questionAnswers(6)

yourAnswerToTheQuestion