Управление кодами VBA для книги Excel с поддержкой макросов.
Добавление модуля VBA на C#
В следующем образце кода создается новая книга и добавляется новый модуль VBA и код макроса, и сохраняется в формате XLSM. Когда вы откроете файл XLSM в Microsoft Excel и нажмете команды Разработчик > Визуальный Basic, вы увидите модуль под названием “TestModule” и внутри него будет следующий код макроса.
Sub ShowMessage()
MsgBox "Welcome to Aspose!"
End Sub
Вот образец кода для создания файла XLSM с модулем VBA и кодом макроса.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create new workbook | |
Workbook workbook = new Workbook(); | |
// Access first worksheet | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Add VBA Module | |
int idx = workbook.VbaProject.Modules.Add(worksheet); | |
// Access the VBA Module, set its name and codes | |
Aspose.Cells.Vba.VbaModule module = workbook.VbaProject.Modules[idx]; | |
module.Name = "TestModule"; | |
module.Codes = "Sub ShowMessage()" + "\r\n" + | |
" MsgBox \"Welcome to Aspose!\"" + "\r\n" + | |
"End Sub"; | |
// Save the workbook | |
workbook.Save(dataDir + "output_out.xlsm", SaveFormat.Xlsm); |
Изменение VBA или макроса на C#
Вы можете изменить код VBA или макроса с помощью Aspose.Cells. Aspose.Cells добавил следующие пространства имен и классы для чтения и изменения проекта VBA в файле Excel.
- Aspose.Cells.Vba
- VbaProject
- VbaModuleCollection
- VbaModule
Эта статья покажет вам, как изменить код VBA или макроса в исходном файле Excel с помощью Aspose.Cells.
Приведенный ниже образец кода загружает исходный файл Excel с встроенным VBA-кодом или макросом.
Sub Button1_Click()
MsgBox "This is test message."
End Sub
После выполнения приведенного выше образца кода Aspose.Cells код VBA или макрос будет изменен таким образом.
Sub Button1_Click()
MsgBox "This is Aspose.Cells message."
End Sub
Вы можете загрузить исходный файл Excel и файл Excel для вывода по указанным ссылкам.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create workbook object from source Excel file | |
Workbook workbook = new Workbook(dataDir + "sample.xlsm"); | |
// Change the VBA Module Code | |
foreach (VbaModule module in workbook.VbaProject.Modules) | |
{ | |
string code = module.Codes; | |
// Replace the original message with the modified message | |
if (code.Contains("This is test message.")) | |
{ | |
code = code.Replace("This is test message.", "This is Aspose.Cells message."); | |
module.Codes = code; | |
} | |
} | |
// Save the output Excel file | |
workbook.Save(dataDir + "output_out.xlsm"); |
Продвинутые темы
- Добавить ссылку на библиотеку в проект VBA в книге
- Назначить макрос элементу управления формы
- Проверить, действителен ли цифровая подпись кода VBA
- Проверить, подписан ли код VBA
- Проверить, подписан ли проект VBA в книге Excel
- Проверить, защищен ли и заблокирован для просмотра проект VBA
- Копирование макроса VBA UserForm DesignerStorage из шаблона в целевую книгу
- Цифрово подписать проект кода VBA c сертификатом
- Экспортировать сертификат VBA в файл или поток
- Фильтрация проекта VBA при загрузке книги
- Узнать, защищен ли проект VBA
- Защитить паролем проект VBA книги Excel