これでかなり遊んだ後、これが他の誰かを助ける場合に備えて、これが私の最終的なコードです。この形式は理解しやすく、操作しやすいことがわかりました。これはすべて、クリスチャンによる参照記事に基づいています。
using Office = Microsoft.Office.Core;
using Word = Microsoft.Office.Interop.Word;
using System.Reflection;
Office.DocumentProperties properties = (Office.DocumentProperties)Globals.ThisDocument.CustomDocumentProperties;
//Check if the property exists already
if (properties.Cast<Office.DocumentProperty>().Where(c => c.Name == "nameofproperty").Count() == 0)
{
//Then add the property and value
properties.Add("nameofproperty", false, Office.MsoDocProperties.msoPropertyTypeString, "yourvalue");
}
else
{
//else just update the value
properties["nameofproperty"].Value = "yourvalue";
}
値を取得するという点では、上部の同じ 3 行を使用してプロパティ オブジェクトを取得するのと同じくらい簡単です。おそらく、if ステートメントのコードを使用して存在するかどうかを確認し、次を使用して取得します。properties["nameofproperty"].Value