『壹』 怎麼用VBA獲得word圖片的像素值
參考:Sub 嵌入型圖片的像素()
On Error Resume Next
With Selection.Range.Find
.ClearFormatting
.Replacement.ClearFormatting
.Execute findtext:="^g", MatchWildcards:=False, Wrap:=wdFindStop
MsgBox "該圖片的像素為:" & Selection.InlineShapes(1).Width _
& " * " & Selection.InlineShapes(1).Height
End With
End Sub
『貳』 如何運用vba將指定圖片插入word中
例如,新建一個4行1列的表格,然後在Cell(3, 1)內插入圖片:
Sub Macro1()
Dim mysel
mysel = ActiveDocument.Tables(1).Cell(3, 1)
mysel.InlineShapes.AddPicture FileName:="C:\a.jpg", LinkToFile:=True, SaveWithDocument:=True
End Sub
『叄』 VBA Word中圖片格式設置
本示例將 MyDoc.doc 中的每張圖片轉換為嵌入式圖形。
For Each s In Documents("MyDoc.doc").Shapes
If s.Type = msoPicture Then
s.ConvertToInlineShape
End If
Next s
『肆』 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" '添加「可選文字」
『伍』 vba批量替換word中圖片
可以用下面的代碼試一下:(注意,操作前,需要做好備份)
』把圖片統一成一種格式。(也可以統一轉成浮動的格式,代碼稍做修改即可)
For Each ishape In ActiveDocument.Shapes
ishape.ConvertToInlineShape
Next ishape
For i = 1 To ActiveDocument.InlineShapes.Count - 1
ActiveDocument.InlineShapes(i).Select
Selection.InlineShapes.AddPicture "c\" & i & ".jpg", linktofile:=False, savewithdocument:=True
Next
『陸』 word vba 插入圖片
Sub 批量插入圖片()
Dim myfile As FileDialog
Set myfile = Application.FileDialog(msoFileDialogFilePicker)
With myfile
.InitialFileName = "E:\工作文件" 『這里輸入你要插入圖片的目標文件夾
If .Show = -1 Then
For Each Fn In .SelectedItems
Selection.Text = Basename(Fn) '這兩句移到這里
Selection.EndKey
If Selection.Start = ActiveDocument.Content.End - 1 Then '如游標在文末
Selection.TypeParagraph '在文末添加一空段
Else
Selection.MoveDown
End If
Set MyPic = Selection.InlineShapes.AddPicture(FileName:=Fn, SaveWithDocument:=True) '按比例調整相片尺寸
WidthNum = MyPic.Width
c = 6 '在此處修改相片寬,單位厘米
MyPic.Width = c * 28.35
MyPic.Height = (c * 28.35 / WidthNum) * MyPic.Height
If Selection.Start = ActiveDocument.Content.End - 1 Then '如游標在文末
Selection.TypeParagraph '在文末添加一空段
Else
Selection.MoveDown
End If
Next Fn
Else
End If
End With
Set myfile = Nothing
End Sub
Function Basename(FullPath) '取得文件名
Dim x, y
Dim tmpstring
tmpstring = FullPath
x = Len(FullPath)
For y = x To 1 Step -1
If Mid(FullPath, y, 1) = "\" Or _
Mid(FullPath, y, 1) = ":" Or _
Mid(FullPath, y, 1) = "/" Then
tmpstring = Mid(FullPath, y + 1)
Exit For
End If
Next
Basename = Left(tmpstring, Len(tmpstring) - 4)
End Function
執行此代碼後,彈出的選擇對話框, 全選目標文件夾下的所有圖片文件之後,點擊確定。然後靜靜的等待電腦完成處理工作,次數word會進入無響應狀態。圖片越多,無響應的時間越長。
『柒』 如何用vba取得一個word文件中的所有的圖片
提供網上示例代碼供參考(此代碼的思路是遍歷 word 文檔中的 Shapes ,縮放到原始圖片尺寸,再轉粘貼到 Excel 中,借用 Excel 的 ChartObjects 提供的導出功能實現圖片原樣導出):
Subtest()
Rem工具--引用--勾選MicrosoftExcelx.xObjectLibrary..
DimmyshapeAsObject,ExcelAppAsNewExcel.Application
DimExcelAsWorkbook,i%,z%
SetExcel=ExcelApp.Workbooks.Add
.InlineShapes
Ifmyshape.Type=3Then
i=i+1
myshape.Select
Setmyshape=myshape.ConvertToShape
Rem以下代碼將圖片以原始比例展示
Withmyshape
.ScaleHeight1,True,msoScaleFromMiddle
.ScaleWidth1,True,msoScaleFromMiddle
EndWith
Selection.Copy
WithExcel.ActiveSheet.ChartObjects.Add(0,0,myshape.Width,myshape.Height).Chart
.Paste
.ExportActiveDocument.Path&""&i&".png"
.Parent.Delete
EndWith
EndIf
Next
Excel.CloseFalse
ExcelApp.Quit
EndSub
『捌』 怎麼編VBA把圖片放到WORD里並附上該圖的名稱(50分)
要從兩個方面考慮:
1、如何把現有文檔中的圖片導出?這個代碼片斷可以參考一下:
Set ImageStream = CreateObject("ADODB.Stream")
With ImageStream
.Type = 1
.Open
.Write ActiveDocument.InlineShapes(1).Range.EnhMetaFileBits
.SaveToFile "d:\Temp\Output.bmp"
.Close
End With
Set ImageStream = Nothing
2、如何把已經到處的圖片導入到新文檔中?這個函數調用可以參考一下:
ActiveDocument.InlineShapes.AddPicture
如果還是不明白的話,請補充提問。
_____
補充:
請問樓主你運行那個代碼片斷得到的*完整*錯誤信息是什麼?報錯的時候,系統一般會把游標移動到出錯的那行代碼上,你看到的是哪一行代碼出錯呢?
我看你貼上來的代碼應該是沒有什麼語法上的錯誤,「Exit For」的確是不應該要的,但那也不是語法錯誤啊。
『玖』 vba在excel中上移word圖片一頁
摘要 厲害,插入電子章,改了圖片環繞方式後圖片跑到頁首,用這個方法移動圖片file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif