如何设置形状数据的值



visio vba宏:我希望在将形状通过程序删除到页面后设置形状形状数据的值。我创建了一个具有5个定义数据形状字符串的十六进制形状。

我尝试搜索答案,但没有找到有关如何执行此操作的明确说明

   Dim strConnection As String
Dim strCommand As String
Dim strOfficePath As String
Dim cellString As String
Dim vsoDataRecordset As Visio.DataRecordset
Dim vsoCell As Visio.Cell
strOfficePath = Visio.Application.Path
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" _
                   & "User ID=Admin;" _
                   & "Data Source=svs2.XLSX;" _
                   & "Mode=Read;" _
                   & "Extended Properties=""HDR=YES;IMEX=1;MaxScanRows=0;Excel 12.0;"";" _
                   & "Jet OLEDB:Engine Type=34;"
strCommand = "SELECT * FROM [BaseTemplate$]"
Set vsoDataRecordset = ActiveDocument.DataRecordsets.Add(strConnection, strCommand, 0, "Data")
MsgBox "Connected Up:" & vsoDataRecordset.DataColumns(1)
'Get the row IDs of all the rows in the data recordset
lngRowIDs = vsoDataRecordset.GetDataRowIDs("")

'Iterate through all the records in the data recordset.
For lngRow = LBound(lngRowIDs) + 1 To UBound(lngRowIDs) + 1
    varRowData = vsoDataRecordset.GetRowData(lngRow)
    'varRowData = vsoDataReco

    'Drop Shape onto page
    Set shpObject = pagThisPage.Drop(Application.Documents("microservices V2.VSS").Masters("Microservice"), 0#, 0#)
    'Update Shapes Text
    shpObject.Text = varRowData(0)
    'Get cell that i want to update
    Set vsoCell = shpObject.Cells("Prop.Object")
    'Copy data i want to apply to shape to string
    cellString = varRowData(0)
    vsoCell.Formula = cellString

    'get shape data value to print out
    dt = shpObject.Cells("Prop.Object").ResultStr("")
    MsgBox "---" & dt & ":" & vsoCell.Formula
Next lngRow

形状数据保存在ShapeSheet中。您可以访问ShapeSheet单元以输入信息,也可以访问ShapeSheet单元以获取信息。

Set vsoCell = shpObject.Cells("Prop.Object")-假设您在ShapeSheet中具有称为"对象"的适当属性(行)。您也有"用户"。与细胞一起工作。

现在,您可以简单地使用对象vsoCell填充信息(例如vsoCell.Formula = "Scratch.X1") - 您可能需要双引号来放入字面字符串而不是公式。

采用通用形状,添加一些形状数据,然后打开ShapeSheet以查看如何存储它。这将为您提供一些有关呼叫名称以及如何操纵这些数据的想法。ShapeSheet是Visio模型的非常有力的一部分,一旦您学习了如何管理它,就可以做一些非常好的事情。

确定我需要添加双引号。

   vsoCell.Formula = """" & cellString & """"

相关内容

  • 没有找到相关文章

最新更新