【问题标题】:MS Word Macro VBA Help, Selected imageMS Word 宏 VBA 帮助,选定的图像
【发布时间】:2018-02-08 09:30:45
【问题描述】:

我有基本的宏和 VBA 知识,但无法弄清楚我在哪里出错了。 (插入底部的代码)我希望我的宏将选定的图像移动到页面的顶部中心。我面临的问题是它不适用于文档中的每个图像,它适用于第一个图像,然后不再执行任务。我正在使用 Microsoft Word 2016。

主命令做我想做的事,我觉得我的错误在这两行之内

Set myDocument = ActiveDocument
With myDocument.Shapes(1)

完整的代码;

Sub AlignToCentre()
'
' AlignToCentre

    Dim shp As Shape
Set myDocument = ActiveDocument
With myDocument.Shapes(1)
        .WrapFormat.Type = wdWrapSquare
        .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
        .Left = wdShapeCenter
        .RelativeVerticalPosition = wdRelativeVerticalPositionPage
        .Top = InchesToPoints(1)

    End With
End Sub

【问题讨论】:

  • myDocument.Shapes(1) 将始终返回相同的形状。您应该将 index 作为参数传递给您的 sub 并执行 myDocument.Shapes(index)

标签: vba ms-word


【解决方案1】:

如果您希望它适用于所选图像,并且仅适用于所选图像,那么更像这样,您可以从当前选择中获取形状。

注意您应该如何首先检查以确保选择了一个形状...

Sub PositionSelectedShape()
    Dim sel As word.Selection
    Dim shp As word.Shape

    Set sel = Selection
    If sel.Type = wdSelectionShape Then
        Set shp = sel.ShapeRange(1)
        With shp
            .WrapFormat.Type = wdWrapSquare
            .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
            .Left = wdShapeCenter
            .RelativeVerticalPosition = wdRelativeVerticalPositionPage
            .Top = InchesToPoints(1)
        End With
    End If
End Sub

【讨论】:

    【解决方案2】:

    就像Kim Raaness 所建议的那样,您需要遍历所有想要将它们居中的形状。

    试试这样的:

    Sub AlignToCentre()
    '
    ' AlignToCentre
    
        Dim shp As Shape
    Set myDocument = ActiveDocument
    For Each shp in myDocument.Shapes
      With shp
            .WrapFormat.Type = wdWrapSquare
            .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
            .Left = wdShapeCenter
            .RelativeVerticalPosition = wdRelativeVerticalPositionPage
            .Top = InchesToPoints(1)
      End With
    Next shp
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-03
      • 2022-01-15
      • 2011-11-29
      • 1970-01-01
      相关资源
      最近更新 更多