2

Pythonを使用してExcelマクロを実行し、Excelを閉じようとしています。私は次のものを持っています:

 import win32com.client
 import os

 xl = win32com.client.DispatchEx("Excel.Application")
 wb = xl.workbooks.open("X:\Location\Location2\File1.xlsm")
 xl.run("File1.xlsm!WorkingFull")
 xl.Visible = True
 wb.Close(SaveChanges=1)
 xl.Quit

xl.run( "File1.xlsm!WorkingFull")を取り出すと、スクリプトが正常に開いたり閉じたりします。これを実行すると、次のエラーが発生します。

トレースバック(最後の最後の呼び出し):ファイル "C:\ Python27 \ File1.py"、行6、xl.run( "File1.xlsm!WorkingFull")ファイル ""、行2、実行com_error:(-2147352567 、'例外が発生しました。'、(0、u'Microsoft Excel'、u"マクロ'File1.xlsm!WorkingFull'を実行できません。このワークブックでマクロが使用できないか、すべてのマクロが無効になっている可能性があります。"、u ' xlmain11.chm'、0、-2146827284)、なし)

マクロを有効にしていて、ブックでそれを知っていますが、何が問題ですか?

4

1 に答える 1

5

Python を使用して Excel マクロを実行するためのコードを以下に示します。このコードは、このSite-Linkにあります。このサイトは、将来役立つ可能性のある Excel、VBA、および Python スクリプトのその他のリファレンスとして使用してください。

from __future__ import print_function
import unittest
import os.path
import win32com.client

class ExcelMacro(unittest.TestCase):
    def test_excel_macro(self):
        try:
            xlApp = win32com.client.DispatchEx('Excel.Application')
            xlsPath = os.path.expanduser('C:\test1\test2\test3\test4\MacroFile.xlsm')
            wb = xlApp.Workbooks.Open(Filename=xlsPath)
            xlApp.Run('macroName')
            wb.Save()
            xlApp.Quit()
            print("Macro ran successfully!")
        except:
            print("Error found while running the excel macro!")
            xlApp.Quit()
if __name__ == "__main__":
    unittest.main()
于 2014-02-20T21:18:49.233 に答える