導航:首頁 > 文字圖片 > wordvba批量處理圖片

wordvba批量處理圖片

發布時間:2023-08-27 18:51:50

『壹』 如何用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

『貳』 word中使用vba按照現在圖片的順序,用新的圖片把舊圖片全部替換,圖片名稱統一由規定的

解題思路很重要,下面給出替換圖片的關鍵代碼:

Sub替換活動文檔中的第一張圖片()
ActiveDocument.InlineShapes(1).Select
Selection.InlineShapes.AddPicture"[要替換的圖片的完整路徑]"
EndSub


PS:實際使用中可以將要替換的新圖片按照 Word 文檔中的圖片出現的順序進行編號(如1.jpg、2.jpg、3.jpg...)並放入一個文件夾中,然後將上述代碼放入循環語句中並稍作修改,通過遍歷 Word 文檔中的 InlineShapes 對象同時傳遞圖片的完整路徑即可實現全部替換!

『叄』 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文檔里的嵌入型圖片或表格

提供示例代碼供參考:

SubBatEditPic()
DimShapesCountAsInteger
DimiAsInteger
ShapesCount=ActiveDocument.InlineShapes.Count
Fori=1ToShapesCount
WithActiveDocument.InlineShapes(i)
'修改圖片邊框
With.Borders(wdBorderTop)
.LineStyle=wdLineStyleSingle
.LineWidth=wdLineWidth050pt
EndWith
With.Borders(wdBorderBottom)
.LineStyle=wdLineStyleSingle
.LineWidth=wdLineWidth050pt
EndWith
With.Borders(wdBorderLeft)
.LineStyle=wdLineStyleSingle
.LineWidth=wdLineWidth050pt
EndWith
With.Borders(wdBorderRight)
.LineStyle=wdLineStyleSingle
.LineWidth=wdLineWidth050pt
EndWith
EndWith
Nexti
EndSub

『陸』 尋找WORD VBA高手解決WORD批量插入圖片程序的問題

Selection.Text = Basename(Fn) '這兩句移到這里
Selection.EndKey

這兩句移一下位置,其它不變。

Sub 批量插入圖片()
Dim myfile As FileDialog
Set myfile = Application.FileDialog(msoFileDialogFilePicker)
With myfile
.InitialFileName = "D:\111"
If .Show = -1 Then
For Each Fn In .SelectedItems
Selection.Text = Basename(Fn) '這兩句移到這里
Selection.EndKey
Set mypic = Selection.InlineShapes.AddPicture(FileName:=Fn, SaveWithDocument:=True)
'按比例調整相片尺寸
WidthNum = mypic.Width
c = 18 '在此處修改相片寬,單位厘米
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
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里所有圖片一次性銳化

步驟如下:

1.打開word後,選中一張圖片;

3.這樣一次性選中所有圖片後即可點擊完成銳化。

閱讀全文

與wordvba批量處理圖片相關的資料

熱點內容
圖片大全唯美我恨自己的文字 瀏覽:237
熱量高的男生燙發發型圖片 瀏覽:285
電腦郵件圖片怎麼發送 瀏覽:317
文字圖片備忘錄圖片 瀏覽:792
警察執行任務高清圖片 瀏覽:399
女僕動漫圖片 瀏覽:965
2021年女士短發發型圖片帥氣 瀏覽:597
人間太熱可愛圖片 瀏覽:73
滿塘睡蓮高清圖片 瀏覽:190
兒童手工可愛圖片大全 瀏覽:667
班組長文字圖片 瀏覽:999
柔胸圖片動漫 瀏覽:862
一個在地上趴著玩兒的小女孩圖片 瀏覽:134
如何把文字壓在圖片上 瀏覽:497
簡單的葫蘆烙畫100種圖片 瀏覽:971
貴氣的男生圖片 瀏覽:308
蘭花草高清版圖片 瀏覽:32
春季針織衣服搭配圖片 瀏覽:347
孕婦簡筆畫圖片大全可愛 瀏覽:490
鉛筆人物圖片男生古風 瀏覽:357