Манипулирование Excel "автофигурами" с помощью VBA - PullRequest
0 голосов
/ 09 апреля 2010

Я пытаюсь написать макрос в VBA (Excel), который назначен для флажка. При каждом нажатии флажка «автофигура» меняет свой «порядок» с «Отправить назад» на «Отправить на фронт».

По сути, я пытаюсь создать панель мониторинга с несколькими панелями, чтобы пользователи могли получать доступ к информации, не перемещаясь между листами. Каждая панель будет иметь прямоугольную автофигуру в качестве фона, а компоненты панели будут «сгруппированы» внутри автофигуры.

Можно ли это сделать? Буду очень признателен за любые идеи по написанию кода.

Спасибо,

1 Ответ

2 голосов
/ 10 апреля 2010

Я не совсем слежу за вашей более крупной целью, но для того, чтобы вывести форму на передний план, используйте это:

If MyCheckBox.Value = True Then
    MySheetName.Shapes("MyShapeName").ZOrder msoBringToFront
End If

Вы должны выбрать желаемое движение ZOrder из перечисления MsoZOrderCmd, и ваш код должен быть в подпрограмме события Change для вашего флажка.


РЕДАКТИРОВАТЬ:

Вы также можете ссылаться на фигуру по ее порядковому номеру. Например:

MySheetName.Shapes(0).ZOrder msoBringToFront

Кроме того, чтобы получить имя фигуры, либо щелкните его и посмотрите в поле «Имя» в верхнем левом углу Excel (под панелями инструментов), либо выполните итерацию по всем фигурам следующим образом:

Sub Macro1()

Dim MyShape As Shape

For Each MyShape In Sheet1.Shapes

    Debug.Print MyShape.Name

Next MyShape

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...