2016-10-11 5 views
0

私はパスワードで保護された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番目の列を更新しました。問題は、画面がドキュメントの最後までスクロールすることです。私がどこにいたのかを知るためには、正しいフォームフィールドを一意に参照する必要があります。フィールドに一意の名前がない場合は実行できません。

答えて

0

見つけました。私はかなり長い間、私の尾を追いかけていましたが、私はこれが機能することを発見しました。

ThisDocument.Unprotect strSheetPassword 
Selection.Shading.BackgroundPatternColor = wdColorLightGreen 
ThisDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True, Password:=strSheetPassword 
関連する問題