답변:
다음은 주어진 폴더의 모든 Word 문서를 변경하기 위해 매크로로 추가 할 수있는 VBA입니다.
경고 :이 코드를 실행하기 전에 파일의 백업 사본을 만드십시오.
새 Word 문서를 열고이 코드를 VBA 창 ( Alt+ F11)에 붙여 넣습니다 . 필요한 경로를 변경 한 다음 창을 닫으십시오.
Sub ChangePaperSize()
Dim myFile As String
Dim myPath As String
Dim myDoc As Document
'Change to the path where your documents are located.
'This code changes ALL documents in the folder.
'You may want to move only the documents you want changed to seperate folder.
myPath = "C:\temp\"
'Closes open documents before beginning
Documents.Close SaveChanges:=wdPromptToSaveChanges
'Set the path with file name for change
myFile = Dir$(myPath & "*.docx")
Do While myFile <> ""
'Open the document and make chages
Set myDoc = Documents.Open(myPath & myFile)
myDoc.PageSetup.PaperSize = wdPaperA4
'Close and saving changes
myDoc.Close SaveChanges:=wdSaveChanges
'Next file
myFile = Dir$()
Loop
msgbox "Process complete!"
End Sub
매크로 창 ( Alt+ F8)을 열고을 선택한 ChangePaperSize
다음 실행을 클릭하십시오. 현재 열려있는 문서가 닫히고 폴더의 각 문서가 변경 될 때 다른 문서가 열리고 닫힙니다.
CharlieRB의 답변을 기반으로 한 PowerShell 버전 :
param(
[parameter(position=0)]
[string] $Path
)
$docFiles = (Get-ChildItem $Path -Include *.docx,*.doc -Recurse)
$word = New-Object -com Word.Application
foreach ($docFile in $docFiles) {
$doc = $word.Documents.Open($docFile.FullName)
$doc.PageSetup.PaperSize = [Microsoft.Office.Interop.Word.WdPaperSize]::wdPaperA4
$doc.Save()
$doc.Close()
}
$word.Quit()