0

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 を使用してファイルを作成するたびにマクロが「消え」、その時点でマクロが「存在しない」ためコードがクラッシュするようです。

4

1 に答える 1