簡體   English   中英

MS Word宏VBA幫助,已選擇圖像

[英]MS Word Macro VBA Help, Selected image

我具有基本的Macro和VBA知識,但是無法弄清楚我在哪里出錯了。 (代碼插入底部)我希望宏將選定的圖像移到頁面的頂部中心。 我面臨的問題是,它不適用於文檔中的每個圖像,它適用於第一個圖像,然后不再執行任務。 我正在使用Microsoft Word 2016。

main命令執行了我想要的操作,我覺得我的錯誤在這兩行之內

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

如果您希望它與選定的圖像一起使用,並且僅與選定的圖像一起使用,則更像這樣,您可以從當前選擇中獲得形狀。

請注意如何首先檢查以確保選擇了“形狀” ...

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

就像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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM