将形状的右边缘与目标单元格的左边缘对齐

Align right edge of shape to left edge of target cell

我有一个运行良好的 VBA 脚本,当单击具有值 "Click to Learn More" 的目标单元格时,会显示相应的信息弹出窗口形状。

我希望能够添加代码,将形状的右边缘重新对齐到目标单元格的左边缘,最好像屏幕截图示例那样垂直居中。我已经使用 msoAlignRight 尝试了一些建议,但我还不够 VBA 专家还不知道正确的语法 - 如果这是正确的方法的话。

感谢您的任何建议!

(对应形状的名称赋值给变量,"ImgName","Click for More Information"单元格为Target单元格。)

您是否为此尝试过 ShapeRange 的 Align 方法。正如您所说,您希望将源形状的右边缘与目标形状的左边缘对齐。如 https://docs.microsoft.com/en-us/office/vba/api/word.shaperange.align 中所述,可以使用此方法完成此操作。

这是一个例子:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim s As Shape

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

If Target.Address = "$G" 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