
Excel アドインを使用して、Excel テーブルから Word 文書にデータを入力しています。データは、文書内のさまざまな Word テーブルに格納されます。データの特定のサブセットが格納されるテーブルは、Excel テーブル内の「ターゲット」列の値によって決まります。
これまでは、ターゲット列の値とターゲット テーブルの順序の間には静的な関係がありました。たとえば、そこに 'A' があるものはすべて Word 文書の最初のテーブルに移動し、'B' があるものはすべて 2 番目のテーブルに移動します。
現在、ユーザーは Word で創造力を発揮し、表の順序を変更したり、表を削除したり、スタイル設定のために新しい表を追加したりしています。つまり、「'A' に属するすべてのものが最初に見つかった表に入る」という関係はもはや保証できません。
Word ユーザー インターフェイスを介して Word テーブルに一意の ID を設定する方法はありますか (マクロやアドインに頼ることなく、ユーザーが自分でこれを実行できるようにしたい)。その後、Excel マクロ内から最も可能性の高いターゲット テーブルを見つけるための識別子としてこれを使用できますか?
答え1
ありませんテーブルID
インデックス (および、ドキュメントが Web ページとして保存される場合に限る)以外で一意である必要がある Word のプロパティ。
テーブルのTitle
プロパティを使用することをお勧めします。ユーザーは次のように設定できます。
表を右クリック > 表のプロパティ > 代替テキスト > タイトル
また、次のようにプログラムでプロパティにアクセスすることもできます (VBA の例):
Word.ActiveDocument.Tables.Item(1).Title
コレクションを反復処理して、正しいTables
テーブルを見つけることができます。Title
答え2
それであればである必要があります一意の名前を付ける場合、通常は開発者メニューに表示されていない機能を有効にせずに使用できる唯一のオプションは、各テーブルにブックマークを割り当てることです。
一貫した方法としては、選択ボックスを使用してテーブルを選択し、[挿入] -> [リンク] -> [ブックマーク] を使用して名前を指定することです。ただし、問題は、Word がブックマークを再利用するときにユーザーに警告しないことです。ブックマークが再配置されるだけです。したがって、マクロなどがなければ、(a) ユーザーは任意のブックマーク名を指定でき、それがドキュメント内の他の何か (相互参照など) を混乱させる可能性があり、(b) 別のテーブルを識別するブックマークの名前を指定した場合、そのテーブルのブックマークが失われます。ユーザーはそれに気付くでしょうか。ブックマークが移動したら、ユーザーはブックマークされていないテーブルをどうやって見つけるのでしょうか。
tbl_
「すべてのテーブル ブックマーク名をまたはで始める」などの命名規則を使用すると、ドキュメント内の他の項目を混乱させる問題を軽減または排除できますtab_
。