私はパスワードで保護されたWord文書に6つのテーブルのセットを持っています。各テーブルにはヘッダー行があり、その後に少なくとも1つのデータ行が続きます。 2番目(以降の)行の6番目の列には、ドロップダウンフォームフィールドがあります。各テーブルの上には、ユーザーがテーブルに行を追加できるボタンがあります。彼らがそうするとき、第6列は別のドロップダウンを含んでいます。Word VBAドロップダウンフォームフィールドの名前を変更しますか?
ユーザーがドロップダウンで値を選択してフィールドを離れると、選択した値に基づいてそのセルの色を設定する必要があります。私は "HighlightStatus"を呼び出すマクロを実行するOnExit値を設定できます。変更するセルへの参照を取得するには
Dim ff As Word.FormField
ThisDocument.Unprotect strSheetPassword
Set ff = ThisDocument.FormFields(Selection.Bookmarks(1).Name)
このフォームフィールドを含むセルはどのように参照しますか?
もう1つの問題は、テーブルに行を追加するときに、フォームフィールドの名前を一意に設定して、更新したばかりのフィールドを参照できるようにする必要があることです。しかし、Nameプロパティは読み取り専用のようです。
私は別のアプローチをとっており、基本的に同じ壁に当たっています。フィールドを更新した後、すべてのテーブルとすべての行をコードループし、各行の6番目の列を更新しました。問題は、画面がドキュメントの最後までスクロールすることです。私がどこにいたのかを知るためには、正しいフォームフィールドを一意に参照する必要があります。フィールドに一意の名前がない場合は実行できません。