Excel VBA를 사용하여 여러 개의 PDF 병합하는 방법

이 글에서는 Excel VBA를 사용하여 여러 PDF 파일을 하나로 병합하는 방법을 설명합니다. 이 과정을 자동화하면 노력을 절약하고 효율적으로 작업할 수 있습니다. 특히 많은 수의 PDF를 처리할 때 이 방법이 유용합니다. 아래 단계를 따라 PDF 병합 매크로를 쉽게 만들고 사용할 수 있습니다.

목차

필요한 도구 및 준비

VBA 매크로를 사용하여 PDF를 병합하려면 약간의 준비가 필요합니다. 아래 도구와 단계를 확인하세요.

PDF 병합 도구 설치

PDF 병합을 위해서는 PDF 라이브러리가 필요합니다. 여기에서는 Adobe Acrobat 또는 PDFtk를 사용하는 방법을 소개합니다.

Adobe Acrobat용
  1. Adobe Acrobat을 설치합니다. Adobe Acrobat Pro 라이센스가 필요합니다.
  2. VBA에서 Acrobat 개체 라이브러리를 참조로 설정합니다.
  • Excel에서 VBA 편집기를 엽니다 (Alt + F11).
  • “도구” 메뉴에서 “참조”를 선택합니다.
  • “Adobe Acrobat xx.x Type Library”를 선택하고 “확인”을 클릭합니다.
PDFtk용
  1. PDFtk를 설치합니다. 무료 PDFtk Server를 사용할 수 있습니다.
  2. PDFtk 설치 디렉토리를 시스템 PATH에 추가합니다.
  • Windows 시스템 환경 변수를 편집하고 PDFtk 설치 경로를 “Path”에 추가합니다.

매크로 설정

  1. Excel 파일을 열고 Alt + F11로 VBA 편집기를 엽니다.
  2. 새 모듈을 삽입합니다 (메뉴 “삽입” → “모듈”).
  3. 모듈에 다음 코드를 붙여넣습니다.

이제 VBA 매크로를 사용할 준비가 되었습니다. 다음으로는 구체적인 VBA 코드와 그 설명으로 넘어갑니다.

VBA를 사용하여 PDF를 병합하는 코드 설명

여기에서는 Adobe Acrobat을 사용하는 VBA 코드를 소개합니다. PDFtk를 사용하는 경우 유사한 단계를 따르지만, 명령줄 작업이 필요합니다.

Adobe Acrobat을 사용하는 VBA 코드

먼저, VBA를 사용하여 PDF를 병합하는 코드입니다.

Sub MergePDFs_Acrobat()
    Dim AcroApp As Object
    Dim PartDocs As Object
    Dim CombinedDoc As Object
    Dim Pdf1 As String
    Dim Pdf2 As String
    Dim OutputPdf As String

    ' Set the path for the PDF files
    Pdf1 = "C:\path\to\your\first\pdf.pdf"
    Pdf2 = "C:\path\to\your\second\pdf.pdf"
    OutputPdf = "C:\path\to\your\output\merged.pdf"

    ' Create the Adobe Acrobat object
    Set AcroApp = CreateObject("AcroExch.App")
    Set PartDocs = CreateObject("AcroExch.PDDoc")

    ' Open the first PDF
    If PartDocs.Open(Pdf1) Then
        ' Create a new PDF document with the first PDF
        Set CombinedDoc = PartDocs

        ' Open the second PDF
        If PartDocs.Open(Pdf2) Then
            ' Merge the second PDF
            If CombinedDoc.InsertPages(CombinedDoc.GetNumPages() - 1, PartDocs, 0, PartDocs.GetNumPages(), 0) Then
                ' Save the merged PDF
                If Not CombinedDoc.Save(1, OutputPdf) Then
                    MsgBox "Failed to save the merged PDF."
                End If
            Else
                MsgBox "Failed to insert pages."
            End If

            ' Close the second PDF
            PartDocs.Close
        Else
            MsgBox "Failed to open the second PDF."
        End If

        ' Close the first PDF
        CombinedDoc.Close
    Else
        MsgBox "Failed to open the first PDF."
    End If

    ' Exit Acrobat
    AcroApp.Exit
    Set AcroApp = Nothing
    Set PartDocs = Nothing
    Set CombinedDoc = Nothing
End Sub

코드 설명

  • Dim AcroApp As Object: Adobe Acrobat 응용 프로그램을 위한 객체를 만듭니다.
  • Dim PartDocs As Object: 개별 PDF 문서를 관리할 객체를 만듭니다.
  • Dim CombinedDoc As Object: 병합된 PDF 문서를 관리할 객체를 만듭니다.
  • Pdf1, Pdf2, OutputPdf: 병합할 PDF 파일과 출력 PDF 파일의 경로를 설정합니다.
  • Set AcroApp = CreateObject("AcroExch.App"): Adobe Acrobat 응용 프로그램의 인스턴스를 만듭니다.
  • Set PartDocs = CreateObject("AcroExch.PDDoc"): 개별 PDF 문서를 위한 인스턴스를 만듭니다.
  • PartDocs.Open(Pdf1), PartDocs.Open(Pdf2): PDF 파일을 엽니다.
  • CombinedDoc.InsertPages: 첫 번째 PDF에 두 번째 PDF를 삽입합니다.
  • CombinedDoc.Save: 병합된 PDF를 저장합니다.
  • AcroApp.Exit: Acrobat 응용 프로그램을 종료합니다.

PDFtk를 사용하는 VBA 코드

다음으로, PDFtk를 사용하는 VBA 코드입니다.

Sub MergePDFs_PDFtk()
    Dim Pdf1 As String
    Dim Pdf2 As String
    Dim OutputPdf As String
    Dim Command As String

    ' Set the path for the PDF files
    Pdf1 = "C:\path\to\your\first\pdf.pdf"
    Pdf2 = "C:\path\to\your\second\pdf.pdf"
    OutputPdf = "C:\path\to\your\output\merged.pdf"

    ' Create the PDFtk command
    Command = "pdftk " & Pdf1 & " " & Pdf2 & " cat output " & OutputPdf

    ' Run the shell command to merge the PDFs
    Shell Command, vbNormalFocus
End Sub

코드 설명

  • Pdf1, Pdf2, OutputPdf: 병합할 PDF 파일과 출력 PDF 파일의 경로를 설정합니다.
  • Command: PDFtk 명령을 만듭니다. pdftk 명령은 지정된 PDF 파일을 병합하고 출력 파일을 생성합니다.
  • Shell Command, vbNormalFocus: PDF 병합을 위해 쉘 명령을 실행합니다.

이제 Excel VBA를 사용하여 여러 PDF를 병합하는 방법을 이해했습니다. 다음으로는 매크로를 실행하는 단계를 설명하겠습니다.

매크로 실행 단계

여기에서는 앞서 소개한 VBA 코드를 사용하여 Excel에서 매크로를 실행하여 PDF를 병합하는 단계를 설명합니다.

매크로 설정 및 실행

  1. Excel 파일 열기
    병합 프로세스를 실행하려는 Excel 파일을 엽니다.
  2. VBA 편집기 열기
    Alt + F11을 눌러 VBA 편집기를 엽니다.
  3. 새 모듈 삽입
    메뉴에서 “삽입”을 선택하고 “모듈”을 선택하여 새 모듈을 삽입합니다.
  4. 코드 붙여넣기
    새 모듈에 다음 코드를 붙여넣습니다. 여기서는 Adobe Acrobat을 사용하는 예제를 보여줍니다. PDFtk를 사용하는 경우 이전에 소개한 PDFtk 코드를 사용하십시오.
Sub MergePDFs_Acrobat()
    Dim AcroApp As Object
    Dim PartDocs As Object
    Dim CombinedDoc As Object
    Dim Pdf1 As String
    Dim Pdf2 As String
    Dim OutputPdf As String

    ' Set the path for the PDF files
    Pdf1 = "C:\path\to\your\first\pdf.pdf"
    Pdf2 = "C:\path\to\your\second\pdf.pdf"
    OutputPdf = "C:\path\to\your\output\merged.pdf"

    ' Create the Adobe Acrobat object
    Set AcroApp = CreateObject("AcroExch.App")
    Set PartDocs = CreateObject("AcroExch.PDDoc")

    ' Open the first PDF
    If PartDocs.Open(Pdf1) Then
        ' Create a new PDF document with the first PDF
        Set CombinedDoc = PartDocs

        ' Open the second PDF
        If PartDocs.Open(Pdf2) Then
            ' Merge the second PDF
            If CombinedDoc.InsertPages(CombinedDoc.GetNumPages() - 1, PartDocs, 0, PartDocs.GetNumPages(), 0) Then
                ' Save the merged PDF
                If Not CombinedDoc.Save(1, OutputPdf) Then
                    MsgBox "Failed to save the merged PDF."
                End If
            Else
                MsgBox "Failed to insert pages."
            End If

            ' Close the second PDF
            PartDocs.Close
        Else
            MsgBox "Failed to open the second PDF."
        End If

        ' Close the first PDF
        CombinedDoc.Close
    Else
        MsgBox "Failed to open the first PDF."
    End If

    ' Exit Acrobat
    AcroApp.Exit
    Set AcroApp = Nothing
    Set PartDocs = Nothing
    Set CombinedDoc = Nothing
End Sub
  1. 매크로 실행
  • VBA 편집기를 닫고 Excel로 돌아갑니다.
  • Alt + F8을 눌러 “매크로” 대화 상자를 엽니다.
  • “MergePDFs_Acrobat”을 선택하고 “실행”을 클릭합니다.

6.PDF 병합 결과 확인
지정된 출력 파일 경로(C:\path\to\your\output\merged.pdf 등)에 병합된 PDF 파일이 생성되었는지 확인합니다.

PDFtk 사용

  1. VBA 코드 붙여넣기
    PDFtk를 사용하는 경우, 다음 코드를 모듈에 붙여넣습니다.
Sub MergePDFs_PDFtk()
    Dim Pdf1 As String
    Dim Pdf2 As String
    Dim OutputPdf As String
    Dim Command As String

    ' Set the path for the PDF files
    Pdf1 = "C:\path\to\your\first\pdf.pdf"
    Pdf2 = "C:\path\to\your\second\pdf.pdf"
    OutputPdf = "C:\path\to\your\output\merged.pdf"

    ' Create the PDFtk command
    Command = "pdftk " & Pdf1 & " " & Pdf2 & " cat output " & OutputPdf

    ' Run the shell command to merge the PDFs
    Shell Command, vbNormalFocus
End Sub
  1. 매크로 실행
    PDFtk 코드를 사용하여 앞서 설명한 동일한 단계를 따라 매크로를 실행합니다.

이 단계들을 통해 Excel VBA를 사용하여 여러 PDF 파일을 병합할 수 있습니다. 다음으로는 일반적인 문제와 그 해결 방법에 대해 설명하겠습니다.

문제 해결

Excel VBA를 사용하여 PDF를 병합할 때 일반적인 문제와 해결 방법을 소개합니다.

1. Adobe Acrobat이 설치되지 않음

문제: Adobe Acrobat이 설치되지 않은 경우 CreateObject("AcroExch.App")에서 오류가 발생합니다.
해결 방법: Adobe Acrobat Pro를 설치하십시오. 이 작업은 무료 Adobe Reader로 수행할 수 없습니다.

2. 잘못된 파일 경로

문제: 지정된 PDF 파일 경로가 잘못된 경우 PartDocs.Open(Pdf1) 또는 PartDocs.Open(Pdf2)에서 오류가 발생합니다.
해결 방법: 경로가 올바른지 확인하고 지정된 경로에 파일이 존재하는지 확인하십시오.

3. PDF 병합 실패

문제: CombinedDoc.InsertPages가 페이지 삽입에 실패할 수 있습니다.
해결 방법: 병합할 PDF가 손상되지 않았는지 확인하십시오. PDF에 페이지 수가 매우 많은 경우 메모리 문제가 발생할 수 있습니다. 더 작은 PDF 파일을 병합해 보십시오.

4. PDF 저장 실패

문제: CombinedDoc.Save로 병합된 PDF를 저장하는 데 실패할 수 있습니다.
해결 방법: 저장 대상 폴더에 쓰기 권한이 있는지 확인하십시오. 또한 동일한 이름의 파일이 존재하지 않는지 확인하고 다른 이름으로 저장해 보십시오.

5. PDFtk 명령이 실행되지 않음

문제: PDFtk 명령이 올바르게 실행되지 않으면 Shell Command, vbNormalFocus에서 오류가 발생합니다.
해결 방법: PDFtk가 올바르게 설치되어 시스템 PATH에 추가되었는지 확인하십시오. 또한 명령 프롬프트에서 PDFtk 명령을 직접 실행하여 제대로 작동하는지 확인하십시오.

6. 잘못된 참조 설정

문제: Adobe Acrobat 개체 라이브러리가 참조로 설정되지 않은 경우 CreateObject("AcroExch.App")에서 오류가 발생합니다.
해결 방법: VBA 편집기에서 “도구” 메뉴에서 “참조”를 선택하고 “Adobe Acrobat xx.x Type Library”를 선택한 후 “확인”을 클릭하십시오.

7. 기타 VBA 오류

문제: 기타 VBA 오류의 경우 디버그 모드로 들어가 원인을 식별하십시오.
해결 방법: VBA 편집기에서 F8을 눌러 코드를 단계별로 실행하여 오류가 발생하는 줄을 식별하십시오. 오류 메시지를 조사하여 적절한 해결 방법을 찾으십시오.

이 문제 해결 가이드를 참조하여 문제를 해결하고 원활하게 PDF를 병합하십시오. 다음으로는 논의한 단계를 요약하겠습니다.

결론

Excel VBA를 사용하여 여러 PDF를 병합하는 방법을 설명했습니다. 이러한 단계를 따르면 수동 PDF 병합 작업을 자동화하여 효율성을 높일 수 있습니다. 다음은 주요 포인트입니다:

  • 필요한 도구 준비: Adobe Acrobat 또는 PDFtk 설치 및 설정.
  • VBA 코드 작성: Adobe Acrobat 또는 PDFtk를 사용하여 PDF를 병합하는 VBA 코드 작성.
  • 매크로 실행: Excel에서 VBA 매크로를 실행하여 PDF를 병합.
  • 문제 해결: 일반적인 문제를 해결하고 원활한 PDF 병합 보장.

이 단계를 따르면 여러 PDF 파일을 쉽게 병합하고 작업 효율성을 크게 향상시킬 수 있습니다. VBA 자동화를 활용하여 일상적인 작업을 간소화하십시오.

목차