フォームを開発していて、あるレガシーフォームフィールドの内容を別のフィールドにコピーする必要があるとします。たとえば、フォームに複数のページを含めることができ、各ページの上部にユーザーの名前が必要です。ユーザーが名前を1回入力するだけで、フォームの他の場所に自動的に入力されると、明らかに最も簡単になります。

これにアプローチする方法は2つあります。最初の方法は、ドキュメントにフォームフィールドを挿入するたびに、フィールドの内容が自動的にブックマークされるという事実です。したがって、ドキュメント全体でブックマーク参照フィールドを使用して、ユーザーがフィールドに入力したものを参照できます。 2番目の方法では、実際に1つのフィールドから別のフィールドに情報をコピーします。

まず、ブックマークを使用するソリューションを見てみましょう。ドキュメントにフォームフィールドを入力するたびに、名前が割り当てられます。この名前は、入力したフォームフィールドのタイプによって異なります。フォームフィールドを右クリックし、コンテキストメニューから[プロパティ]を選択すると、名前を見つけることができます(必要に応じて変更できます)。これにより、[フォームフィールドオプション]ダイアログボックスが表示され、ダイアログボックスの下部にフィールドのブックマーク名が表示されます。 (Text1などの名前になります。)他の場所でコンテンツを使用するフォームフィールドには、この名前を覚えておく必要があります。

次に、フォームの内容を表示する場所に挿入ポイントを配置します。たとえば、フォームユーザーの名前を2回目または3回目に表示したい時点で。ここでは、次の手順に従う必要があります:

。 Ctrl + F9を押して、フィールド中括弧のペアを挿入します。挿入ポイントは中括弧の間にある必要があります。

。 REFに続けて、前にメモしたフォームフィールドの名前を入力します。

たとえば、フォームフィールドの名前がText1の場合、REFText1と入力します。

。 F9を押して、フィールドコードの代わりにフィールド結果を表示します。

この方法でフォームフィールドのコンテンツ情報を再利用できても、ユーザーがフォームフィールドを離れたときに情報が自動的に更新されないことを理解してください。 (まあ、そうではありません。)フィールドの内容(REFフィールド)は通常、ドキュメントの印刷または印刷プレビューを見るまで更新されないため、これについてはWordを信頼する必要があります。もちろん、フィールドを選択してF9キーを押すことで、フィールドを更新することもできます。これらのいずれも、ユーザー側で手動のアクションを必要としますが、それを自動的に行うマクロの作成を開始することは可能です。

フィールドの内容をコピーするための2番目の一般的な方法は、あるフィールドから別のフィールドに情報を文字通りコピーすることです。これはマクロを使用して実行する必要があり、すでに説明したブックマーク機能を考慮すると、少しやり過ぎのように見えます。ただし、ドキュメントに実際に2つのフォームフィールドが必要であり、2番目のフォームフィールドをユーザーが最初のフォームフィールドに入力したものにデフォルト設定したい場合があります。この場合、Wordによってフォームフィールドに割り当てられた名前をメモする必要があります。この説明のために、これらの名前がText1とText2であり、ユーザーがText1を離れるとすぐにText1の内容をText2にコピーするとします。次の単純なマクロを使用できます:

Sub CopyField()

Dim Temp as String

Temp = ActiveDocument.FormFields("Text1").Result    ActiveDocument.FormFields("Text2").Result = Temp End Sub

次に、フィールドが離れるたびにマクロが実行されるように、最初のフィールドを構成する必要があります。これを行うには、次の手順に従います。

。最初のフィールドを右クリックします。これにより、コンテキストメニューが表示されます。

。 [コンテキスト]メニューから[プロパティ]を選択します。 Wordは、[フォームフィールドオプション]ダイアログボックスを表示します。

。ダイアログボックスには2つのフィールドがあり、フィールドの入力と終了時に実行するマクロを指定できます。

。 [終了]プルダウンリストを使用して、作成したマクロ(CopyField)を選択します。

。 [OK]をクリックします。

次に、フィールドのドキュメントを保護し、フォームテンプレートを保存します。次回テンプレートから新しいドキュメントを作成するときに、ユーザーはフィールドに入力できるようになります。 Text1フィールドを終了すると、Text2フィールドはText1に入力されたもので即座に更新されます。

その後、ユーザーはText2の内容を変更できることを理解します。変更は単にデフォルトを設定することでした。また、ユーザーが「サイクルバック」してText1を再度変更してからそのフィールドを終了すると、以前の内容に関係なく、Text2の内容が変更されることも理解しておく必要があります。

注:

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

link:/ wordribbon-WordTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

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

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

link:/ word-Copying_Form_Field_Contents [フォームフィールドの内容をコピーする]