0

次の python メソッドを使用して、Excel マクロを呼び出します。それが機能したときはうれしかったのですが、これを実行するたびに、マクロを使用していた.XLAと同じ名前のWindows一時/ロックファイルが表示されるのではないかと思っていました。

class XlaMakeUnmake:

    __configFile = 'xla_svn.cfg'
    __vbaTools = 'makeProtected.xla'
    __entries = {}

    def __init__(self):
        self.__readConfig()

    def __newDirs(self, dir):
        try:
            os.makedirs(dir)
        except OSError, e:
            if e.errno != errno.EEXIST:
                raise 

    ### WILL ONLY WORK FOR UNPROTECTED
    '''
    filePath: path of XLA to unmake
    outputDir: folder in which the lightweight xla and its components will be pushed to
    '''
    def unmake(self, filePath, outputDir):
        xl = win32com.client.Dispatch("Excel.Application")
        xl.Visible = 0
        self.__newDirs(outputDir)
        xl.Application.Run("'" + os.getcwd() + os.sep + self.__vbaTools +   "'!Unmake", filePath, outputDir)

タスク マネージャーを開くと、Excel プロセスがまだ実行されていることがわかります...ジョブが完了したときにクリーンな方法でそれを強制終了するにはどうすればよいですか? xl.Application.RunMacro への非同期呼び出しを起動していますか? その場合はややこしいかも…

みんなありがとう !!;)

4

1 に答える 1

2

Python はわかりませんが、以下を使用する必要があります。

xl.Quit
于 2011-12-02T04:21:41.683 に答える