Выровняйте правый край фигуры по левому краю целевой ячейки - PullRequest
0 голосов
/ 10 октября 2018

У меня есть хорошо работающий VBA-скрипт, который, когда щелкают по целевой ячейке со значением «Click to Learn More», появляется соответствующая всплывающая информационная форма.

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

enter image description here

Спасибо за любые предложения!

(Имя соответствующей фигуры присваивается переменной «ImgName», а ячейка «Click for More Information» является ячейкой Target.)

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Вот иллюстрация:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim s As Shape

Set s = ActiveSheet.Shapes("Rectangle 1")

If Target.Address = "$G$10" Then
    With s
        .Visible = True
        .Left = Target.Left - s.Width - 10
        .Top = Target.Top + (Target.Height - s.Height) / 2
    End With
Else
    s.Visible = False
End If

End Sub

enter image description here

0 голосов
/ 10 октября 2018

Пробовали ли вы для этого метод выравнивания ShapeRange.Как вы сказали, вы хотите выровнять правый край вашей исходной фигуры по левому краю целевой фигуры.Как описано в https://docs.microsoft.com/en-us/office/vba/api/word.shaperange.align,, это можно сделать с помощью этого метода.

...