|
|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
看到有坛友求助 批量导出word中图片。网上搜了不少资料,最后参考了 http://blog.sina.com.cn/s/blog_3f6643ee0102wixw.html , 采取的是县复制到excel,再导出的方式实现。(其他几种方式没成功,或者达不到理想效果)。第一次尝试图像提取,敬请各位大师多指导!
具体代码如下: 两段分别处理嵌入图像和悬浮图像
Sub smiletwo()
Dim Excel_Shape As Shape, MyFile, path
Dim i%, m%
Dim Word, Myword As Object
On Error Resume Next
path = ThisWorkbook.path & "\"
MyFile = Dir(path & "*.doc*")
Set Word = CreateObject("word.application")
Do While MyFile <> ""
Set Myword = Word.documents.Open(path & MyFile)
Word.Visible = flase
Application.DisplayAlerts = False
m = 0
If Myword.Shapes.Count > 0 Then
For i = 1 To Myword.Shapes.Count
Myword.Shapes(i).Select
Word.Selection.Copy
ActiveSheet.Cells(i, 1).Activate
ActiveSheet.PasteSpecial Format:="图片(增强型图元文件)", Link:=False, DisplayAsIcon:=False
Set Excel_Shape = ActiveSheet.Shapes(1)
Excel_Shape.Copy
With ActiveSheet.ChartObjects.Add(0, 0, Excel_Shape.Width, Excel_Shape.Height).Chart
.Paste
m = m + 1
.Export path & "pic\" & Split(MyFile, ".")(0) & m & ".jpg"
.Parent.Delete
End With
Excel_Shape.Delete
Next i
End If
If Myword.InlineShapes.Count > 0 Then
For i = 1 To Myword.InlineShapes.Count
Myword.InlineShapes(i).Select
Word.Selection.Copy
ActiveSheet.Cells(i, 1).Activate
ActiveSheet.PasteSpecial Format:="图片(增强型图元文件)", Link:=False, DisplayAsIcon:=False
Set Excel_Shape = ActiveSheet.Shapes(1)
Excel_Shape.Copy
With ActiveSheet.ChartObjects.Add(0, 0, Excel_Shape.Width, Excel_Shape.Height).Chart
.Paste
m = m + 1
.Export path & "pic\" & Split(MyFile, ".")(0) & m & ".png"
.Parent.Delete
End With
Excel_Shape.Delete
Next i
End If
Myword.Close
MyFile = Dir
Loop
Set Myword = Nothing
Word.Quit
Set Word = Nothing
End Sub
|
评分
-
1
查看全部评分
-
|