我试图编写一个VBA宏来将图像对齐到页面的右上角,并将文本换行设置为" Behind Text"和"页面上的固定位置。"
通常我选择图像并通过对话框进行所有这些设置。但过了一段时间后它变得乏味。我想知道是否有办法以编程方式进行。我希望我可以打开页眉,粘贴我的标题图像,然后单击一个宏按钮让宏对齐静止选定的图像。
我尝试录制我的操作宏,但是宏没有记录我的任何对话操作(在文本后面,固定页面位置等)。所以该方法没有提供解决方案。我尝试使用页眉内部和外部的图像,但没有成功。
是否可以让某些VBA代码与当前选定的图像对象对齐?理想情况下,我会打开页眉,粘贴我的标题图像,然后运行VBA宏来执行上面的四个操作(在文本后面,页面上的固定位置,顶部对齐页面,右侧对齐页面)。我希望有人可以告诉我如何或指向我一些文档或示例,说明如何做到这一点。
更新
由于某些原因我无法发布到论坛,所以我在这个问题上工作了几天,最后为下一个人拼凑了这个解决方案。我希望我知道在哪里查看手册或教程中的这类东西。
但唯一的方法似乎是在网上论坛上拼凑解决方案。这是我的贡献! : - )
Sub AlignTopRight()
' Paste an image into Word so it is still selected
' Then invoke this macro to align it to the top right corner
' And to set it behind text, fixed position on the page
Application.ScreenUpdating = False
Dim Shp As Shape
On Error Resume Next
'I'm not sure if this block is required, but it works
Set Shp = Selection.InlineShapes(1)
If Not Shp Is Nothing Then
Set Shp = Selection.InlineShapes(1).ConvertToShape
Else
Set Shp = Selection.ShapeRange.Item(1)
End If
If Not Shp Is Nothing Then
With Shp
.LockAspectRatio = True
' for absolute positioning
'.Left = CentimetersToPoints(5.5)
'.Top = CentimetersToPoints(0.5)
'.Width = CentimetersToPoints(2.5)
'put the image behind text
.WrapFormat.Type = wdWrapBehind
'this was the tricky part, discovering this
.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
.RelativeVerticalPosition = wdRelativeVerticalPositionPage
.Top = wdShapeTop 'if you say =0, it sets the AbsolutePx in the dialog
.Left = wdShapeRight 'these wdShapeXX objects set the Align field in the dialog
End With
End If
Set Shp = Nothing
Application.ScreenUpdating = True
End Sub
答案 0 :(得分:0)
刚刚发现这个功能来回答我自己的问题。请参阅问题发布中的答案。