Добавьте код в библиотеку Excel VBA с помощью Python

В этом кратком руководстве объясняется процесс добавления кода в Excel библиотеке VBA с использованием Python. В нем содержатся сведения о настройке IDE для разработки, список шагов, определяющих задачи программирования, а также пример кода, демонстрирующий, как использовать библиотеку макросов Excel с использованием Python. Вы научитесь получать доступ к библиотеке VBA и добавлять модули/коды в соответствии с требованиями.

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

  1. Настройте IDE на использование Aspose.Cells для Python через Java для обновления библиотеки VBA.
  2. Создайте объект Workbook, получите доступ к листу и добавьте новый module.
  3. Получите доступ к вновь созданному модулю, используя возвращенный индекс при создании модуля.
  4. Задайте имя модуля
  5. Установить код для модуля
  6. Сохраните полученный файл 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.

 Русский