【Word】差し込む画像を切り替える

(Last Modified : 2022-09-27)

  1. はじめに
  2. データの作成
  3. 画像を差し込む準備
  4. 画像フォルダを指定できるようにする
  5. ダウンロード

はじめに

今回は下記webサイトを参考に...

Wordの「差し込み文書」で画像一覧を作成する – Santa Network

Office TANAKA - [関数でシート名を取得する]

ExcelとWordを使い、差し込み(印刷)で文書を作成してみる。
文書には図も差し込み、フォルダを指定して差し込めるようにしてみる。
以下、Excelで作ったファイルを「Excel文書」、Wordで作ったファイルを「Word文書」とする。

作成する文書のお題は...
イベントを開催するに当たり、要所要所に会場までの道案内をする人を配置する(下図は参考図)。
案内人を配置する参考図
案内人の配置場所はExcelでデータ(住所録のようなもの)を作成し、案内担当者向けに「担当箇所周辺の詳細図」が載っている案内用文書を作成する。
案内用文書は、Wordの差し込み印刷で作成する。
Word文書は1ページで完結し、主に表で構成され、表の1つのセルに図を差し込む。
という感じで作っていく。
なお、マクロ(VBA)は使用しない。

データの作成

・Excelで作成するデータ(レコード)は、No(連番)、地区、番号、住所、担当者名、画像ファイル名で構成(下図参照)。
以下、このシートを「差し込み用」シートとする。
Excelで作成するデータ
・一定の地域ごとに「地区」を設定し、地区ごとに「番号」を1からふっていく。
・画像ファイルは、各レコードの「住所」の周辺図(この例では、地図ではなく「ひらがな」の画像)。
・画像ファイル名は「地区」と「番号」を「-」でつないだものとする。

画像を差し込む準備

(1)下図のようなWord文書を作成し「差し込み用」シートで差し込みを設定する。
今回の例で使用するWord文書
(2)画像を差し込みたい場所にキャレットがある状態で「挿入」タブの「テキスト」→「クイックパーツの表示」→「フィールドの挿入」を選ぶ。
(3)「フィールド」の選択画面が出てくるので「フィールドの名前」リストから「IncludePicture」を選ぶ。
フィールド選択画面
(4)「ファイル名またはURL」欄に「@@@」と入れて「OK」ボタンを押す(後で置き換えるのでテキトーな文字列で良い)。
画像差し込みを設定した部分に「リンク切れ」が表示されている
(5)「リンク切れ」の表示が出るので、「Alt」キーを押しながら「F9」キーを押し、「フィールドコード」を表示する。
フィールドコードが表示された状態
(6)フィールドコードの中に(4)で設定した文字列(この例では@@@)があるので、その文字列を選択した状態で「差し込み文書」タブの「差し込みフィールドの挿入」から「画像ファイル名」を選ぶ。
フィールドコードが表示された状態
(7)もう一度、「Alt」キーを押しながら「F9」キーを押し、元の状態に戻しておく。
これで、一応、画像を差し込みできる状態になっている。
ただし、この状態だと「Word文書があるフォルダ」に画像ファイルを置いておく必要がある。
画像を差し込める状態
(8)とりあえず、Word文書の先ほど設定したセルの内容を削除して、Word文書を閉じておく。

画像フォルダを指定できるようにする

画像ファイルをWord文書と同じフォルダに置くのは使い勝手が悪いので、下図のように画像ファイルを「イベントごと(今回は年度ごと)」にフォルダに入れて管理し、差し込みできるようにしてみる。
フォルダ構成
画像ファイルがWord文書と違うフォルダにある場合「その画像がどこにあるか」を指定する方法は、Word側で設定する方法とExcel側で設定する方法がある。
Word側で設定する方法は、上記(4)の「ファイル名またはURL」欄に「フルパス(絶対パス)」で指定する。
画像が入っているフォルダを変更しない場合は、この方法でも良い。
しかしながら、指定するフォルダを替えたい場合には、いちいちWord側で設定しなおす必要があり面倒。
なので、Excel側で画像の「フルパス」を設定し、差し込むようにする。

(8)まずは、Excel文書に「作業用」シートを追加する。
この作業用シートで画像のフルパスを組み立てる準備をする(下図参照)。
作業用シートで使う関数

まず、セルA2では下記の数式で「Excel文書のあるフォルダ」のパスを取得している。
(注意)フォルダ名やファイル名に [ が含まれているとうまくいかないので、その場合は、フォルダ名やファイル名を変えるか、数式を変更する必要がある。

=LEFT(CELL("filename",A1),FIND("[",CELL("filename",A1))-1)

これにより

C:\Users\pc-misaki\Desktop\差し込みテスト用\

のような文字列を取得できる。
(パス区切り文字は、バックスラッシュまたは円マークに見える)

ここで取得した文字列を「SUBSTITUTE」関数を使って、パス区切り文字を「2文字分」に置き換える(セルA6)。

=SUBSTITUTE(A2,"\","\\")

これにより

C:\\Users\\pc-misaki\\Desktop\\差し込みテスト用\\

という文字列になるので、さらに「対象となる画像フォルダ名」と「パス区切り文字を2文字分」を足しておく(セルA10)。

=CONCAT(A6,C2,"\\")

これにより、下記のような文字列が得られる(以下、この文字列を(a)とする)。

C:\\Users\\pc-misaki\\Desktop\\差し込みテスト用\\2021年度\\

この文字列にレコードごとの画像ファイル名を足したものが、差し込みに必要な文字列となる。
なお「作業用」シートのE列は画像フォルダ名を列挙し、C2には、そのリストから差し込みたい画像フォルダを指定するように設定してある。

(a)の文字列を使い「差し込み用」シートのG列に、各画像の絶対パスを加える(下図参照)。 差し込み用の画像ファイルの絶対パス
先ほどの手順(6)のところで「画像差込用」を選べば、画像フォルダを切り替えることができるようになる。
画像フォルダを切り替えるには、いったんWord文書を閉じ、Excel文書の「作業用」シートの「対象フォルダ」を変更すれば良い。
リアルタイムでは変更できないので、Excel文書も保存してからWord文書を開く必要がある。

ダウンロード

今回作成したファイル。
Word文書を開いたときに「差し込み用」シートを再設定する必要がある。

sample.zip (2.1MB)