将形状的右边缘与目标单元格的左边缘对齐
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
我有一个运行良好的 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