Python を使用してワークブックを作成すると、マクロが使用できないようです。Python によって作成されたファイルをシャットダウンし、再起動して、再度開いても、マクロ オプションがまだありません。ただし、Excel ファイルを手動で作成した場合は、Python コードを使用して手動で作成した Excel ファイルを開き、正常に動作するマクロを実行します。
サンプルコードが提供されていますが、Excel内またはコンピューター(政府のコンピューター、管理者権限はありますが)で不適切な設定をしている可能性があります。マクロ設定ですべてのマクロを有効にし、このサイトで入手可能な文献を確認しましたが、まだ問題があります。
import win32com.client
xl = win32com.client.Dispatch("Excel.Application")
xl.Visible = True
wb = xl.Workbooks.Add()
ws = wb.Worksheets.Add()
cell = ws.Cells(1)
cell.Value = 'text'
wb.Close(True, r'c:\AcousticAutomation\TestFolder\TestData\test.xls')
「test.xls」を手動で開くと、マクロ セクションにマクロがありません。したがって、コードがクラッシュするため、マクロ実行行を追加しませんでした。
txtファイルをcvsファイルに変換/名前変更すると、同じ問題が発生します.Excelでcsvを手動で開くと、データはそこにありますが、マクロオプションは利用できません:
os.rename('c:\..file path...\test.txt', 'c:\..file path..\test.csv')
ただし、手動でファイルを作成して使用する場合:
import win32com.client
xl = win32com.client.Dispatch("Excel.Application")
xl.Visible = True
wb = xl.WorkBooks.open(r'c:\..test file path..\test.xls’)
xl.Run(‘DeleteTopRows')
マクロが識別され、正常に動作します。そのため、ワークブックを作成するための複数のバリエーションを試しましたが、python を使用してファイルを作成するたびにマクロが「消え」、その時点でマクロが「存在しない」ためコードがクラッシュするようです。