複数のExcelファイルからデータを転記した後、指定行ごとに縦持ちから横持ちに変換したい
前提
複数のExcelファイルからデータを転記し(縦持ちのリストになります)、さらにそれを指定行(この場合、11行)ごとに縦持ちから横持ちに変換するプログラムを考えています。上図のようなイメージです。
複数のExcelファイルからデータを転記するところまではできましたが、そこから横持ちに変換することができません。Excelマクロを実装し(Excelマクロはできました)、それを実行しようとしてもマクロが実行されないので、横持ちに変換するコードもPythonで書きたいと思っています。あるいは、PythonでExcelマクロを実行しても問題ありません。
ちなみに、Excelマクロだとこんな感じです。
Dim i As Long
Dim Q As Long
Dim Z As Long
Dim LastRow As Long
Dim myList As Variant
'A列のデータを配列に格納 myList = Range("A1", Range("A" & Rows.Count).End(xlUp)) '最終行を取得 LastRow = Cells(Rows.Count, 1).End(xlUp).Row Z = 1 '列をループ For i = 1 To LastRow / 11 '配列を3つ分ループ For Q = 0 To 10 'D~F列に配列を転記 Cells(i, Q + 3) = myList(Z, 1) Z = Z + 1 Next Q Next i
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
import glob import openpyxl from tkinter import messagebox from openpyxl import load_workbook target_dir = 'C:/Users/xxxxxx/Desktop/Python/Multiple_Files/logs' wb1 = load_workbook('aaaaaa.xlsm') ws1 = wb1.worksheets[1] files = glob.glob(target_dir + '/*.xlsx') for fname in files: book = openpyxl.load_workbook(fname, data_only=True) sheet = book.active rows = sheet["D23":"D33"] for row in rows: values = [cell.value for cell in row] if values[0] is None: break ws1.append(values) # 別名で保存 wb1.save('bbbbbb.xlsx')
試したこと
Excelのテンプレートにマクロを実装し、PythonでのExcelマクロ実行を試みましたが実行されませんでした。
補足情報(FW/ツールのバージョンなど)

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/02/16 07:18
2023/02/16 07:57 編集
2023/02/16 08:09
2023/02/16 08:40
2023/02/16 10:24
2023/02/21 01:44 編集