В этом кратком руководстве объясняется процесс добавления кода в Excel библиотеке VBA с использованием Python. В нем содержатся сведения о настройке IDE для разработки, список шагов, определяющих задачи программирования, а также пример кода, демонстрирующий, как использовать библиотеку макросов Excel с использованием Python. Вы научитесь получать доступ к библиотеке VBA и добавлять модули/коды в соответствии с требованиями.
Действия по добавлению библиотеки исходного кода Excel VBA с использованием Python
- Настройте IDE на использование Aspose.Cells для Python через Java для обновления библиотеки VBA.
- Создайте объект Workbook, получите доступ к листу и добавьте новый module.
- Получите доступ к вновь созданному модулю, используя возвращенный индекс при создании модуля.
- Задайте имя модуля
- Установить код для модуля
- Сохраните полученный файл Excel как XLSM.
Эти шаги суммируют процесс доступа к библиотеке кода VBA с помощью Python и добавления модулей. Начните процесс с создания или загрузки книги, выбора листа и добавления модуля и кода в проект VBA. Наконец, задайте имя и коды во вновь созданном модуле и сохраните файл XLSM на диске.
Код для обновления библиотеки кода VBA с использованием Python
import jpype | |
import asposecells as cells | |
jpype.startJVM() | |
from asposecells.api import License, Workbook, SaveFormat | |
# Instantiate a license | |
license = License() | |
license.setLicense("License.lic") | |
# Create a workbook | |
wb = Workbook() | |
# Select a sheet | |
ws = wb.getWorksheets().get(0) | |
# Add VBA Module and get its reference | |
idx = wb.getVbaProject().getModules().add(ws) | |
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) | |
Dim ws As Worksheet | |
Dim cell As Range | |
' Set the active sheet | |
Set ws = ActiveSheet | |
' Check if the changed cells have even numeric values | |
For Each cell In Target | |
If IsNumeric(cell.Value) And cell.Value Mod 2 = 0 Then | |
' Set the background color to green | |
cell.Interior.Color = RGB(0, 255, 0) ' RGB for green | |
Else | |
' If the value is not even, reset the background color to default (optional) | |
cell.Interior.ColorIndex = xlNone | |
End If | |
Next cell | |
End Sub | |
""") | |
# Save the output | |
wb.save("sampleWithMacro.xlsm", SaveFormat.XLSM) | |
print("VBA Module with code added successfully!!!") |
В этом примере кода демонстрируется процесс добавления модуля с кодом в библиотеку кода Excel VBA с использованием Python. Этот пример кода VBA меняет цвет фона каждой ячейки на зеленый, когда вы вводите в ячейку четное число. Вы можете установить тип модуля Vba ПРОЦЕДУРНЫЙ, ДОКУМЕНТ, КЛАСС или ДИЗАЙНЕР.
В этой статье был описан процесс добавления макроса в файл Excel. Если вы хотите снять защиту с файла Excel, обратитесь к статье Как снять защиту Excel в Python.