讀取寫入前需建立Word的引用,開啟檔案並擷取Word的Document對象。
需要說明的一點是,Word自訂屬性所能寫入的長度是有限制的,約255個字元。
'對自訂屬性進行讀取
Dim Properties = SourceDoc.CustomDocumentProperties Dim PropertyType As Type = Properties.GetType Try Dim Authorprop = PropertyType.InvokeMember("Item", Reflection.BindingFlags.Default Or Reflection.BindingFlags.GetProperty, Nothing, Properties, New Object() {"備忘"}) ResultString = Authorprop.GetType.InvokeMember("Value", Reflection.BindingFlags.Default Or Reflection.BindingFlags.GetProperty, Nothing, Authorprop, New Object() {}) Catch ex As Exception End Try
'寫入
Dim Authorprop = PropertyType.InvokeMember("Item", Reflection.BindingFlags.Default Or Reflection.BindingFlags.SetProperty, Nothing, properties, New Object() {"備忘", ResultString})
另一種寫法:
’增加新屬性SourceDoc.CustomDocumentProperties.Add(Name := "PropertyName", LinkToContent := False, Type := Microsoft.Office.Core.MsoDocProperties.msoPropertyTypeString, Value := "PropertyValue")'修改屬性SourceDoc.CustomDocumentProperties("PropertyName").Value = PropertyValue'擷取屬性值PropertyValue =SourceDoc.CustomDocumentProperties("PropertyName").Value
'讀取內建屬性,以備忘為例 ResultString= SourceDoc.BuiltInDocumentProperties(Microsoft.Office.Interop.Word.WdBuiltInProperty.wdPropertyComments).value
讀取寫入操作後可以通過在Word文檔上右鍵->屬性查看效果,但當Word文檔處於開啟狀態時,文檔上右鍵是沒有“自訂”和“摘要”這兩個Tab的。