Microsoft로 로그인
로그인하거나 계정을 만듭니다.
안녕하세요.
다른 계정을 선택합니다.
계정이 여러 개 있음
로그인할 계정을 선택합니다.

요약

Office 제품을 Visual Basic 경우 코드의 일부를 서버의 프로세스 공간 내에서 실행할 수 있는 Microsoft Visual Basic for Applications(VBA) 모듈로 이동하는 것이 유용할 수 있습니다. 이렇게 하여 애플리케이션에 대한 전체 실행 속도를 높일 수 있으며, 서버에서 호출이 진행 중일 때만 작업을 수행하면 문제를 해결할 수 있습니다.

이 문서에서는 실행 중인 애플리케이션에 VBA 모듈을 동적으로 Office Visual Basic 매크로를 호출하여 워크시트의 프로세스 내 채우는 방법을 보여 주었다.

추가 정보

다음 샘플에서는 코드 모듈을 Microsoft Excel 보여 주지만 동일한 VBA 엔진을 통합하기 때문에 Word 및 PowerPoint 동일한 기술을 사용할 수 있습니다.

샘플은 코드 모듈에 삽입된 정적 텍스트 파일을 Excel. 애플리케이션에 컴파일할 수 있는 리소스 파일로 코드를 이동한 다음 런타일 때 필요할 때 임시 파일로 추출하는 것이 좋습니다. 이렇게 하여 프로젝트를 다시 배포하기 위해 더 쉽게 관리할 수 있습니다.

XP를 Microsoft Office 시작하면 VBA를 조작하기 위해 작성된 Automation 코드가 작동하기 전에 사용자가 VBA 개체 모델에 대한 액세스 권한을 부여해야 합니다. 이 기능은 XP를 사용하여 새로운 Office 기능입니다. 자세한 내용은 다음 기술 자료 문서를 참조하세요.

282830 XP VBA Office 프로그래밍 Project 거부됩니다.

샘플을 빌드하는 단계

  1. 먼저 KbTest.bas라는 새 텍스트 파일(확장명 없이)을 .txt 합니다. 런타입에 삽입할 코드 Excel 모듈입니다.

  2. 텍스트 파일에서 다음 코드 줄을 추가합니다.

       Attribute VB_Name = "KbTest"

    ' Your Microsoft Visual Basic for Applications macro function takes 1
    ' parameter, the sheet object that you are going to fill.

    Public Sub DoKbTest(oSheetToFill As Object)
    Dim i As Integer, j As Integer
    Dim sMsg As String
    For i = 1 To 100
    For j = 1 To 10

    sMsg = "Cell(" & Str(i) & "," & Str(j) & ")"
    oSheetToFill.Cells(i, j).Value = sMsg
    Next j
    Next i
    End Sub
  3. 텍스트 파일을 C:\KbTest.bas 디렉터리에 저장한 다음 파일을 닫습니다.

  4. 시작 Visual Basic 표준 프로젝트를 만들 수 있습니다. Form1은 기본적으로 만들어집니다.

  5. Project 메뉴 에서References를 클릭한 다음 적절한 형식 라이브러리 버전을 선택하여 초기 바인딩을 사용하여 Excel.

    예를 들어 다음 중 하나를 선택합니다.

    • Microsoft Office Excel 2007의 경우 12.0 라이브러리를 선택합니다.

    • Microsoft Office Excel 2003의 경우 11.0 라이브러리를 선택합니다.

    • Microsoft Excel 2002의 경우 10.0 라이브러리를 선택합니다.

    • 2000 Microsoft Excel 경우 9.0 라이브러리를 선택합니다.

    • Microsoft Excel 97의 경우 8.0 라이브러리를 선택합니다.

  6. Form1에 단추를 추가하고 단추의 클릭 이벤트에 대한 처리기에서 다음 코드를 니다.

       Private Sub Command1_Click()
    Dim oXL As Excel.Application
    Dim oBook As Excel.Workbook
    Dim oSheet As Excel.Worksheet
    Dim i As Integer, j As Integer
    Dim sMsg As String

    ' Create a new instance of Excel and make it visible.
    Set oXL = CreateObject("Excel.Application")
    oXL.Visible = True

    ' Add a new workbook and set a reference to Sheet1.
    Set oBook = oXL.Workbooks.Add
    Set oSheet = oBook.Sheets(1)

    ' Demo standard Automation from out-of-process,
    ' this routine simply fills in values of cells.
    sMsg = "Fill the sheet from out-of-process"
    MsgBox sMsg, vbInformation Or vbMsgBoxSetForeground

    For i = 1 To 100
    For j = 1 To 10
    sMsg = "Cell(" & Str(i) & "," & Str(j) & ")"
    oSheet.Cells(i, j).Value = sMsg
    Next j
    Next i

    ' You're done with the first test, now switch sheets
    ' and run the same routine via an inserted Microsoft Visual Basic
    ' for Applications macro.
    MsgBox "Done.", vbMsgBoxSetForeground
    Set oSheet = oBook.Sheets.Add
    oSheet.Activate

    sMsg = "Fill the sheet from in-process"
    MsgBox sMsg, vbInformation Or vbMsgBoxSetForeground

    ' The Import method lets you add modules to VBA at
    ' run time. Change the file path to match the location
    ' of the text file you created in step 3.
    oXL.VBE.ActiveVBProject.VBComponents.Import "C:\KbTest.bas"

    ' Now run the macro, passing oSheet as the first parameter
    oXL.Run "DoKbTest", oSheet

    ' You're done with the second test
    MsgBox "Done.", vbMsgBoxSetForeground

    ' Turn instance of Excel over to end user and release
    ' any outstanding object references.
    oXL.UserControl = True
    Set oSheet = Nothing
    Set oBook = Nothing
    Set oXL = Nothing

    End Sub
  7. Excel 2002 및 이후 버전의 Excel VBA 프로젝트에 대한 액세스를 설정해야 합니다. 이렇게 하려면 다음 방법 중 하나를 사용하세요.

    • Excel 2007에서 Microsoft Office 단추를 클릭한 다음 옵션 Excel 클릭합니다. 신뢰 센터를 클릭한 다음, 신뢰 센터를 설정. 매크로 설정 클릭하고 VBA 프로젝트 개체 모델에 대한 신뢰 액세스 확인란을 선택한 다음 확인을 두 번 클릭합니다.

    • 2003 Excel 이전 버전의 Excel 도구 메뉴에서 매크로를 지적한 다음 보안을 클릭합니다. 보안 대화 상자에서 신뢰할 수 있는 원본 탭을 클릭한 다음, 신뢰 액세스 확인란을 Visual Basic Project 클릭합니다.

  8. 프로젝트 Visual Basic 실행합니다.

참조

다음 주소에서 Office Visual Basic 자세한 내용은 Office 개발 지원 사이트를 참조하세요.

http://support.microsoft.com/ofd

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.

이 정보가 유용한가요?

언어 품질에 얼마나 만족하시나요?
사용 경험에 어떠한 영향을 주었나요?
제출을 누르면 피드백이 Microsoft 제품과 서비스를 개선하는 데 사용됩니다. IT 관리자는 이 데이터를 수집할 수 있습니다. 개인정보처리방침

의견 주셔서 감사합니다!

×