Узел можно найти по координатам. В макрос, который у Вас сейчас вставляет узел, можно добавить, чтобы куда-то записывались координаты узла (например на скрытый лист), а затем новый макрос будет искать узел по этим координатам и удалять. Но если пользователь или какой-то еще макрос сместит этот узел, то найти его уже будет нельзя. У объекта "Node" нет ничего такого, чтобы можно было пометить, а затем по этой метке искать, кроме координат. Поэтому если координаты Вам не подходят, то нужно смотреть, для чего Вам это нужно, и уже от этого попробовать решить задачу.
Узел можно найти по координатам. В макрос, который у Вас сейчас вставляет узел, можно добавить, чтобы куда-то записывались координаты узла (например на скрытый лист), а затем новый макрос будет искать узел по этим координатам и удалять. Но если пользователь или какой-то еще макрос сместит этот узел, то найти его уже будет нельзя. У объекта "Node" нет ничего такого, чтобы можно было пометить, а затем по этой метке искать, кроме координат. Поэтому если координаты Вам не подходят, то нужно смотреть, для чего Вам это нужно, и уже от этого попробовать решить задачу.Karataev
Сообщение отредактировал Karataev - Четверг, 24.08.2017, 23:10
А вы разобрались с макросом, который добавляет узел (как вам советовал Дмитрий)? Если разобрались - то ответом на ваш вопрос будет "у коллекции ShapeNodes есть метод .Delete, который удаляет ноду по её индексу". Только нужно учитывать, что "удаление узла" - это операция , затрагивающая как ноды этого узла, так и ноды "соседних" узлов.
Если же вы тупо продолжаете своими вопросами подразумевать "напишите за меня мне код, чтобы работал, я все равно в нём не разбираюсь и разбираться не хочу и не буду" - то какие ответы могут быть?
А вы разобрались с макросом, который добавляет узел (как вам советовал Дмитрий)? Если разобрались - то ответом на ваш вопрос будет "у коллекции ShapeNodes есть метод .Delete, который удаляет ноду по её индексу". Только нужно учитывать, что "удаление узла" - это операция , затрагивающая как ноды этого узла, так и ноды "соседних" узлов.
Если же вы тупо продолжаете своими вопросами подразумевать "напишите за меня мне код, чтобы работал, я все равно в нём не разбираюсь и разбираться не хочу и не буду" - то какие ответы могут быть? AndreTM
OlegSmirnov, не смог решить Вашу задачу. Координаты точки я запомнил (добавил код в Ваш макрос). Другим макросом удалил точку по запомненным координатам, но форма полилинии не стала прежней. То есть недостаточно запоминать координаты точки. Не берусь за это задание.
OlegSmirnov, не смог решить Вашу задачу. Координаты точки я запомнил (добавил код в Ваш макрос). Другим макросом удалил точку по запомненным координатам, но форма полилинии не стала прежней. То есть недостаточно запоминать координаты точки. Не берусь за это задание.Karataev
Простое удаление некоей одной ноды (именно ноды, а не "точки-узла") не приводит к тому, что произойдет то же самое, что и при выборе через интерфейс "Начать изменение узлов - Удалить узел - Закончить изменение узлов". Потому что уже в процессе добавления нового узла - изменяются параметры узла, относительно которого вставляется новый узел, и при последующем удалении - надо восстанавливать старые параметры (или "знать как, спросите у MS"). Достаточно простой вариант - это удалять только последний добавленный узел. Но и тогда самым простым решением будет просто сохранять копию всего шейпа (ну или хотя бы копию коллекции ShapeNodes шейпа), для последующей полной замены при "удалении" (на самом деле, не "удалении", а "откате последнего добавления").
Karataev, я про это тонко и намекал ранее
Простое удаление некоей одной ноды (именно ноды, а не "точки-узла") не приводит к тому, что произойдет то же самое, что и при выборе через интерфейс "Начать изменение узлов - Удалить узел - Закончить изменение узлов". Потому что уже в процессе добавления нового узла - изменяются параметры узла, относительно которого вставляется новый узел, и при последующем удалении - надо восстанавливать старые параметры (или "знать как, спросите у MS"). Достаточно простой вариант - это удалять только последний добавленный узел. Но и тогда самым простым решением будет просто сохранять копию всего шейпа (ну или хотя бы копию коллекции ShapeNodes шейпа), для последующей полной замены при "удалении" (на самом деле, не "удалении", а "откате последнего добавления").AndreTM
Рисовать полилинию для меня тоже непосильная задача (ну или надо потратить много времени, чтобы в этом разобраться). Появилась такая идея. Первый макрос перед вставкой точки, копирует полностью всю полилинию на скрытый лист. Второй макрос просто удаляет полилинию и вставляет полилинию из скрытого листа.
OlegSmirnov, еще лучше, если Вы опишите, для чего Вам это надо.
Рисовать полилинию для меня тоже непосильная задача (ну или надо потратить много времени, чтобы в этом разобраться). Появилась такая идея. Первый макрос перед вставкой точки, копирует полностью всю полилинию на скрытый лист. Второй макрос просто удаляет полилинию и вставляет полилинию из скрытого листа.
OlegSmirnov, еще лучше, если Вы опишите, для чего Вам это надо.Karataev