一種向Word文檔批量插入對應(yīng)圖片的方法
我雖然能寫幾行VBA代碼,但是整體上還是一個小白。我發(fā)的一些辦公小技巧,之所以分享是因為比較實用,既然實用就不追求完美。分享的過程其實是不斷自學(xué)的過程,如果能給別人帶來幫助更好。我也盡量選擇網(wǎng)絡(luò)上不是太容易查到的方法。
向Word文檔批量插入圖片的方法有好多種, Word郵件合并是比較常見的方法。不過這并不是本文介紹的方法。介紹郵件合并的網(wǎng)絡(luò)資源很多,大家可以自行檢索。
假設(shè)有一組Word格式文本,需要填寫不同的內(nèi)容,包括插入不同的圖片,批量生成新的文檔,例如與簽訂合同、制作檔案、填寫審批表等等, Word郵件合并功能是一個非常驚艷的工具。
但是利用郵件合并功能插入圖片。不僅程序比較復(fù)雜,而且能不能夠達到預(yù)期的效果,仿佛要看Word軟件的心情,有時候很順利,有時候它怎么都不聽話,要么不能成功插入圖片,要么插入圖片的格式不理想。
我搜索了很多解決方案,但是都不能根本解決問題,后來干脆另辟蹊徑,就是今天介紹的VBA方法。我們示例的工作場景是為東漢集團每位優(yōu)秀員工小檔案貼上照片,如下圖所示。
第1步,準備工作。把需要貼照片的東漢集團優(yōu)秀員工小檔案( Word文檔),全部放在同一個文件夾里(文件夾A),把需要用到的照片也全部放在同一個文件夾里(文件夾B), Word文檔和照片都用東漢集團優(yōu)秀員工的姓名命名。
文件夾A和文件夾B既可以是同一個文件夾,也可以是在電腦不同位置的不同文件夾。 Word文檔和照片只要是相同的文件名就行,不一定要用姓名命名。
第2步,在文件夾A新建一個空白Word文檔并打開。此處注意,該新建文檔必須與等待插入圖片的Word文檔在同一個文件夾(否則其所在文件夾如果碰巧文件名與圖片文件名相同,把不需要插入圖片的Word文檔批量修改了,改回去是極其麻煩的)。
第3步,復(fù)制粘貼小代碼。按“Alt+F11”(有的鍵盤可能還要同時按下“Fn”鍵),打開VBA編輯器,雙擊左側(cè)1、2、3、4任意一處。
將小代碼粘貼在圖中右側(cè)位置。
第5步,運行宏、完成任務(wù)。按“F5”(有的鍵盤可能要同時按“Fn”鍵,或者點擊功能區(qū)的“運行”——“運行子過程/用戶窗體”,或者點擊圖中綠色小三角形。
宏運行后,根據(jù)提示,選中照片所在的文件夾,點擊“確定”。
如果指定插入圖片的位置不存在(例如表格只有三行,你指定它在第4行插入圖片),宏會在提示錯誤后自動退出運行。
批量插入圖片完成后,宏會在剛才打開的新建文檔中自動提示為多少份Word文檔插入了圖片,如果沒有對應(yīng)的圖片(例如本例沒有黃忠的照片),宏會提示成功為多少份 Word文檔插入了圖片,哪些文檔沒有找到對應(yīng)的圖片未能完成插入。
參照本公號往期文章“一分鐘合并當(dāng)前文件夾下所有word文檔”介紹的方法,在模板文檔中植入宏并創(chuàng)建按鈕,也可以一鍵進入上述流程,使用會更加方便。用戶可以根據(jù)這個宏的使用頻率自行決定是否將該宏保存到模板文檔并創(chuàng)建按鈕。
瀏覽“一分鐘合并當(dāng)前文件夾下所有word文檔”等往期文章,請回到本文頂部點擊話題“辦公小知識”。
特別提示:文件夾內(nèi)如有保護、隱藏文件將出錯。
代碼中用綠色字體標出的地方,是需要根據(jù)實際情況靈活修改的。在本例中,是在表1的第1行、第7個單元格插入圖片,所以相應(yīng)的代碼是(1)、Cell(1,7)。而在設(shè)置圖片格式時,我們插入的圖片在Word文檔中是第1個圖片,所以代碼是(1)。調(diào)整圖片的、值,可使其顯示為我們需要的大小。
文章預(yù)告:一種將Word文檔批量轉(zhuǎn)換為PDF的方法
附件:vba代碼如下
'注意事項,圖片文件要為jpg格式,且與Word文檔名稱相同。
Sub Word表格插入圖片()
Dim $, $, $, WdN$, $
Dim Wd As
Dim Num1&, Num2&
Dim BOX$
Dim $
Dim As
On Next
= .Path
= Dir( & "\" & "*.doc")
Num1 = 0
Num2 = 0
"請選擇圖片所在的文件夾。"
With .()
. = "文件夾選擇"
If .Show Then
= .(1)
End If
End With
Do ""
If .Name Then
Err.
Set Wd = .Open( & "\" & )
= .Name
= & "\" & (.Name, ".")(0) & ".jpg"
With .(1).Cell(1, 7). '在指定表格的指定單元格中插入圖片
If Err. > 0 Then
& "指定的插入位置不存在,請檢查。"
Err.
Exit Sub
End If
.
.Text = ""
.. :=, :=, :=True
.. =
End With
With .(1) '設(shè)置圖片尺寸
. = 130
. = 102
... = er
End With
If Err. > 0 Then
Num1 = Num1 + 1
WdN = WdN & Chr(13) & Wd.Name
Else
Num2 = Num2 + 1
End If
Err.
Wd. True
End If
= Dir
Loop
..
.(1)..
If Num1 = 0 Then
. Text:="您好,圖片插入已完成" & Chr(13) & Chr(13) & "共為" & Num2 & "個文件插入圖片。"
Else
. Text:="您好,圖片插入已完成" & Chr(13) & Chr(13) & "共為" & Num2 & "個文件插入圖片。" & Chr(13) & "但如下" & Num1 & "個文件對應(yīng)圖片未找到:" & Chr(13) & WdN
End If
With .
. = 0
. = (0)
. = er
. =
. = 29.45
End With
With ..Font '設(shè)置文檔的字符格式
.Name = " 方正仿宋_GBK"
.Size = 16
. = ""
. = ""
End With
With .(1).
.Font.Size = 22
.Font.Name = " 方正小標宋_GBK"
End With
End Sub
聲明:本站所有文章資源內(nèi)容,如無特殊說明或標注,均為采集網(wǎng)絡(luò)資源。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系本站刪除。