C# 创建链接到文档内内容的自定义office文档属性

C# 创建链接到文档内内容的自定义office文档属性,c#,ms-office,powerpoint,C#,Ms Office,Powerpoint,我想在powerpoint中创建一个自定义文档属性,该属性链接到C#中的文档内容 我找到了各种示例,但它们都创建了自定义文档属性,而没有链接到文档内容 我想要实现的是,用户选择任何形状的文本,并通过单击按钮,创建自定义文档属性以及指向源的链接。 我希望能够检索它以后和按需跳转到链接的内容 下面是我正在使用的代码片段: Microsoft.Office.Core.DocumentProperties properties; properties = (Office.DocumentProperti

我想在powerpoint中创建一个自定义文档属性,该属性链接到C#中的文档内容

我找到了各种示例,但它们都创建了自定义文档属性,而没有链接到文档内容

我想要实现的是,用户选择任何形状的文本,并通过单击按钮,创建自定义文档属性以及指向源的链接。 我希望能够检索它以后和按需跳转到链接的内容

下面是我正在使用的代码片段:

Microsoft.Office.Core.DocumentProperties properties;
properties = (Office.DocumentProperties)this.myOCMModule.PowerPointApp.ActivePresentation.CustomDocumentProperties;
Microsoft.Office.Interop.PowerPoint.Selection powerPointSelection  = this.myMainOCMModule.PowerPointApp.ActiveWindow.Selection;
PowerPoint.TextRange textRange = powerPointSelection.TextRange;
properties.Add("Test1", true, Microsoft.Office.Core.MsoDocProperties.msoPropertyTypeString, textRange.Text, textRange);
已创建自定义属性,但链接无效。当我在PowerPoint中打开自定义属性时,该自定义属性会显示一个断开的链接

当iI通过创建自定义属性手动执行时,它会按照所述执行。我想以编程的方式做同样的事情

在MS参考中,它指出

指定链接的源由容器应用程序定义

也许它不能正确解析textRange变量


有人知道我如何才能做到这一点吗?

请参阅上面的评论,但我认为可能有一种更可靠/可控的方式来做你想做的事情

当用户创建一个“书签”时,您的代码可以向所讨论的形状添加标记。在VBA中,这非常简单:

oSh.Tags.Add "TagName", "Value of my tag"
' assuming oSh contains a reference to the shape you want to mark
每次使用相同的标记名,但更改每个形状的标记值

要跳转到标记的内容,请执行以下操作(在此处插入强制性航空代码警告):


这是一个相当古老的联系;PPT已经改变了很多,因为我甚至找不到编辑/转到选项,当你在PPT 2010中添加一个链接到内容的属性时,它确实会在旁边显示一个链接图标,但我看不到任何让它做任何事情的方法。
Sub JumpToTaggedContent(sTagValue as String)
Dim oSl as Slide
Dim oSh as Shape
  For Each oSl in ActivePresentation.Slides
    For Each oSh in oSl.Shapes
       If oSh.Tags("TagName") = sTagValue Then  ' you've found it
          ActiveWindow.View.GoToSlide(oSh.Parent.SlideIndex)
          oSh.Select
          Exit Sub
       End If
    Next
  Next
End Sub