Добавить модуль в библиотеку Excel VBA на Java

В этой статье описано, как добавить модуль в библиотеку Excel VBA на Java. В нем содержатся сведения о настройке среды разработки, список задач программирования и пример кода, демонстрирующий добавление модуля в библиотеку кода VBA на Java. Вы также научитесь задавать различные свойства модуля, например код VBA, демонстрирующий разработку макроса для файла Excel.

Действия по изменению библиотеки кода Excel VBA на Java

  1. Настройте IDE на использование Aspose.Cells for Java для работы с VBA.
  2. Создайте экземпляр объекта Workbook, получите доступ к sheet и добавьте модуль для выбранного листа.
  3. Получите доступ к новому модулю из книги и задайте его имя.
  4. Напишите и протестируйте код VBA и используйте его как свойство кодов в модуле.
  5. При необходимости сохраните выходной файл Excel в формате XLSM на диске или в потоке.

Эти шаги суммируют процесс внесения дополнений в библиотеку исходного кода Excel VBA на Java. Процесс прост, поскольку для добавления нового VbaModule требуется лист из книги, а затем установка в нем нескольких свойств. Установите для свойства «Коды» многострочный код VBA, чтобы макрос работал.

Код для добавления кода в библиотеку макросов Excel на Java

import com.aspose.cells.*;
public class Main
{
public static void main(String[] args) throws Exception // Add VBA Code in Java
{
// Set the licenses
new License().setLicense("License.lic");
// Create a workbook
Workbook wb = new Workbook();
// Select a sheet
Worksheet ws = wb.getWorksheets().get(0);
// Add VBA Module and get its reference
int idx = wb.getVbaProject().getModules().add(ws);
VbaModule module = wb.getVbaProject().getModules().get(idx);
// Assign a name to the module
module.setName("SetGreenEven");
// Set code for the module
module.setCodes("""
Private Sub Worksheet_Change(ByVal Target As Range)
' Verify if updated cell is within a specified range
If Not Intersect(Target, Range("A1:Z100")) Is Nothing Then
' Loop through all cells
For Each Cell In Target
' Check the cell value and apply formatting accordingly
If Cell.Value >= 80 Then
Cell.Interior.Color = RGB(0, 255, 0) ' Green
ElseIf Cell.Value >= 50 And Cell.Value < 80 Then
Cell.Interior.Color = RGB(255, 165, 0) ' Orange
ElseIf Cell.Value < 50 Then
Cell.Interior.Color = RGB(152, 133, 88) ' Dark Tan
Else
' Reset the background color if none of the conditions are met
Cell.Interior.ColorIndex = xlNone
End If
Next Cell
End If
End Sub
""");
// Save the output
wb.save("sampleWithMacro.xlsm", SaveFormat.XLSM);
System.out.println("Done");
}
}

В этом фрагменте кода показано, как получить доступ к библиотеке кода VBA на Java и добавить в нее модуль с кодом. В этом примере кода мы установили имя и код, который меняет цвет ячеек в соответствии с диапазоном значений, определенным в коде VBA. Вы можете добавить модуль, используя другой перегруженный метод, который принимает значение перечислителя VbaModuleType в качестве аргумента, включающего CLASS, DESIGNER, DOCUMENT и PROCEDURAL.

Эта статья научила нас создавать новый макрос в файле Excel. Чтобы применить условное форматирование в Excel, обратитесь к статье Применение условного форматирования в Excel с помощью Java.

 Русский