Înlocuire text în documente
O macrocomandă utilă (pentru unii :) ), găsită pe
https://www.datanumen.com/blogs/find-replace-contents-multiple-word-documents/
Macrocomanda face următoarele:
- deschide folderul specificat în prima casetă de dialog (calea completă, care poate fi copiată din Explorer - de exemplu, D:\Docs\Teste)
- apoi, pe rând, deschide toate fișierele Word (doc sau docx) din acel folder
- caută textul specificat în a doua casetă de dialog și îl înlocuiește cu cel scris în a treia casetă de dialog
- salvează și închide fișierul.
Codul este copiat mai jos - are o singură modificare la tipul fișierului față de codul original, ca să preia și fișiere .doc.
În loc de
strFile = Dir(strFolder & "\" & "*.docx", vbNormal)
am scris
strFile = Dir(strFolder & "\" & "*.doc*", vbNormal)
Sub FindAndReplaceInFolder()
Dim objDoc As Document
Dim strFile As String
Dim strFolder As String
Dim strFindText As String
Dim strReplaceText As String
'Copiat de pe https://www.datanumen.com/blogs/find-replace-contents-multiple-word-documents/
'Sunt afisate cele 3 casete pentru introducere date - calea la folder, text cautat si text cu care se inlocuieste.
strFolder = InputBox("Aici se introduce calea la folder:")
strFile = Dir(strFolder & "\" & "*.doc*", vbNormal)
strFindText = InputBox("Textul cautat:")
strReplaceText = InputBox("Text cu care se inlocuieste:")
'Macrocomanda deschide fiecare fisier de tip doc* din folder, cauta si inlocuieste textul. Apoi salveaza si inchide fisierul.
While strFile <> ""
Set objDoc = Documents.Open(FileName:=strFolder & "\" & strFile)
With objDoc
With Selection
.HomeKey Unit:=wdStory
With Selection.Find
.text = strFindText
.Replacement.text = strReplaceText
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End With
objDoc.Save
objDoc.Close
strFile = Dir()
End With
Wend
End Sub