Axl*_*xle 5 vba ms-word shapes
我有一个简单的要求,将嵌入 Word Doc 中的 MS-Office 绘图对象保存到图像文件中。以下代码适用于从 Powerpoint 提取图像。但是,如果我将 ActivePresentation 修改为 ActiveDocument,则它不适用于 MS-Word。导出方法不适用于形状对象。有任何想法吗?
Dim oPPTShap as Shape
For k = 1 To .Slides(intSlide).Shapes.Count
Set oPPTShape = ActivePresentation.Slides(intSlide).Shapes(k)
oPPTShape.Export "C:\images\s" & k & ".bmp", ppShapeFormatBMP
Next
Run Code Online (Sandbox Code Playgroud)
小智 5
这不是很好,因为它以 EMF 格式输出每个图像,但它确实将内联形状集合中的每个图像写入单个文件。当然可以修改它以进行其他形状集合。
我想增强到直接写JPG,但到目前为止还不知道VBA通过过滤器推送WRITE输出的方式。因此,要使用这些文件,您需要运行一些外部后处理/批处理,以将文件从 EMF 转换为更有用的文件。
Sub WriteInlineShapesToFile()
Dim docCurrent As Document
Dim shapeCurrent As InlineShape
Dim RC As Integer
Dim vData() As Byte
Dim i As Long
Dim lWritePos As Long
Dim strOutFileName As String
Set docCurrent = ActiveDocument
i = 1
For Each shapeCurrent In docCurrent.InlineShapes
strOutFileName = "c:\temp\datafile" & CStr(i) & ".emf"
Open strOutFileName For Binary Access Write As #1
i = i + 1
vData = shapeCurrent.Range.EnhMetaFileBits
lWritePos = 1
Put #1, lWritePos, vData
Close #1
Next shapeCurrent
RC = MsgBox("Job complete.", vbOKOnly, "Job Status")
End Sub
Run Code Online (Sandbox Code Playgroud)
您尝试从 PPT VBA 复制到 Word VBA 的代码将不起作用,因为 Word 中不存在该功能。
你可以自己尝试一下:当你在Word中选择形状并右键单击时,你没有另存为图像的功能...(而在PPT中你有这个功能)。
然而,从这个页面,作者指出了一个MVP,他构建了一个 VBA 解决方案来完成您想要的操作:http://www.lebans.com/msword.htm
希望它能达到你想要的效果
| 归档时间: |
|
| 查看次数: |
17326 次 |
| 最近记录: |