본문 바로가기
One point lesson & IT리뷰

엑셀 매크로 저장, 열기 방법

by MinervaG 2020. 3. 22.

안녕하세요. 공돌이 입니다.

엑셀을 사용하다 보면 손쉽게 할 수 있는 방법은 없을지, 자동화 할 수 없을지 고민을 많이 하게 됩니다. 매크로 라는 기능을 활용하면 생각보다 쉽게 많은 작업을 할 수 있습니다. 다만 프로그래밍 이라는 어려움이 따릅니다. 하지만 엑셀에서는 친절하게 유저가 움직인 움직임을 그대로 기록하여 매크로 프로그래밍 코드로 변환을 해 줍니다. 이 기능을 활용 한다면, 필요한 움직임을 실행하여 기록한 후 해당 코드를 수정할 수 가 있습니다. 엑셀 버전 마다 매크로 기록 버튼의 위치가 다를 수 있습니다 보통 보기-매크로 기록 을 누른 후 원하는 작업을 합니다. 모든 작업이 완료가 되었다면 이어서 매크로 기록 중지를 눌러 종료 합니다. 이후 매크로 보기를 누르면, 해당 작업의 프로그래밍 코드를 볼 수 있습니다. 해당 코드를 참조하여 원하는 작업을 수정할 수 있습니다.

 

다음으로는 매크로를 이용하여 해당 파일의 이름을 바꾸어 저장하는 메크로 코드를 공유 하고자 합니다. 위에서 말씀 드린 방법으로도 파일 저장후 매크로 기록 중지를 하여 코드를 보면 매크로 코드를 볼 수 있습니다. 또는 기존 매크로에 아래 방법을 통해 코드를 삽입하셔도 괜찮습니다.

 

1. 먼저 file_name 이라는 임시 저장 공간을 만들어 사용자가 원하는 파일명을 받아 드립니다. 임시 저장 공간이기 때문에 이름은 중요하지 않습니다. 

2. inputbox 함수를 이용하여 실제 저장할 파일의 이름을 사용자로부터 입력 받습니다.

3. strpath는 현재 이 매크로 존재하고 있는 경로를 저장하는 것입니다. 나중에 이를 사용하여 save하는 저장하는 경로로 사용하기 때문에 잘 기록 하셔야 합니다.

4. 마지막으로 activeworkbook.saveas를 이용하여 저장을 진행하게 됩니다. Activeworkbook는 현재 유저가 열어둔 엑셀을 뜻합니다.

5. & file_name &이 아까 사용자로부터 받아온 이름이고 "saving"이라고 된 곳은 항상 저장되는 이름에 추가하도록 하는 명령어가 됩니다.

6. fileformat xlx로 하고 싶어서 아래와 같이 설정 하였습니다. 유저가 원하는 형태의 포멧을 적으면 됩니다.

 

실제로 아래 코드를 쉽게 이해가 될 것으로 생각합니다. F8 버튼을 누르면 매크로가 한 줄 한 줄 실행이 됩니다. 작성한 매크로가 어떻게 동작하는지 확인 해 보면 도움이 되겠습니다..

 

Dim strpath As String

Dim file_name As String

 

file_name = InputBox("저장 하시겠습니까?" & Chr(10) & Chr(10) & "다른이름으로 저장")

strpath = ThisWorkbook.Path & "\"

 

If file_name <> "" Then

ActiveWorkbook.SaveAs Filename:=strpath & file_name & "saving", FileFormat:= _

        xlOpenXMLWorkbook, CreateBackup:=False

 

MsgBox "저장 완료"

 

 

파일을 저장했으니, 이번에는 매크로를 이용한 파일 열기 방법을 보겠습니다. 여기서 공유하는 방식은 매크로 파일이 들어있는 폴더 안에 있는 특정 파일을 불러오는 방법입니다. 만약 특정 위치의 파일을 불러 오려면 또 다른 방법이 필요하기 때문에 이후에 소개 하도록 하겠습니다. 급하신 분은 YouTube에 엑셀 저장으로 검색하면 자료가 많이 있습니다.

 

1. strpath를 이용하여 현재 매크로가 들어있는 경로를 먼저 임시 저장하여 보관 합니다.

2. msgbox를 이용하여 사용자가 신규 파일 오픈을 요구할때 파일 오픈이 진행될 수 있도록 팝업을 하여 확인 요구를 받습니다.

3. open_macro.xlsm라는 특정 파일을 열고 싶기 때문에 Workbooks.Open File name에 정확히 어떤 파일을 열지, 그 이름을 써 주셔야 합니다.

4. 이때 strpath &로 해당 경로가 입력될 것이고, "open_macro.xlsm" 에서 " " 사이에 있는 이름을 가지는 파일이 열리게 됩니다.

 

Dim strpath As String

Dim file_name As String

 

strpath = ThisWorkbook.Path & "\"

 

If MsgBox("신규 제작 합니까?", vbOKCancel, "제작 확인") = vbOK Then

MsgBox "오픈 합니다"

Workbooks.Open Filename:= _

        strpath & "open_macro.xlsm"

Windows("저장_open_macro.xlsm").Activate

 

End If

 

반응형

댓글


TOP