none
VBA를 이용하여 엑셀 데이터 워드로 옮기기 Visual Basic 2013 코드 호환 RRS feed

  • 질문

  • VBA를 이용하여 엑셀에서 워드로 각각의 파일을 선택하여 데이터를 가져오고 넣는 자동화 매크로를 작성하였습니다.

    문제는 이것을 Visual Basic 2013버전에서 윈도우 프로그램으로 제작하려고 하였으나

    VBA의 경우 Visual baisc 6.0버전 기반으로 제작되어 언어적인 호환이 안되더군요. visual basic 2010이후 버전부터는 완전 다른 언어로 보더라구요.

    이러한 문제점을 해결방안을 부탁드립니다.

    아래는 제가 작성한 VBA 매크로 코드입니다.

    이코드를 Visual Basic 2013버전에 맞게금 변경하는데 현제 가져오는 파일선택 넣는 파일선택 구문까지는 구현하였으나 가져오고자하는 위치의 엑셀파일 데이터를 워드에 넣는 부분을 도저히 모르겟습니다.

    .Bookmarks("Front_Receipt_Day").Range.Text = ActiveSheet.Range("B2") 이부분말이죠..

    현재 AxtiveSheet.라고 되어있는데 실제 코드에서는 엑티브시트아니구 다른걸로 구현되었습니다. 

    이부분을 visual basic 2013버전에서는 어떻게 변형해야하나요?

    Option Explicit

    Sub 워드표에쓰기()
     ''''''''''''''''''''''변수 선언''''''''''''''''''
        Dim 워드 As Object
        Dim 파일명 As Object
        Dim 파일경로 As String
     
        On Error Resume Next
     
        Set 워드 = CreateObject("Word.Application")
        '워드 파일 경로 떼어옴 엑셀은 FileFilter:="Excel WorkBooks 부분만 수정하면 됨
        파일경로 = Application.GetOpenFilename(FileFilter:="Word Documents, *.docx", _
                Title:="Open a File", MultiSelect:=False)
       
        With 워드
            .Visible = True
            .Activate
        End With
     
        Set 파일명 = 워드.Documents.Open(파일경로)    '견적서 파일열기
     
     ''''''''''''''''''''''엑셀 데이터 워드로 이동 처리 부분'''''''''''''''''''''
        With 파일명
         '//엑셀 시트 내부의 값을 가져와서 워드 북마크 영역에 값을 집어 넣는다
         '//주의 : 워드의 북마크 명칭이 동일해야만 값이 들어 갈 수 있습니다.
            .Bookmarks("Front_Report_NO").Range.Text = ActiveSheet.Range("B1")
            .Bookmarks("Front_Receipt_Day").Range.Text = ActiveSheet.Range("B2")
            .Bookmarks("Front_Test_Day").Range.Text = ActiveSheet.Range("B3")
            .Bookmarks("Front_Applicant").Range.Text = ActiveSheet.Range("B4")
            .Bookmarks("Front_C_Name").Range.Text = ActiveSheet.Range("B5")
     
        End With
     
        '파일명.Save
        '파일명.Close
     
        Set 파일명 = Nothing
        워드.Quit
        Set 워드 = Nothing
    End Sub

    2016년 6월 21일 화요일 오전 12:27