Доброго времени суток, гуру экселя. Возник вопрос - вроде бы простой. А решить я его никак не могу.
Существует команда IncrementRotation, отвечающая за поворот шейпа. Пока что все что меня получается - это поворачивать объект - на какую-то фиксированную величину.
Как повернуть шейп - к конкретным координатам, записанным в ячейках K4 K5 или к фигуре "Овал 3" ?
Доброго времени суток, гуру экселя. Возник вопрос - вроде бы простой. А решить я его никак не могу.
Существует команда IncrementRotation, отвечающая за поворот шейпа. Пока что все что меня получается - это поворачивать объект - на какую-то фиксированную величину.
Как повернуть шейп - к конкретным координатам, записанным в ячейках K4 K5 или к фигуре "Овал 3" ?Glass4217
Glass4217 Тема названа не корректно. Ну назовите " Избушка, избушка, встань к лесу задом, а ко мне передом" и то понятнее. Вам не понятно как высчитать угол - так это школьная программ? Или что?
Glass4217 Тема названа не корректно. Ну назовите " Избушка, избушка, встань к лесу задом, а ко мне передом" и то понятнее. Вам не понятно как высчитать угол - так это школьная программ? Или что?bmv98rus
Замечательный Временно просто медведь , процентов на 20.
Перед тем как осуществлять поворот - нужно понять - как именно фигура повернута в настоящий момент, еще до запуска макроса (фигура может стоять - не ровно). Ведь на ней, перед изменением угла - уже может быть применена команда IncrementRotation.
doober, все не так просто.
Перед тем как осуществлять поворот - нужно понять - как именно фигура повернута в настоящий момент, еще до запуска макроса (фигура может стоять - не ровно). Ведь на ней, перед изменением угла - уже может быть применена команда IncrementRotation.Glass4217
нужно понять - как именно фигура повернута в настоящий момент
То есть изучить объект Shape времени найти не удалось (не всё же последствия макрорекордера изучать)? Свойство Shape.Rotation возвращает и устанавливает абсолютный угол поворота прямоугольника, обрамляющего фигуру.
нужно понять - как именно фигура повернута в настоящий момент
То есть изучить объект Shape времени найти не удалось (не всё же последствия макрорекордера изучать)? Свойство Shape.Rotation возвращает и устанавливает абсолютный угол поворота прямоугольника, обрамляющего фигуру.anvg
doober, anvg, коллеги, вопрос по прежнему в названии темы. Лично я прочитав понял, что фигуру надо повернуть на определенный угол вокруг точки таким образом, чтоб она встала рядом с нужной точкой. Шучу конечно, но читается именно так.
doober, anvg, коллеги, вопрос по прежнему в названии темы. Лично я прочитав понял, что фигуру надо повернуть на определенный угол вокруг точки таким образом, чтоб она встала рядом с нужной точкой. Шучу конечно, но читается именно так.bmv98rus
Замечательный Временно просто медведь , процентов на 20.
Лично я прочитав понял, что фигуру надо повернуть на определенный угол вокруг точки
Может и так. Фиг поймёшь этих одарённых твиттерщиков. Но, как мне кажется, что нужно чтобы вектор, проходящий через через середины отрезков прямоугольника обрамления фигуры и направленный вверх, после поворота был направлен на указанную точку. Как бы рисунок имитирует графическое отображение такого вектора
Лично я прочитав понял, что фигуру надо повернуть на определенный угол вокруг точки
Может и так. Фиг поймёшь этих одарённых твиттерщиков. Но, как мне кажется, что нужно чтобы вектор, проходящий через через середины отрезков прямоугольника обрамления фигуры и направленный вверх, после поворота был направлен на указанную точку. Как бы рисунок имитирует графическое отображение такого вектора anvg
Pelena, Елена, балуете. :-) Я б немного по иному записал
[vba]
Код
Public Sub rrr() With ActiveSheet With .Shapes("Oval 3") x1 = .Left + .Width / 2 y1 = .Top + .Height / 2 End With With .Shapes("Up Arrow 2") x2 = .Left + .Width / 2 y2 = .Top + .Height / 2 .Rotation = WorksheetFunction.Atan2(x1 - x2, y1 - y2) * 45 / Atn(1) + 90 End With End With End Sub
[/vba]
и не люблю писать 3.14 это 4 *atn(1) :-)
Pelena, Елена, балуете. :-) Я б немного по иному записал
[vba]
Код
Public Sub rrr() With ActiveSheet With .Shapes("Oval 3") x1 = .Left + .Width / 2 y1 = .Top + .Height / 2 End With With .Shapes("Up Arrow 2") x2 = .Left + .Width / 2 y2 = .Top + .Height / 2 .Rotation = WorksheetFunction.Atan2(x1 - x2, y1 - y2) * 45 / Atn(1) + 90 End With End With End Sub
Тюнинга. . По этому и пишу что записал а не написал. Я все ждал пока ТС название предложит, но видимо оно смущает только меня и Андрея :-). признаться забываю про atan2 и по старинке делал, по сему было чуть сложнее и оставил на работе, по этому Ваш код корябал.
Тюнинга. . По этому и пишу что записал а не написал. Я все ждал пока ТС название предложит, но видимо оно смущает только меня и Андрея :-). признаться забываю про atan2 и по старинке делал, по сему было чуть сложнее и оставил на работе, по этому Ваш код корябал.bmv98rus
Замечательный Временно просто медведь , процентов на 20.