Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 要标记跑步吗_Vba_Tags_Powerpoint - Fatal编程技术网

Vba 要标记跑步吗

Vba 要标记跑步吗,vba,tags,powerpoint,Vba,Tags,Powerpoint,我需要标记TextRange(特别是Runs()返回的TextRange),但PowerPoint中的VBA只允许您标记演示文稿、幻灯片和形状 以我的方式备份对象树(运行>文本范围>文本框架>项目>形状),我发现形状是最接近的可标记对象 我可以在包含跑步的形状中进行标记,但我需要一种唯一标识跑步的方法 例如,我可以设想使用key=unique\u id\u来标记形状,value=whatever,但我不知道在VBA中如何获得唯一的运行 如果有一种方法可以获得对象的唯一ID(或内存地址),我可以使

我需要标记TextRange(特别是Runs()返回的TextRange),但PowerPoint中的VBA只允许您标记演示文稿、幻灯片和形状

以我的方式备份对象树(运行>文本范围>文本框架>项目>形状),我发现形状是最接近的可标记对象

我可以在包含跑步的形状中进行标记,但我需要一种唯一标识跑步的方法

例如,我可以设想使用key=unique\u id\u来标记形状,value=whatever,但我不知道在VBA中如何获得唯一的运行

如果有一种方法可以获得对象的唯一ID(或内存地址),我可以使用它作为我的唯一键,但我不知道如何在VBA中获得对象的唯一ID


有什么建议吗?谢谢

管路是特性,而不是对象。它们的XML中没有任何唯一标识符。文本框或形状可以具有唯一标识符,但并不总是这样。例如,PowerPoint 2019通常使用包含2个GUID的extLst标记创建文本框。PowerPoint 2007没有。形状的id号对于该幻灯片上的形状是唯一的,尽管您不能用VBA直接读取该id号。要认真使用Office XML,VBA不是合适的工具。使用VB或C#的OpenXML SDK可以获取形状的id。只要textrange中的文本格式发生更改(例如,用户粗体显示一个单词),具体的运行方式就会发生更改。假设你理解这一点,并且不关心,你就不能用标签来标记形状。添加“Run”,“42”。。。即,形状文本范围内的第42次跑步?知道了这一点,您可以更改该运行的文本。更改其格式将变得混乱。