На листе нарисована прямая линия. Как заставить макрос - найти все ячейки, пересекаемые - нарисованной на листе линией (линия имеет две общие точки с прямоугольником ячейки), и залить их цветом (например желтым) ?
OlegSmirnov, я не просил Вас создавать новую тему, тем более её название ничуть не лучше. И в новом варианте Вы сообщаете, что ячейки у Вас подкрашиваются. Т.е. вопроса (проблемы) нет. Так понятно?
Юрий М, то есть мне надо убрать заливку из ячеек? И в этом случае - вы скажете что теперь проблема есть... но скажете, что теперь непонятно какие ячейки должны быть залиты. (Я специально подкрасил ячейки (то есть вручную), чтобы была ясна суть вопроса.)
Олег, ну неужели так трудно понять? В Вашем названии нет ни вопроса, ни указания на проблему: Вы просто сообщаете нам, что ячейки у Вас красятся. И хорошо. Проблема в чём? Вот если бы Вы написали: "Как макросом покрасить все ячейки, находящиеся под линией?" - тогда бы я ни слова не сказал. Так понятно?
OlegSmirnov написал: но скажете, что теперь непонятно какие ячейки должны быть залиты.
А сформулировать? Грубый вариант Хочу, требуется, очень надо: получить готовый макрос с комментариями, который для нарисованной на листе линии находит все ячейки, пересекаемые ей (линия имеет две общие точки с прямоугольником ячейки), и заливает их заданным цветом. Как то так. Теперь сформулируйте вежливый вариант
Идея такая: 1. У фигуры "Прямая соединительная линия 2" есть свойства Left, Top, Width, Hight, определяющие координаты двух крайних точек этой линии на листе. ActiveSheet.Shapes("Прямая соединительная линия 2 ").Left/Top/Width/Hight 2. Раз знаем координаты двух точек, значит можем определить уравнение прямой линии y=k*x+b 3. Зная уравнение прямой линии, координаты крайних точек, а также высоту и ширину ячеек на листе, можем определить какие ячейки эта линия пересекает