Word で図形やグラフィックをページの右上隅に配置する VBA マクロが機能しません

Word で図形やグラフィックをページの右上隅に配置する VBA マクロが機能しません
Sub alignGraphicElementToTopRightCornerOfPage()
'
' alignGraphicElementToTopRightCornerOfPage Macro
'
'
    Selection.ShapeRange.Align msoAlignTops, True
    Selection.ShapeRange.Align msoAlignRights, True
End Sub

マクロを使用した場合と、リボンから複数のコマンドを手動で実行した場合の違いを確認します。記録機能を使用してマクロを作成しました。

マクロによりアイテムがページ外に表示されてしまいますが、これは望ましくない動作であり、マクロを記録したときには発生しませんでした。

Microsoft Word VBA マクロ グラフィックまたは図形をページの右上隅に揃える

なぜ動作しないのですか? マクロは正しく記録しました。変更または追加する必要がある VBA コードはありますか?

答え1

VBA マクロに新しい行を追加することで問題を修正しました。

Sub alignGraphicElementToTopRightCornerOfPage()
'
' alignGraphicElementToTopRightCornerOfPage Macro
'
'
    Selection.ShapeRange.WrapFormat.Type = wdWrapFront
    ' choose the wrapping type
    ' the following values are good "3" "wdWrapFront" an "wdWrapTight"
    ' I don't know what "3" does but Microsoft Office 2007 uses it
    
    Selection.ShapeRange.RelativeHorizontalPosition = _
        wdRelativeHorizontalPositionColumn
    Selection.ShapeRange.RelativeVerticalPosition = _
        wdRelativeVerticalPositionPage
    Selection.ShapeRange.RelativeHorizontalSize = wdRelativeHorizontalSizePage
    Selection.ShapeRange.RelativeVerticalSize = wdRelativeVerticalSizePage
    ' these commands are needed if the wrapping type is "3" or "wdWrapFront"
    ' ensure the shape is aligned to the top right corner of the page
        ' This also fixes the formatting problems when the page has text on it,
        ' to prevent an extra line break or blank space appearing on the screen
        ' that the user did not intentionally create
    
    Selection.ShapeRange.WrapFormat.DistanceTop = CentimetersToPoints(0)
    Selection.ShapeRange.WrapFormat.DistanceBottom = CentimetersToPoints(0)
    ' these commands are needed if the wrapping type is "wdWrapTight"

    Selection.ShapeRange.Align msoAlignTops, True
    Selection.ShapeRange.Align msoAlignRights, True
    ' start aligning the image to the top right of the page
    
End Sub

関連情報