티스토리 뷰


엑셀 매크로를 활용하여 새로운 엑셀 파일을 생성하여, 특정 값을 넣은뒤 저장하는 자동화 과정에 대해서 알아보도록 하겠습니다. 



그럼 관련된 내용 진행하도록 할께요~ 

엑셀 파일을 생성하기 위해서는 Workbooks 개체를 이용하여 새로운 Workbook을 추가해야 합니다.


새로운 Workbook 추가는 Workbooks.add 함수를 호출하면 됩니다.

Workbooks.add 함수를 호출하면 생성된 Workbook이 ActiveWorkbook (활성화된 워크북)이 됩니다.


따라서 이 Woorkbook에 접근하기 위해서는 ActiveWorkbook 개체를 활용하면 됩니다.

Workbook을 저장하기 위해서는 ActiveWorkbook 개체의 SaveAs 함수를 이용할 수 있습니다.


마지막으로 Workbook을 닫기 위해서는 ActiveWorkbook.Close 함수를 호출하면 자동적으로 파일이 닫히게 됩니다.


위의 과정을 한번 살펴보면 아래와 같습니다. 


1) 엑셀 파일을 하나 생성한다 -> Workbooks.Add

2) 생성된 워크북에 값을 수정한다. -> ActiveWorkbook.Sheets("Sheet1").Range("A1") = "특정 값 입력"

3) 워크북 파일로 저장 -> ActiveWorkbook.SaveAs

4) 워크북 종료하기 -> ActiveWorkbook.Close


위의 과정을 거치게 되면 엑셀 파일이 자동으로 생성되고, 관련 값이 수정된 후 종료가 됩니다. 


이 부분을 코드로 만들면 아래와 같습니다. 


'워크북을 생성, 값 입력, 저장 및 닫기

Sub CreateWorkbookAndClose()


    '새로운 워크북을 생성한다.

    Workbooks.Add


    '현재 활성화 된 워크북의 첫번째 워크시트의 A1에 값을 넣는다.

    ActiveWorkbook.Sheets("Sheet1").Range("A1") = "값을 아무거나 넣습니다. "


   'c의 경로에 test라는 파일로 저장한다.

    ActiveWorkbook.SaveAs "c:\test.xls"


    ' 워크북을 닫는다.

    ActiveWorkbook.Close


End Sub


그럼 VBA를 활용하여 엑셀 파일 생성 및 저장 자동화 하는 방법에 알아 보았습니다.

위의 코드를 실행하면 C드라이브 Root 폴더에 아래와 같이 파일이 생성이 된답니다. 



그리고 파일을 열게 되면 아래와 같이 A1에 값을 아무거나 넣습니다. 라는 값이 입력되어 있습니다. 




참쉽죠!!


이 글이 도움이 되셨으면 아래의 하트를 눌러주세요.

저작자 표시
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
댓글
  • 프로필사진 비밀댓글입니다 2016.01.22 11:24
  • 프로필사진 박효국 질문을 올렸는데..
    연락처가 포함되어 비밀글로 했더니 내용이 보이지를 않네요 ㅠㅠ

    연락처를 빼고 다시한번 써 봅니다
    *************************************
    csv 파일을 처리하는 과정에서 엑셀로 처리할 수 없는 문제가 발생하여 애로를 겪고 있습니다
    엑셀에서 csv 저장을 하면 x, y matrix 의 구조로 빈칸도 모두 ' , ' 로 저장이 되기 때문에 기존 파일과 구조가 맞지않아 다른 프로그램에서 자동으로 활용할 수 없는 일이 생기고 있습니다
    따라서 비 매트릭스 구조의 a.csv 파일(헤더 내용이며 항상 동일합니다)을 새로만들어진 데이터 파일 b.csv 와 합쳐서 c.csv 파일을 만들면 됩니다
    옛적 DOS 에서는 copy a.csv+b1.csv c1.csv 라고 하면 해결이 되었는데..
    엑셀 매크로로 만들어진 b1,b2,b3,.. 의 csv 파일을 동일한 a.csv 파일과 붙여서 다른 폴더에 c1.csv c2.csv .. 로 저장하는 매크로를 만들 수 있을까요?
    help에서 copyfile 또는 file copy 라는 매크로 함수를 보았지만.. 지식이 딸려 사용을 못하겠습니다
    혹 방법을 아시면 조언을 부탁 드립니다
    2016.01.27 08:57 신고
댓글쓰기 폼