社内の他の人やクライアントのグループと作業している場合は、クライアントごとにパーソナライズされたファイルを作成することをお勧めします。差し込み印刷を使用して作成するのが最善の場合もありますが、パーソナライズのニーズがそれほど大きくない場合は、より簡単な方法があります。

まず、ドキュメントを受け取る個人の名前を1行に1つずつ含む通常のテキストファイルを作成します。次に、マクロは名前をドキュメントのヘッダーに詰め込み、その人の名前でドキュメントを保存します。したがって、テキストファイルに15人が含まれている場合、ドキュメントのコピーは1人に1つずつ、15部になります。それぞれがヘッダーの個人の名前でパーソナライズされます。

このようなタスクを実行するプロセスは非常に簡単です。テキストファイルを開き、名前を取得してヘッダーに配置し、ドキュメントを保存します。別の名前が取得され、ファイルに名前がなくなるまでこのプロセスが繰り返されます。次のマクロはそのようなプロセスを実装します:

Sub SaveNameFiles()

Dim sName As String     Dim sFile As String

Open "c:/names.txt" For Input As #5

On Error Resume Next     Do While Not EOF(5)

' get the name         Line Input #5, sName         sFile = sName & ".doc"

sFile = "c:\mypath\" & sFile

ActiveWindow.ActivePane.View.SeekView = _           wdSeekCurrentPageHeader         Selection.WholeStory         Selection.Delete         Selection.TypeText Text:=sName

ActiveWindow.ActivePane.View.SeekView = _           wdSeekMainDocument         ActiveDocument.SaveAs FileName:=sFile     Loop

Close #5

ActiveWindow.ActivePane.View.SeekView = _       wdSeekCurrentPageHeader     Selection.WholeStory     Selection.Delete     ActiveWindow.ActivePane.View.SeekView = _       wdSeekMainDocument End Sub

マクロのトリッキーな部分は、.SeekViewプロパティを使用して、ドキュメント内のどのストーリーを操作するかを指定することです。ここで実装されているように、.SeekViewプロパティは、ヘッダー領域とメインドキュメントを切り替えるために繰り返し使用されます。

また、sFile変数は、パーソナライズされたドキュメントが保存されるファイルの名前を指定することにも注意してください。テキストファイルから名前を取得した直後に、.docファイル拡張子とファイル名の前のパスを追加してsFile変数を作成します。 (パスをシステムに適したパスに変更する必要があります。)

実際の保存操作は比較的簡単です。 .SaveAsメソッドはファイル名で使用されます。ファイルから読み取られた名前の1つに、有効なファイル名に不適切な文字が含まれている可能性があるため、これはマクロ内で最もエラーが発生しやすいコード行です。この場合、エラーが生成され、マクロは次の行に進みます。ただし、ドキュメントは問題のある名前で保存されません。

ループ(名前の取得と保存)が完了すると、ヘッダー領域がクリアされ、.SeekViewがメインドキュメントに戻ります。

注:

このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(7983)は、Microsoft Word 2007、2010、2013、2016、2019、およびOffice 365のWordに適用されます。このヒントのバージョンは、ここにWordの古いメニューインターフェイス: