banner
Xavier Wang

鸟之言语

到墙外,听鸟的声音
twitter
jike
bilibili
github

巧妙にWordのメールマージを活用して、活動写真の記録文書を半自動的に生成します。

この学期は行政業務に関わるようになりました。現在、教育、教育、安全などの仕事では、すべての活動に「事後の証拠を残す」原則が強調されています。すべての活動は、「慎重な計画と詳細な記録」を要求されます - プランの作成、写真の撮影、プランの作成、ブリーフィング、および活動写真の印刷を含みます。毎週、3〜4 枚の活動写真の記録があり、レイアウト作業は非常に煩雑です。

Quicker を使用して毎週の「三表」を生成する

昨年、欠席登録、体温異常および健康状態の統計表を毎週自動生成するために Quicker を使用してみた後、活動写真の記録を半自動化または自動化する方法を探しました。このような業務の処理効率を向上させるためです。

💡 アイデアを整理する#

活動写真の記録文書は、タイトル、写真、および写真の説明で構成されています。この基礎に基づいて、テンプレートを作成し、繰り返し使用することができます。

圧縮ソフトウェアで Docx 形式の Word 文書を開く

最初の考えは、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.jpg2.jpg3.jpg... の形式でリネームされます)。

データ入力シートの内容

リスト生成シートの内容

編集が完了したら、「情報テンプレート.xlsx」ファイルを保存します。

Word テンプレートの作成#

次のステップでは、活動写真の記録のテンプレートをファイル形式の要件に従って作成します。このステップでは、以前に作成したドキュメントを直接使用することができます。

活動写真の記録文書の基本テンプレートの作成

🔗 メールマージの実行#

次のステップでは、メールマージを実行します。Word で「メール」タブに切り替え、「メールマージウィザード」に入り、データソースとして先ほど作成した情報フィールドのテンプレートを使用します。次に、文書内の情報を入力する場所にマージフィールドを挿入する必要があります。

メールマージウィザードの操作手順

このステップで「生成」をクリックすると、写真のない要件を満たさない活動記録が生成されます。写真の自動挿入と 1 ページに 2 枚の写真を表示する要件を満たすためには、少し多くのフィールドコードが必要です。

エラーフォーマット

フィールドコード#

Word のフィールドコードは、ドキュメントに自動化されたコンテンツ、機能、またはデータを挿入するために使用される動的に更新されるコンテンツです。ページ番号、日付と時刻、メールマージ、ドキュメントプロパティ、クロスリファレンス、図表番号などが含まれます。ここでは、 IncludePicture フィールドと Next Record フィールドを使用する必要があります。

IncludePicture フィールドは、指定されたパスの画像を文書に挿入します。 挿入タブで、ドキュメントパーツ - フィールド - IncludePictureを見つけ、ファイル名に「パス」と入力し、OK をクリックしてドキュメントの指定された場所に挿入します。

まだ画像のファイルパスを入力していないため、画像はロードされません。 Alt + F9 ショートカットキーを押して、現在のドキュメントのフィールドコードを表示し、 IncludePicture フィールドの「パス」を画像パスフィールドに置き換えます。

 IncludePicture フィールドに画像パスフィールドを挿入する

デフォルトでは、Word はページ単位で新しいドキュメントを生成します。同じドキュメントに複数のデータレコードを挿入するためには、 Next Record フィールドを使用する必要があります。

使用方法は非常に簡単で、 メール タブで ルール - 次のレコード を見つけ、画像の説明の末尾に挿入します。次に、画像と画像の説明をコピー、貼り付け、コピー、貼り付けします。

 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 プログラムが終了します。

Excel でドキュメントに入り、Excel を終了するマクロを作成する

次に、 メールマージテンプレート.docm を開き、 Alt + F11 を押して VBA エディタに入り、 挿入 - モジュール をクリックし、以下のコードを編集エリアに挿入します。編集が完了したら、 Ctrl + S を押して保存し、VBA エディタを閉じます。

Sub メールマージを実行する()
    ' メールマージを実行する
    ActiveDocument.MailMerge.Execute
    
    ' 必要に応じて、ここに他の後続操作を追加できます
End Sub

Word は Excel のようにマクロをボタンに割り当てることはできませんが、ショートカットキーを使用してマクロを実行することができます。 メール タブで右クリックし、 ユーザー設定 を選択します。Word オプションに移動し、 キーボードショートカット:カスタム をクリックし、 変更をドキュメントに保存メールマージテンプレート.docm を選択し、 カテゴリマクロ を見つけ、 メールマージを実行する を選択し、ショートカットキーの組み合わせを追加します。私の場合、 Alt + Shift + N を割り当てました。割り当てが完了したら、 指定 をクリックします。

Word でマクロにショートカットキーを割り当てる

💭 結び#

上記の方法以外にも、Power Automate、python-docx ライブラリ、Quicker などのツールを使用して実現することもできます。いくつかの自動化ツールを巧妙に活用することで、繰り返し作業を効率的に完了させることができます。早く魚を摸すことができるようになりますように。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。