openpyxl で Excel ブックの作成者情報を一括変更する方法

大量の報告書を納品する際、作成者 (Creator) や最終更新者 (Last Modified By) を統一したい場面がございます。Microsoft Excel では “ドキュメントのプロパティ” に当たる項目ですが、openpyxl を用いると Python から一括で書き換えることが可能です。本記事ではファイル名・変数名を汎用的なものに置き換えたサンプルとともに、手順と注意点を丁寧に解説いたします。


目次

動作環境

項目内容
Python3.10 以上
主要ライブラリopenpyxl(pip install openpyxl
入力ブックreport_original.xlsx
出力ブックreport_updated.xlsx

サンプルコード

from openpyxl import load_workbook

# 1. 編集対象のブックを読み込み
workbook = load_workbook('report_original.xlsx')

# 2. 新しい作成者名を定義
author_name = 'Alex Taylor'

# 3. プロパティを書き換え
doc_prop = workbook.properties
doc_prop.creator = author_name
doc_prop.lastModifiedBy = author_name

# 4. 保存(上書き防止のため別名推奨)
workbook.save('report_updated.xlsx')

コードのポイント

項目説明
workbook.propertiesドキュメントプロパティ全体を表すオブジェクトです。
creatorブックを新規作成したユーザー名を示します。
lastModifiedBy最終保存を行ったユーザー名を示します。
別名で保存誤って元ファイルを上書きしないよう、*_updated.xlsx などの命名を推奨いたします。

よくある質問

質問回答
作成日時や最終更新日時も変更できますか。.created.modified プロパティを datetime オブジェクトで設定可能ですが、監査要件によっては変更を控えることをおすすめいたします。
複数ファイルを一括処理したい場合は。glob.glob('*.xlsx') などで対象ファイルを取得し、上記ロジックをループで回すと効率的です。
共同編集環境でも影響しますか。プロパティはファイル単位で保存されるため、共有フォルダーで配布する場合も統一された情報が表示されます。

まとめ

  • creatorlastModifiedBy を同時に更新 すれば、納品用ブックのプロパティを短時間で統一できます。
  • 別名保存により、原本のバックアップを確保すると安全です。
  • スクリプト化しておくことで、複数案件の納品準備を自動化でき、ヒューマンエラーを防止できます。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次