Я написал макрос VBA для CorelDraw, который проходит по выбранным объектам и возвращает значения в виде строки. Я хочу, чтобы он мог лучше обрабатывать дубликаты данных, например, если два объекта имеют одинаковый размер, он должен вернуть
"2 of 10 x 10"
вместо
"1 of 10 x 10"
"1 of 10 x 10"
Исходя из Ruby (определенно говоря о хешах), я думаю, что макрос должен перебирать выбранный диапазон, добавлять (object.sizeWidth, object.sizeHeight) данные в виде строк в массив / словарь, где его следует проверять на наличие дубликатов и посчитай их. Я не знаю, что лучше или как установить / проверить их значения.
Вот мой код до сих пор
Sub objectsToString()
Dim str As String
Dim v As Shape, vr As ShapeRange
Dim xSize#, ySize#
Dim dupCount As Integer
str = ""
Set vr = ActiveSelectionRange
For Each v In vr
dupCount = 'value assigned via iteration
xSize = v.SizeWidth
ySize = v.SizeHeight
str = str & dupCount & " of " & xSize & " x " & ySize & vbNewLine
Next v
End Sub