01 ian. 2018 | 13:27

Cum creezi documente separate din paginile unui fișier Word

TUTORIALE
Cum creezi documente separate din paginile unui fișier Word

Microsoft Word este un program surprinzător de prietenos pentru acțiuni simple de editare, dar s-ar putea să nu știi cum creezi documente separate din paginile unui fișier.

Nu mai folosesc la fel de mult Microsoft Word precum în urmă cu câțiva ani, dar în continuare caut să-mi perfecționez cunoștințele. În mare parte, cunosc destul de bine cum te poate ajuta aplicația de editare a celor de la Microsoft. În urmă cu câteva zile m-am confruntat însă cu un scenariu care m-a pus în dilemă și m-am străduit să caut o soluție. M-a întrebat cineva cum creezi documente separate din paginile unui fișier Word. 

Soluția laborioasă la problema din titlu implică copierea conținutului din fiecare pagină și lipirea sa într-un fișier nou. Acest mecanism se pretează perfect pentru un document cu trei, patru pagini, dar cu siguranță nu este eficient dacă ai 20 de pagini. Atunci, trebui să apelezi la un script de Visual Basic sau VBA. Deși s-ar putea să pară foarte complexă ideea, implică doar câțiva pași.

Deschide un document în Microsoft Word sau salvează-l pe cel la care lucrezi. Apasă pe ALT + F11 pentru a deschide Microsoft Visual for Application. Din meniul Insert, alege Module. Imediat vei întâmpina o pagină albă în care trebuie să copiezi textul de mai jos.

Sub SplitIntoPages()
Dim docMultiple As Document
Dim docSingle As Document
Dim rngPage As Range
Dim iCurrentPage As Integer
Dim iPageCount As Integer
Dim strNewFileName As String
Application.ScreenUpdating = False 'Makes the code run faster and reduces screen _
flicker a bit.
Set docMultiple = ActiveDocument 'Work on the active document _
(the one currently containing the Selection)
Set rngPage = docMultiple.Range 'instantiate the range object
iCurrentPage = 1
'get the document's page count
iPageCount = docMultiple.Content.ComputeStatistics(wdStatisticPages)
Do Until iCurrentPage > iPageCount
If iCurrentPage = iPageCount Then
rngPage.End = ActiveDocument.Range.End 'last page (there won't be a next page)
Else
'Find the beginning of the next page
'Must use the Selection object. The Range.Goto method will not work on a page
Selection.GoTo wdGoToPage, wdGoToAbsolute, iCurrentPage + 1
'Set the end of the range to the point between the pages
rngPage.End = Selection.Start
End If
rngPage.Copy 'copy the page into the Windows clipboard
Set docSingle = Documents.Add 'create a new document
docSingle.Range.Paste 'paste the clipboard contents to the new document
'remove any manual page break to prevent a second blank
docSingle.Range.Find.Execute Findtext:="^m", ReplaceWith:=""
'build a new sequentially-numbered file name based on the original multi-paged file name and path
strNewFileName = Replace(docMultiple.FullName, ".doc""_" & Right$("000" & iCurrentPage, 4) & ".doc")
docSingle.SaveAs strNewFileName 'save the new single-paged document
iCurrentPage = iCurrentPage + 1 'move to the next page
docSingle.Close 'close the new document
rngPage.Collapse wdCollapseEnd 'go to the next page
Loop 'go to the top of the do loop
Application.ScreenUpdating = True 'restore the screen updating
'Destroy the objects.
Set docMultiple = Nothing
Set docSingle = Nothing
Set rngPage = Nothing
End Sub
Din bara de meniu a aceleeași ferestre apasă pe Play/Run sau, de pe tastatură, folosește F5. În funcție de dimensiunea documentului, trebuie să aștepți câteva momente sau câteva minute până când documentul original va fi spart în documente de câte o pagină. Fiecare fișier nou va fi numerotat și salvat în directorul în care ai salvat documentul original.
La 11 ani am instalat primul meu Windows 95, iar la 14 ani mi-am cumpărat o rachetă de Pentium la 133 MHz cu 128 MB RAM si hard disk de 160 MB. După bacalaureat m-am angajat, timp de mai bine de trei ... vezi toate articolele