前提・実現したいこと
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
現在Excelマクロをpythonから実行しようとしており、xlwingsを使おうとしています。しかし、マクロは、マクロをかけたいブックに書いてあるのではなく、違うブックに書いてあります。VBAコードはマクロをかけたいファイルが複数入ったフォルダを一括処理するよう作られており、フォルダが指定されています。
この状況でマクロをpythonから開けばマクロで指定したフォルダ内のExcelファイル全てにマクロをかけることができると考えたのですが、うまくいきません。どうしてでしょうか?
発生している問題・エラーメッセージ
エラーメッセージ pywintypes.com_error: (-2147352567, '例外が発生しました。', (0, 'Microsoft Excel', "マクロ ''res.xlsm'!Batch_30min_extraction_res_last' を実行できません。このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。", 'xlmain11.chm', 0, -2146827284), None)
該当のソースコード
ソースコード # -*- coding: utf-8 -*- import shutil import pandas as pd import csv import openpyxl import glob import os import xlwings as xw #vba対象エクセルのファイルパスを指定 vbafile = 'vbaコードが書いてあるマクロの絶対パス' #マクロVBAを呼び出して実行 App = xw.App() wb = App.books.open(vbafile) macro=wb.macro('Batch_30min_extraction_res_last') macro() #プログラム4|エクセルファイルを保存 newfilename = 'Macro_' + filename wb.save(newfilename) #プログラム5|エクセルファイルを閉じる wb.close() App.quit()
試したこと
pywin32のバージョンを変えてみましたができませんでした。
openxlを使ってみたが同じように無理でした。
補足情報(FW/ツールのバージョンなど)
python 3.7.4
xlwings 0.15.10
pywin32 224
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。