Excel Macro EnabledワークブックのVBAコードを管理する
PythonでVBAモジュールを追加する
次のサンプルコードは、新しいワークブックを作成し、新しいVBAモジュールとマクロコードを追加し、出力をXLSM形式で保存します。作業結果のXLSMファイルをMicrosoft Excelで開いて開発者 > Visual Basicメニューコマンドをクリックすると、「TestModule」というモジュールが表示され、その中に次のマクロコードが表示されます。
Sub ShowMessage()
MsgBox "Welcome to Aspose!"
End Sub
VBAモジュールとマクロコードを含む出力XLSMファイルを生成するためのサンプルコードは次のとおりです。
from aspose.cells import SaveFormat, Workbook | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Create new workbook | |
workbook = Workbook() | |
# Access first worksheet | |
worksheet = workbook.worksheets[0] | |
# Add VBA Module | |
idx = workbook.vba_project.modules.add(worksheet) | |
# Access the VBA Module, set its name and codes | |
module = workbook.vba_project.modules[idx] | |
module.name = "TestModule" | |
module.codes = "Sub ShowMessage()" + "\r\n" + " MsgBox \"Welcome to Aspose!\"" + "\r\n" + "End Sub" | |
# Save the workbook | |
workbook.save(dataDir + "output_out.xlsm", SaveFormat.XLSM) |
PythonでVBAまたはマクロを修正する
Aspose.Cells for Python via .NET を使用してVBAまたはマクロコードを修正できます。Aspose.Cells for Python via .NETには、Excelファイル内のVBAプロジェクトを読み取り修正するための名前空間とクラスが追加されています。
- Aspose.Cells.Vba
- VbaProject
- VbaModuleCollection
- VbaModule
この記事では、Aspose.Cells for Python via .NETを使用してソースExcelファイル内のVBAまたはマクロコードを変更する方法を説明します。
次のサンプルコードは、次のようなVBAまたはマクロコードが含まれているソースExcelファイルをロードします。
Sub Button1_Click()
MsgBox "This is test message."
End Sub
Aspose.Cells for Python via .NETのサンプルコードを実行した後、VBAまたはマクロコードはこのように修正されます。
Sub Button1_Click()
MsgBox "This is Aspose.Cells message."
End Sub
提供されたリンクから ソースExcelファイル と 出力Excelファイル をダウンロードできます。
from aspose.cells import Workbook | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Create workbook object from source Excel file | |
workbook = Workbook(dataDir + "sample.xlsm") | |
# Change the VBA Module Code | |
for module in workbook.vba_project.modules: | |
code = module.codes | |
# Replace the original message with the modified message | |
code = code.replace("This is test message.", "This is Aspose.Cells message.") | |
module.codes = code | |
# Save the output Excel file | |
workbook.save(dataDir + "output_out.xlsm") |