Цей короткий посібник пояснює процес додавання коду в 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 на PROCEDURAL, DOCUMENT, CLASS або DESIGNER.
У цій статті описано процес додавання макросу до файлу Excel. Якщо ви хочете зняти захист файлу Excel, зверніться до статті Як зняти захист Excel у Python.