A. 如何用VBA中獲取word文檔中的圖片
於圖片來說,,分為二種的,,
第一種:是Shape對象(Word中自帶的「自選圖形」)
第二種:是InlineShape對象(嵌入式圖片,也就是所謂的通過點擊菜單欄中的「插入」->「圖片」->「來自文件」)
-------------------
如何判斷word文檔中是否存在一張圖片呢?這個問題。
我來解答:判斷word文檔中是否存在一張圖片,可以通過看一看word文檔中的inlineshape對象的數量來判斷。
舉例:
Dim doc As Document '當前打開的文檔對象Document
Dim MyApp As Word.Application 'Word應用程序對象
Dim MyFileName As String '當前打開的文件名
MyFileName="c;\aaa.doc" '此處可以改成你的文件名字
Set MyApp = CreateObject("Word.Application")
Set doc = MyApp.Documents.Open(MyFileName)
If doc.InlineShapes.Count <> 0 then
msgbox "有嵌入式圖片存在!"
Else
msgbox "沒有嵌入式圖片存在!"
End if
-------------------------------------------------------
如果你非要想知道,用戶到底是不是插入了你要求的圖片的話,你要必須要再他進行插入圖片操作時進行控制,也就是說,你必須把用戶所插入的圖片的(絕對地址)或者(圖片名字)添加到用戶所插入圖片的「可選文字」中記錄下來。
MydocInlineShapes.AddPicture(FileName, LinkToFile, SaveWithDocument, Range)
FileName String 類型,必需。指定要創建對象的文件名。如果忽略本參數,則使用當前文件夾。
LinkToFile Variant 類型,可選。如果此屬性設置為 True,則將 OLE 對象與創建該對象的文件鏈接。如果設置為 False,則令該 OLE 對象成為該文件的獨立副本。默認值為 False。
SaveWithDocument Variant 類型,可選。如果此屬性為 True,則將鏈接的圖片與文檔一起保存。默認值為 False。
Range Variant 類型,可選。指定一個區域,OLE 對象放置在該區域的文字中。如果該區域未折疊,那麼圖片將覆蓋該區域。如果忽略此參數,則自動放置圖片。
ActiveDocument.Shapes.AddPicture "C:\stone.bmp",True, True,MyRange
ActiveDocument.InlineShapes(ID).AlternativeText = App.Path & "\temp" & shapeII & ".bmp" '添加「可選文字」