当サイトの記事にはプロモーションが含まれています。

Word VBAでのActiveDocument.FormFieldsの使い方【初心者向け解決ガイド】

パソコンパソコン・スマホ教室
スポンサーリンク

こんにちは、皆さん。今日は、WordのVBAを使って、文書内のフォームフィールドを操作する方法についてお話しします。特に、「ActiveDocument.FormFields」を使って、どのようにフォームフィールドを追加・編集・操作するかを、初心者の方にもわかりやすく解説します。

スポンサーリンク

フォームフィールドとは何か?

Wordのイメージ

Wordのイメージ

まず、フォームフィールドとは何かをご説明します。Wordのフォームフィールドは、ユーザーが情報を入力できる特定の領域のことを指します。例えば、アンケートや申込書などで見かける、名前や住所を入力する欄がこれにあたります。これらのフィールドを使うことで、文書内でのデータ入力を効率化できます。

ActiveDocument.FormFieldsの基本

では、VBAでこのフォームフィールドをどのように操作するかを見ていきましょう。ActiveDocument.FormFieldsは、現在の文書内のすべてのフォームフィールドを表すコレクションです。これを使って、特定のフォームフィールドにアクセスしたり、新しいフィールドを追加したりできます。

フォームフィールドへのアクセス

特定のフォームフィールドにアクセスするには、以下のように記述します。

vba
ActiveDocument.FormFields("フィールド名").Result = "新しい値"

例えば、”NameField”という名前のフォームフィールドに”山田太郎”という値を設定する場合、次のように書きます。

vba
ActiveDocument.FormFields("NameField").Result = "山田太郎"

フォームフィールドの追加

新しいフォームフィールドを追加するには、Addメソッドを使用します。以下のコードは、文書の先頭にチェックボックスを追加し、それに名前を設定する例です。

vba
Set newField = ActiveDocument.FormFields.Add(Range:=ActiveDocument.Range(Start:=0, End:=0), Type:=wdFieldFormCheckBox)
newField.Name = "AgreeTerms"

フォームフィールドの種類と操作

フォームフィールドには主に3つの種類がありますテキスト入力、チェックボックス、ドロップダウンリストです。それぞれの操作方法を見ていきましょう。

テキスト入力フィールド

テキスト入力フィールドは、ユーザーが自由に文字を入力できる領域です。例えば、住所やコメントなどを入力してもらう際に使用します。

vba
ActiveDocument.FormFields("AddressField").Result = "東京都新宿区"

チェックボックス

チェックボックスは、ユーザーが特定の項目を選択する際に使用します。例えば、利用規約に同意するかどうかを確認する場合などです。

vba
ActiveDocument.FormFields("AgreeTerms").CheckBox.Value = True

ドロップダウンリスト

ドロップダウンリストは、ユーザーがあらかじめ定められた選択肢の中から1つを選ぶ際に使用します。例えば、性別や都道府県の選択などです。

vba
With ActiveDocument.FormFields("GenderField").DropDown.ListEntries
.Clear
.Add "男性"
.Add "女性"
.Add "その他"
End With

フォームフィールドの活用例

実際に、フォームフィールドを活用して簡単なフォームを作成してみましょう。例えば、ユーザーに名前とメールアドレスを入力してもらい、利用規約に同意してもらうフォームを作成します。

vba
Sub CreateForm()
Dim doc As Document
Set doc = ActiveDocument

' 名前フィールドの追加
doc.FormFields.Add Range:=doc.Range(Start:=0, End:=0), Type:=wdFieldFormTextInput
doc.FormFields(1).Name = "NameField"
doc.FormFields(1).Result = "ここに名前を入力"

' メールアドレスフィールドの追加
doc.FormFields.Add Range:=doc.Range(Start:=0, End:=0), Type:=wdFieldFormTextInput
doc.FormFields(2).Name = "EmailField"
doc.FormFields(2).Result = "ここにメールアドレスを入力"

' 利用規約チェックボックスの追加
doc.FormFields.Add Range:=doc.Range(Start:=0, End:=0), Type:=wdFieldFormCheckBox
doc.FormFields(3).Name = "AgreeTerms"
doc.FormFields(3).CheckBox.Value = False
End Sub

このマクロを実行すると、文書の先頭に名前入力欄、メールアドレス入力欄、そして利用規約への同意を確認するチェックボックスが追加されます。

よくある質問や疑問

フォームフィールドに入力されたデータを取得するにはどうすれば良いですか?

フォームフィールドに入力されたデータを取得するには、以下のようにResultプロパティを使用します。

vba
Dim userName As String
userName = ActiveDocument.FormFields("NameField").Result

フォームフィールドを削除する方法はありますか?

はい、フォームフィールドを削除するには、以下のようにします。

vba
ActiveDocument.FormFields("NameField").Delete

フォームフィールドの順序を変更できますか?

フォームフィールドの順序を変更する直接的な方法はありませんが、フィールドを削除して再度追加することで順序を調整できます。

まとめ

今回は、Word VBAを使ってActiveDocument.FormFieldsを操作する方法についてご紹介しました。フォームフィールドを活用することで、文書内でのデータ入力や収集がより効率的になります。ぜひ、日々の業務や個人のプロジェクトで活用してみてください。

他にも疑問やお悩み事があればお気軽にLINEからお声掛けください。

この記事を書いた人
この記事を書いた人

企業の情報システム部門で10年以上、PC・アカウント・社内ネットワーク・Microsoft 365/Google Workspace運用を担当。年間数百件の問い合わせ対応(PC不調、メール送受信、Excel/Word資料、Teams会議、スマホ連携など)を通じて、初心者がつまずくポイントを「再現→原因切り分け→最短解決」の手順に落とし込んできました

現場や身近で実際に起きたトラブルをベースに、手順だけでなく「なぜそうなるか」「失敗しやすい落とし穴」「安全な設定(セキュリティ)」まで含めて解説します。

相談窓口(問い合わせ/LINE等)を設け、記事で解決しないケースも個別にサポートしていますので「パソコンが急に動かなくなった」「スマホの設定がわからない」などの悩みは一人で抱え込まず、お気軽にご相談ください。

【お問い合わせは下記URLから】
https://m32006400n.xsrv.jp/inquiry-form/

【公式LINEは下記URLから】
https://lin.ee/t8TDjcj

uri uriをフォローする
スポンサーリンク
よかったらシェアしてね! /
uri uriをフォローする

コメント

タイトルとURLをコピーしました