Управление кодами VBA Visio с поддержкой макросов diagram.

Добавить модуль VBA

Следующий пример кода добавляет новый модуль VBA и код макроса и сохраняет выходные данные в формате VSDM. Один раз вы откроете выходной файл VSDM в Microsoft Visio и щелкните значокРазработчик > Visual Basic команд меню, вы увидите модуль с именем «TestModule», а внутри него вы увидите следующий код макроса.

 Sub ShowMessage()

    MsgBox "Welcome to Aspose!"

End Sub

Вот пример кода для создания выходного файла VSDM с модулем VBA и кодом макроса.

// ExStart:ApplyThemeToNewShape
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_Shapes();
// Load a diagram
Diagram diagram = new Diagram(dataDir + "1.vsdm");
//Add module
int index = diagram.VbaProject.Modules.Add(VbaModuleType.Procedural, "TestModule");
//Get module
Aspose.Diagram.Vba.VbaModule module = diagram.VbaProject.Modules[index];
//Set module
module.Codes = "Attribute VB_Name = \"module2\"\r\n Sub Button1_Click()\r\n\r\n MsgBox \"Welcome to Aspose!\"\r\n\r\nEnd Sub\r\n";
diagram.Save(dataDir + "1out.vsdm", SaveFileFormat.VSDM);

Изменить VBA или макрос

Следующий пример кода загружает исходный файл Visio, внутри которого находится следующий код VBA или макроса.

 Sub Button1_Click()

    MsgBox "This is test message."

End Sub

После выполнения образца кода Aspose.Diagram код VBA или макроса будет изменен следующим образом.

 Sub Button1_Click()

    MsgBox "This is Aspose.Diagram message."

End Sub

Вы можете скачатьисходный файл Visio ивыходной файл Visio по указанным ссылкам.

// ExStart:ApplyThemeToNewShape
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_Shapes();
// Load a diagram
Diagram diagram = new Diagram(dataDir + "1.vsdm");
//Get module
Aspose.Diagram.Vba.VbaModule module = diagram.VbaProject.Modules[2];
//Set module
module.Codes = "Attribute VB_Name = \"module2\"\r\n Sub Button1_Click()\r\n\r\n MsgBox \"This is Aspose.Diagram message.\"\r\n\r\nEnd Sub\r\n";
diagram.Save(dataDir + "1out.vsdm", SaveFileFormat.VSDM);

Предварительные темы