ls = [
{"tag": "A", "partNO": "a", "qty": "1", "manuf": "Manuf A", "description": "the letter a"},
{"tag": "B", "partNO": "b", "qty": "1", "manuf": "Manuf B", "description": "the letter b"},
{"tag": "C", "partNO": "c", "qty": "1", "manuf": "Manuf C", "description": "the letter c"},
]
print(ls)
Public Sub test()
Dim vPage As Visio.Page
Set vPage = ActivePage
Dim shp As Visio.Shape
Dim tag As String
Dim partNo As String
Dim qty As Integer
Dim manuf As String
Dim desc As String
Dim tagDict As New Dictionary
Dim partNoDict As New Dictionary
Dim qtyDict As New Dictionary
Dim manufDict As New Dictionary
Dim descDict As New Dictionary
For Each shp In vPage.Shapes
If shp.CellExistsU("Prop.testTag" & THePropertyName, 0) Then
tag = UCase(shp.CellsU("Prop.tag").ResultStr(visNone))
partNo = UCase(shp.CellsU("Prop.PartNo").ResultStr(visNone))
qty = shp.CellsU("Prop.qty.Value").ResultInt(visNone, 0)
manuf = UCase(shp.CellsU("Prop.manuf").ResultStr(visNone))
desc = UCase(shp.CellsU("Prop.descr").ResultStr(visNone))
If partNoDict.Exists(partNo) Then
qtyDict(partNo) = qtyDict(partNo) + qty
Else
tagDict.Add partNo, tag
partNoDict.Add partNo, partNo
qtyDict.Add partNo, qty
manufDict.Add partNo, manuf
descDict.Add partNo, descDict
End If
End If
Next
End Sub