Voeg code toe aan de Excel VBA-bibliotheek met Python

In deze korte handleiding wordt het proces uitgelegd voor het toevoegen van code in de Excel VBA-bibliotheek met behulp van Python. Het bevat details om de IDE in te stellen voor ontwikkeling, een lijst met stappen die de programmeertaken definiëren, en een voorbeeldcode die laat zien hoe u de Excel-macrobibliotheek kunt gebruiken met Python. U leert toegang te krijgen tot de VBA-bibliotheek en modules/codes toe te voegen volgens de vereisten.

Stappen om Excel VBA-broncodebibliotheek toe te voegen met Python

  1. Stel de IDE in om Aspose.Cells voor Python via Java te gebruiken om de VBA-bibliotheek bij te werken
  2. Maak een Workbook-object, open een blad en voeg een nieuw module toe
  3. Krijg toegang tot de nieuw gemaakte module met behulp van de geretourneerde index tijdens het maken van de module
  4. Stel de naam van de module in
  5. Code voor de module instellen
  6. Sla het resulterende Excel-bestand op als XLSM

Deze stappen vatten het proces samen voor toegang tot de VBA-codebibliotheek met Python en het toevoegen van modules. Begin het proces door een werkmap te maken of te laden, een werkblad te selecteren en een module en code aan het VBA-project toe te voegen. Stel ten slotte de naam en codes in de nieuw gemaakte module in en sla het XLSM-bestand op de schijf op.

Code om de VBA-codebibliotheek bij te werken met 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!!!")

Deze voorbeeldcode demonstreert het proces voor het toevoegen van een module met code aan de Excel VBA-codebibliotheek met behulp van Python. Deze voorbeeld-VBA-code verandert de achtergrondkleur van elke cel in groen wanneer u een even getal in de cel invoert. U kunt het Vba-moduletype instellen op PROCEDURAL, DOCUMENT, CLASS of DESIGNER.

In dit artikel wordt het proces beschreven van het toevoegen van een macro aan een Excel-bestand. Als u de beveiliging van een Excel-bestand wilt opheffen, raadpleegt u het artikel op Hoe u de beveiliging van Excel in Python opheft.

 Nederlands