この学期は行政業務に関わるようになりました。現在、教育、教育、安全などの仕事では、すべての活動に「事後の証拠を残す」原則が強調されています。すべての活動は、「慎重な計画と詳細な記録」を要求されます - プランの作成、写真の撮影、プランの作成、ブリーフィング、および活動写真の印刷を含みます。毎週、3〜4 枚の活動写真の記録があり、レイアウト作業は非常に煩雑です。
昨年、欠席登録、体温異常および健康状態の統計表を毎週自動生成するために Quicker を使用してみた後、活動写真の記録を半自動化または自動化する方法を探しました。このような業務の処理効率を向上させるためです。
💡 アイデアを整理する#
活動写真の記録文書は、タイトル、写真、および写真の説明で構成されています。この基礎に基づいて、テンプレートを作成し、繰り返し使用することができます。
最初の考えは、Docx ファイルが本質的には圧縮ファイルであるため、圧縮ファイル内の画像を直接置き換え、タイトルを手動で変更することで、活動写真の記録を完了することでした。
しかし、このアイデアはすぐに上司によって「一拍腿を打つ」形式の標準によって打ち砕かれました - 各写真の下には、時間、場所、テーマ、主催者の説明が必要です。
少数派の著者グループのメンバーからは、python-docx
ライブラリやメールマージの方法など、多くの提案がありました。また、Power Automate は Excel と Word の自動化フローに関連しており、上級版のサブスクリプションが必要です。Python と VBA がわからないため、私は最終的に大学で学んだ Word メールマージに頼ることにしました(
注:以下の手順では、2 つのファイル「情報テンプレート.xlsx」と「メールマージテンプレート.docx」を作成し、「F:\ Work Files \ Photo Collection \」を活動写真の保存フォルダーとして使用することを前提としています。実際の状況に応じて変更してください。
🎬 ビデオチュートリアル#
📋 準備作業#
情報テンプレートの作成#
Word メールマージは、データソースの情報を同じ形式のテンプレートに適用して、大量の個別化されたドキュメントを生成する場合に適しています。
最初のステップでは、活動写真の記録に必要な情報フィールドのテンプレートを Excel で作成しました。たとえば、「活動のテーマ」、「活動日」、「活動写真の保存フォルダー」などの基本情報を使用して、その他の固定情報を数式を使用して生成しました。
Excel ワークブックは 2 つのワークシートに分かれています - 「データの入力」と「リストの生成」。前者は関連する情報を入力するために使用され、後者は Word が参照するために生成されます。Word の IncludePicture
域はバックスラッシュ \
を処理するため、フォルダーと写真ファイルの単一バックスラッシュ \
を二重バックスラッシュ \\
に置き換える必要があります。
「写真フォルダ」、「写真パス」の 2 つの列のデータは、数式を使用して自動的に処理できます。たとえば、="F:\\ Work Files \\ Photo Collection \\"&B2
はフォルダーパスを生成し、=E2&"\\1.jpg"
は写真ファイルパスを生成します(写真は 1.jpg
、2.jpg
、3.jpg
... の形式でリネームされます)。
編集が完了したら、「情報テンプレート.xlsx」ファイルを保存します。
Word テンプレートの作成#
次のステップでは、活動写真の記録のテンプレートをファイル形式の要件に従って作成します。このステップでは、以前に作成したドキュメントを直接使用することができます。
🔗 メールマージの実行#
次のステップでは、メールマージを実行します。Word で「メール」タブに切り替え、「メールマージウィザード」に入り、データソースとして先ほど作成した情報フィールドのテンプレートを使用します。次に、文書内の情報を入力する場所にマージフィールドを挿入する必要があります。
このステップで「生成」をクリックすると、写真のない要件を満たさない活動記録が生成されます。写真の自動挿入と 1 ページに 2 枚の写真を表示する要件を満たすためには、少し多くのフィールドコードが必要です。
フィールドコード#
Word のフィールドコードは、ドキュメントに自動化されたコンテンツ、機能、またはデータを挿入するために使用される動的に更新されるコンテンツです。ページ番号、日付と時刻、メールマージ、ドキュメントプロパティ、クロスリファレンス、図表番号などが含まれます。ここでは、 IncludePicture
フィールドと Next Record
フィールドを使用する必要があります。
IncludePicture フィールドは、指定されたパスの画像を文書に挿入します。 挿入
タブで、ドキュメントパーツ - フィールド - IncludePicture
を見つけ、ファイル名に「パス」と入力し、OK をクリックしてドキュメントの指定された場所に挿入します。
まだ画像のファイルパスを入力していないため、画像はロードされません。 Alt + F9
ショートカットキーを押して、現在のドキュメントのフィールドコードを表示し、 IncludePicture
フィールドの「パス」を画像パスフィールドに置き換えます。
デフォルトでは、Word はページ単位で新しいドキュメントを生成します。同じドキュメントに複数のデータレコードを挿入するためには、 Next Record
フィールドを使用する必要があります。
使用方法は非常に簡単で、 メール
タブで ルール - 次のレコード
を見つけ、画像の説明の末尾に挿入します。次に、画像と画像の説明をコピー、貼り付け、コピー、貼り付けします。
ドキュメントの生成#
上記の手順を完了すると、活動写真の記録のテンプレートが作成されます。 メール
タブで 完了してマージ - 個別の文書を編集
をクリックし、生成後、すべてのコンテンツを選択 Ctrl + A
、フィールドの内容を更新 F9
、この時点で生成されたドキュメントの画像は自動的にフォルダーの写真に更新されます。
✅ 上級プレイ#
注:以下の VBA マクロコードは ChatGPT によって生成され、私は組み合わせ、結合、および転送を担当しました。
手動でメールマージを完了するだけでなく、VBA マクロとショートカットキーを使用して、ドキュメントの生成に必要な手順を減らすこともできます。
まず、 情報テンプレート.xlsx
と メールマージテンプレート.docx
をそれぞれ 情報テンプレート.xlsm
(マクロを有効にするワークブック)と メールマージテンプレート.docm
(マクロを有効にするドキュメント)として別名保存します。Word と Excel でマクロを有効にし、ドキュメントがあるディレクトリを「信頼された場所」(Wordオプション - トラストセンター - トラストセンターの設定 - 信頼された場所
)に設定します。
次に、 情報テンプレート.xlsm
を開き、 Alt + F11
を押して VBA エディタに入り、 挿入 - モジュール
をクリックし、以下のコードを編集エリアに挿入します。編集が完了したら、 Ctrl + S
を押して保存し、VBA エディタを閉じます。
Sub メールマージに入る()
Dim objWord As Object
' Wordアプリケーションオブジェクトを作成
Set objWord = CreateObject("Word.Application")
' Wordドキュメントを開く(あなたのWordドキュメントのパスに置き換えてください)
objWord.Documents.Open "F:\ Work Files \ メールマージテンプレート.docm"
' Wordアプリケーションを表示する
objWord.Visible = True
' 現在のワークブックを保存する
ThisWorkbook.Save
' Excelを終了する
Application.Quit
End Sub
Excel は 開発ツール
タブに切り替え、 挿入 - ボタン(フォームコントロール)
をクリックし、ワークシート上にボタンを描画します。描画が完了したら、ボタンを右クリックし、 マクロの割り当て
をクリックし、先ほど作成した メールマージに入る
を選択します。ボタンをクリックすると、自動的にメールマージテンプレートが開き、Excel プログラムが終了します。
次に、 メールマージテンプレート.docm
を開き、 Alt + F11
を押して VBA エディタに入り、 挿入 - モジュール
をクリックし、以下のコードを編集エリアに挿入します。編集が完了したら、 Ctrl + S
を押して保存し、VBA エディタを閉じます。
Sub メールマージを実行する()
' メールマージを実行する
ActiveDocument.MailMerge.Execute
' 必要に応じて、ここに他の後続操作を追加できます
End Sub
Word は Excel のようにマクロをボタンに割り当てることはできませんが、ショートカットキーを使用してマクロを実行することができます。 メール
タブで右クリックし、 ユーザー設定
を選択します。Word オプションに移動し、 キーボードショートカット:カスタム
をクリックし、 変更をドキュメントに保存
で メールマージテンプレート.docm
を選択し、 カテゴリ
で マクロ
を見つけ、 メールマージを実行する
を選択し、ショートカットキーの組み合わせを追加します。私の場合、 Alt + Shift + N
を割り当てました。割り当てが完了したら、 指定
をクリックします。
💭 結び#
上記の方法以外にも、Power Automate、python-docx ライブラリ、Quicker などのツールを使用して実現することもできます。いくつかの自動化ツールを巧妙に活用することで、繰り返し作業を効率的に完了させることができます。早く魚を摸すことができるようになりますように。