В этой статье описано, как добавить модуль в библиотеку Excel VBA на Java. В нем содержатся сведения о настройке среды разработки, список задач программирования и пример кода, демонстрирующий добавление модуля в библиотеку кода VBA на Java. Вы также научитесь задавать различные свойства модуля, например код VBA, демонстрирующий разработку макроса для файла Excel.
Действия по изменению библиотеки кода Excel VBA на Java
- Настройте IDE на использование Aspose.Cells for Java для работы с VBA.
- Создайте экземпляр объекта Workbook, получите доступ к sheet и добавьте модуль для выбранного листа.
- Получите доступ к новому модулю из книги и задайте его имя.
- Напишите и протестируйте код VBA и используйте его как свойство кодов в модуле.
- При необходимости сохраните выходной файл 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.