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

时间:2018-10-10 16:29:57

标签: excel-vba shapes right-align

我有一个运行良好的VBA脚本,当单击具有“单击以了解更多”值的目标单元格时,将显示相应的信息弹出形状。

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

enter image description here

谢谢您的建议!

(相应形状的名称已分配给变量“ ImgName”,“ Click for More Information”单元格是“目标”单元格。)

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

这是一个例子:

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