Word文書は最も一般的な電子文書形式の一つとして、内容を共有するためのツールとしてよく使用されます。これらの文書はネットワークやデバイス間で転送されるため、その安全性も重要です。マクロは、Word文書に埋め込むことができるVBAのミニプログラムで、自動化操作を実行するために使用されます。マクロは作業効率を向上させることができますが、悪意のある行為者がマクロを利用してユーザーのコンピュータで有害なコードを実行する可能性があるため、大きなセキュリティリスクも伴います。この記事では、Pythonを使ってWord文書からマクロを一括検出して削除する方法を紹介します。
この記事で使用する方法にはSpire.Doc for Pythonが必要です。PyPIからインストールできます:pip install Spire.Doc
。
PythonでWord文書のマクロを検出して削除する方法
Document.IsContainMacro
プロパティを使用してWord文書にマクロが含まれているかどうかを検出し、結果がTrueの場合はDocument.ClearMacros()
メソッドを使用してマクロを削除できます。
以下は操作手順です。
-
Document
とFileFormat
モジュールをインポートします。 -
Document
のインスタンスを作成します。 -
Document.LoadFromFile()
メソッドを使用してWord文書を読み込みます。 -
Document.IsContainMacro
プロパティを使用して文書にマクロが含まれているかを確認し、マクロが含まれている場合はDocument.ClearMacros()
メソッドを使用してマクロを削除します。 -
Document.LoadFromFile(string: fileName, FileFormat.Docm)
を使用して文書を保存します。 - リソースを解放します。
コード例
from spire.doc import Document, FileFormat
# Documentクラスのインスタンスを作成
doc = Document()
# Word文書を読み込む
doc.LoadFromFile("Sample.docm")
# マクロを検出して削除
if doc.IsContainMacro:
doc.ClearMacros()
# 文書を保存
doc.SaveToFile("output/DocmToDocx.docm", FileFormat.Docm)
doc.Close()
PythonでDOCM文書をDOCX形式に変換してすべてのマクロを削除する方法
マクロが含まれているDOCMファイルを直接DOCXファイルに変換して、文書内のすべてのマクロを削除することもできます。
以下は操作手順です。
-
Document
とFileFormat
モジュールをインポートします。 -
Document
のインスタンスを作成します。 -
Document.LoadFromFile()
メソッドを使用してWord文書を読み込みます。 -
Document.LoadFromFile(string: fileName, FileFormat.Docx)
を使用して文書をDOCX形式で保存します。 - リソースを解放します。
コード例
from spire.doc import Document, FileFormat
# Documentクラスのインスタンスを作成
doc = Document()
# Word文書を読み込む
doc.LoadFromFile("Sample.docm")
# 文書を保存
doc.SaveToFile("output/DocmToDocx.docx", FileFormat.Docx)
doc.Close()
この記事では、Pythonを使ってWord文書からマクロを削除する方法を示しました。
さらに多くのWord文書処理のコツについては、Spire.Doc for Pythonのチュートリアルをご覧ください。