Не ты первый на это натыкаешься:
It is caused by the Caller. If is Caller of type string then its lenght is limited to 30 characters. Characters above 30 are cut off. So (if possible) rename the shapes with names longer then 30 characters so the new name is shorter then or equal to 30 and the Caller will return complete name of such shapes. This behaviour doesn't depend of shape-type. If you rename normal rectangle so it's name lenght will exceed 30 then the Caller will return only the first 30 characters and Shapes("the_cutted_name") will throw error because shape with this name doesn't exist in shapes collection.