MS Word 파일을 Letter 페이지 크기에서 A4로 일괄 변환하는 방법은 무엇입니까?


1

MS Word 2010 문서가 많이 있으며 레터 페이지 크기에서 A4로 변환해야합니다. 그렇게하는 간단한 방법이 있습니까? 아마도 일부 PowerShell 스크립트와 일부 MS Word API가 결합되어 있습니까?

답변:


5

다음은 주어진 폴더의 모든 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다음 실행을 클릭하십시오. 현재 열려있는 문서가 닫히고 폴더의 각 문서가 변경 될 때 다른 문서가 열리고 닫힙니다.


고마워, PowerShell에서 같은 것을 쓸 수있는 충분한 단서가 생겼습니다 (사용하기 쉽다는 것을 알았습니다). 코드를 별도의 답변으로 게시합니다.
Borek Bernard

큰. 기쁘다.
CharlieRB

"Documents.Close ..."에 주석을 달아야하거나 매크로가 문서를 닫으면 중지 될 것이라는 피드백 (검토로 삭제됨)이있었습니다. 그렇지 않으면 모든 것이 잘 작동하고 OP는 그것에 대해 감사합니다.
guest-vm

1

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()
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.