Выбор диаграммы и формы внутри диаграммы application.caller - PullRequest
0 голосов
/ 20 апреля 2020

Я могу выбрать форму, как обычно, используя следующую VBA

ActiveSheet.Shapes(Application.Caller).Select

Я хочу выбрать диаграмму и создать форму внутри диаграммы. Я не нахожу строку кода.

Я попробовал следующее, но безуспешно.

ActiveSheet.ChartObjects(Application.Caller).Select

Дополнительная информация:

На самом деле мой график заблокирован, и я хочу, чтобы он был заблокирован, а мой лист защищен (объект редактирования не отмечен). Я вставил фигуру в график. Моя цель - редактировать фигуру внутри графика в заблокированном режиме с помощью application.caller. Таким образом, я могу выбрать форму, затем я смогу редактировать ее

У меня будет более 10 фигур на диаграмме, и формы будут добавлены динамически с помощью кнопки добавления формы со случайными именами. так что я могу нацелить фигуру с ее именем. Вот почему я хочу, чтобы пользователь application.caller автоматически выбрал его

Спасибо

1 Ответ

1 голос
/ 20 апреля 2020
Sub ChartClick()

    Dim cht As Chart, clr

    Set cht = ActiveSheet.Shapes(Application.Caller).Chart

    cht.Shapes("myShape").Select

'    With cht.Shapes("myShape")
'        clr = .Fill.ForeColor.RGB
'        .Fill.ForeColor.RGB = IIf(clr = vbRed, vbBlue, vbRed)
'    End With

End Sub

... при условии, что ваш макрос связан с chartobject, а не напрямую с формой, содержащейся в диаграмме.

Вы можете (и должны) работать непосредственно с cht и не использовать ActiveChart. Почти никогда нет необходимости выбирать / активировать что-либо в Excel для работы с ним.

Как избежать использования Select в Excel VBA

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