Scenario mi se učinio interesantan i zgodan za VBA.
Postavka je ovakva: imamo otvoren Word dokument, ja sam ga nazvao MainDoc i u njemu startujemo makro. Makro nalazi sve word dokumente u zadatom folderu i za svaki od dokumena poziva proceduru
AddLines koja prepisuje prve dve linije iz tog dokumenta na kraj početnog dokumenta (odakle je makro startovan)
MainDoc treba da bude u nekom drugom folderu - ne u ovom koji se pretražuje.
Osnovno je napraviti proceduru koja iz zadatu putanju dokumenta prepisuje prve dve (ili da uopštimo numLine) linija na kraj otvorenog dokumenta
Code:
Sub AddLines(srcDoc As String, numLine As Integer)
' Ova procedura otvara document strDoc i
' Prepisuje prvih numLine iz tog dokumenta
' Na kraj otvorenog dokumena
' P.Jovanovic za elitesecurity.org
'
Dim lineFromSource As String
' Otvaranje dokumenta za pr
Documents.Open FileName:=srcDoc
Selection.MoveDown Unit:=wdLine, Count:=numLine
Selection.HomeKey Unit:=wdStory, Extend:=wdExtend
lineFromSource = Selection.Text
ActiveDocument.Close SaveChanges:=False
' Upis na kraj ovog dokumenta
ThisDocument.Activate
With Selection
.EndKey Unit:=wdStory
.TypeParagraph
.TypeText lineFromSource
End With
End Sub
Posle tu proceduru pozivaš u petlji - primer petlji koja prolaze kroz folder ima na netu (čini mi se da je nešto već i bilo na elitesecurity ali nisam našao pa sam uzeo kod sa
stackoverflow
Za probu otvori dokument u prilogu i omogući makroe.
Startuj Alt+F11 da otvoriš VBA editior. Promeni folder u LoopDirectory prema tvom slučaju. Ako je potrebno umesto ekstenzije docx stavi doc.
Snimi izmene.
Iz dokumenta pokreni mako Alt+F8, LoopDirectory
Nije to loše Rembrante, samo što ne bi dodao još malo boje?