You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取Visio文档级ShapeSheet中的Shape Data(类页面/形状提取方式)

提取Visio文档级Shape Data的方法

如果你已经在Visio文档的ShapeSheet中创建了Shape Data字段,除了使用TheDoc!前缀的方式,还可以通过以下更贴合Shape Data逻辑的方式提取:

  • ShapeSheet公式直接引用
    在任意形状的ShapeSheet单元格中,直接使用Document!Prop.字段名称的格式调用文档级Shape Data。比如你定义了名为ProjectID的文档级字段,就可以写Document!Prop.ProjectID,该公式会直接返回对应的字段值,和TheDoc!Prop.ProjectID的效果完全一致,但写法更符合Shape Data的常规引用习惯。

  • VBA代码批量提取
    如果需要程序化获取所有文档级Shape Data,可以通过访问文档的ShapeSheet属性实现,示例代码如下:

    Sub FetchDocumentShapeData()
        Dim activeDoc As Visio.Document
        Dim propSection As Integer
        Dim propRow As Integer
        
        Set activeDoc = Visio.ActiveDocument
        propSection = visSectionProp
        
        ' 遍历所有文档级Shape Data行
        For propRow = 0 To activeDoc.ShapeSheet.RowCount(propSection) - 1
            ' 获取字段名称和对应值
            Dim propName As String
            Dim propValue As Variant
            propName = activeDoc.ShapeSheet.CellsSRC(propSection, propRow, visCustPropsLabel).ResultStr("")
            propValue = activeDoc.ShapeSheet.CellsSRC(propSection, propRow, visCustPropsValue).Result("")
            
            ' 输出到立即窗口,可替换为保存到变量/文件等逻辑
            Debug.Print "字段: " & propName & " | 值: " & propValue
        Next propRow
    End Sub
    

示例效果说明:截图中展示了在形状的文本单元格中使用Document!Prop.ProjectName引用文档级Shape Data,最终形状文本成功显示出文档级字段的对应值,实现了和引用形状级Shape Data一致的直观效果。

内容的提问来源于stack exchange,提问作者Laime

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 03:42:14