Страницы: 1
RSS
Можно ли скрыть автофигуру эксель
 
Можно ли скрыть автофигуру эксель?  Допустим есть автофигура - овал. Я жму на кнопку запуска макроса - и фигура исчезает, становится просто невидимой, так что на ее месте - находятся обычные ячейки, которые можно заполнять. Жму на другую кнопку - и автофигура вновь появляется.  

Но она должна появлятся - не как рисунок, а именно как автофигура, чтобы можно было провести изменение узлов на ней или изменить толщину контура - в общем работать с ней как с обычной автофигурой.
 
Ctrl+6 - скрыть/показать объекты
 
В код макроса, который вызывается по нажатию на фигуре добавляете строку:
Код
ActiveSheet.Shapes(Application.Caller).Visible = False
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
В общем добавил макрос...

Теперь другая проблема - как автофигуру обратно вытащить.
 
И в какой же момент её планируете вытаскивать? Нажали - скрылась. А вытаскивать когда? Вы не стесняйтесь, озвучивайте условия :)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Там есть второй кружок - при нажатии на него - скрывшаяся ранее фигура -  должна снова появится.
То есть это, наверное должен быть другой макрос, привязанный к верхней автофигуре - ответственный за появление нижней автофигуры.
 
ну и что мешает присмотреться к моему коду и подумать? :)
Код
ActiveSheet.Shapes("имя_отображаемой_фигуры").Visible = True
имя фигуры можно увидеть, выделив для редактирования фигуру и посмотрев в окно адреса(левее строки формул).
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Один код на два действия: если фигура скрыта, то...
 
Цитата
vikttur написал: Один код на два действия
а как же код сработает при скрытой фигуре, если он запускается нажатием на фигуру?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Как я понял, скрывать можно себя, открывать другой фигурой:
Код
Sub Oval1_Щелчок(): Call FT: End Sub
Sub Oval2_Щелчок(): Call FT: End Sub

Sub FT()
    With ActiveSheet.Shapes(Application.Caller)
        .Visible = Not .Visible
    End With
End Sub
 
при втором щелчке Application.Caller будет уже другой...Это будет Oval2.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Вот теперь-то все заработало.

Спасибо за помощь.
 
Цитата
The_Prist написал: при втором щелчке Application.Caller будет уже другой...
Точно, не сообразил...
Страницы: 1
Читают тему
Наверх