Здравствуйте. В вашем примере https://politerm.com/samples/zulugis/macros/WriteLatLonVbs/ цикл for ограничен числом существующих объектов "To Keys.Count", а не максимальным значением ключа, ведь освободившиеся sys не используются повторно. Как быть если объекты были нанесены и удалены в последствии? Если можно чуть подробнее, только начал осваивать макросы и vbs мой первый опыт. Заранее благодарю.
В примере работа идет с существующими объектами. Коллекция ElementKeys содержит список ключей существующих объектов. Ключ равен не значению индекса i, а значению элемента коллекции по этому индексу Item (i ) Т.е. спиок ключей может быть совсем не подряд по порядку (1 123 1678 3451 и т.д.)
Сколько объектов в слое, столько и ключей в коллекции (count - число объектов в слое для Layer.ElementKeys) Сами значения ключей роли не играют. Какие есть, такие есть. Ключ - просто идентификатор объекта. По полученному ключу получаем его объект. Иными словами, цикл выполняется от первого до последнего объекта.