엑셀 매크로 기초 사용법-버튼연결, 데이터추가, 삭제 등

2020. 10. 2. 14:30

엑셀은 여러가지 목적으로 사용할 수 있는 좋은 툴이다. 파이썬이 최근에 많이 각광받고 있지만, 데이터를 프레젠테이션하고 직접 수정하기에 좋다. 엑셀에도 비주얼 베이직 언어로 매크로를 코딩할 수 있다. 앞으로는 엑셀에서 파이썬을 사용할 수 있게 될 수 있다고 하니 기대가 된다. 엑셀 매크로를 이용하면 재미있고 편리한 일들을 해 볼 수 있다. 오늘은 엑셀 매크로 기초 사용법-버튼연결, 데이터추가, 삭제 등에 대해서 알아보도록 하겠다.


엑셀_매크로



참고로 아래 내용은 엑셀 2010버전을 기준으로 했다. 하지만, 다른 버전도 차이는 없다. 다만, 메뉴 위치가 조금 다를 수는 있다.


매크로 설정 및 시작하기

엑셀에서 매크로를 사용하기 위해서는 엑셀 상단 탭에 '개발도구'가 있어야 한다. 하지만 엑셀을 기본설치하면 이 개발도구가 활성화되어 있지 않다. 개발도구를 활성화하기 위해서 [파일]-[옵션]-[리본 사용자 지정]으로 간다. 우측에 리본 메뉴 사용자 지정에 보면 '개발도구'의 체크박스가 해제되어 있는 것을 알 수 있다. 이 체크박스를 클릭하여, '개발도구'를 활성화한다.

엑셀_개발도구



이에 개발자도구 탭에 있는 Visual Basic아이콘을 클릭한다. 이제 매크로를 작성할 수 있는 'Microsoft Visual Basic for Applications' 화면에 들어온다. 여기서 좌측 상단의 'Microsoft Excel개체'에 마우스 커서를 놓고 우클릭한다. 나오는 팝업 메뉴에서 [삽입]-[모듈]을 클릭하면, 코드를 작성할 수 있는 창이 우측에 생긴다.

매크로_모듈추가




매크로 작성하기

매크로를 작성하기 위해서 우선 함수를 선언해야 한다. 함수는 아래와 같이 Sub~End Sub로 작성한다. 함수명은 특이하게 한글도 가능하다.

Sub 안녕하세요()


End Sub


이제 함수 안에 원하는 기능을 넣으면 된다. 여기서부터는 엑셀 매크로에서 사용할 수 있는 함수를 알면 도움이 된다. 엑셀의 워크시트에 접근하기 위해서는 Worksheets()라는 함수를 쓴다. 괄호 안에 사용하고자 하는 시트명을 넣으면 된다. Range라는 함수를 이용하면, 특정 영역을 선택할 수 있다. Cells라는 함수는 특정 셀에 접근할 수 있다. Sheet1워크시트에 A1에 1이라는 값을 입력하는 함수를 만들고 싶다면, 아래와 같이 하면 된다.

Sub 입력1()

Worksheets("Sheet1").Cells(1,1)=1

End Sub


특정 영역에 1을 입력하고 싶다면, 아래와 같이 한다.

Sub 범위1()

Worksheets("Sheet1").Range("A1:A10")=1

End Sub


이제 매크로를 실행하기 위해 상단의 X버튼을 클릭하여, 비주얼 베이직 화면을 닫는다. 엑셀에서 [개발도구]-[삽입-[단추]를 클릭한다. 그리고 원하는 곳에 단추를 그려주면, 매크로 지정 창이 뜬다. 여기서 아까 만든 매크로 중 하나를 선택한다. 여기서는 입력1을 선택했다. 그러면 삽입한 단추가 선택된 상태가 된다. 단추를 실행하기 위해 빈워크시트를 클릭한다. 그 다음 단추를 클릭하면, 버튼이 눌리고 매크로가 실행된다.

단추추가




단추 이름을 바꾸기 위해서 단추를 마우스 우클릭한 후 [텍스트편집]을 선택한다. 이제 원하는 이름으로 바꿔주면 된다.


입력되어 있는 값을 지우기 위해서는 ClearContents라는 속성을 호출하면 된다. Range나 Cells 함수로 영역을 선택한 후에 호출하면 된다.

Sub 입력_지우기()

Worksheets("Sheet1").Cells(1,1).ClearContents

End Sub


특정 영역에 1을 입력하고 싶다면, 아래와 같이 한다.

Sub 범위_지우기()

Worksheets("Sheet1").Range("A1:A10").ClearContents

End Sub



위에서와 동일하게 버튼을 삽입하고, 매크로를 지정하면 동작하는 것을 확인할 수 있다.



엑셀 매크로를 이용하면 재미있는 작업을 많이 해 볼 수 있다. 다음 포스팅에는 그 기본이 되는 if문과 for문에 대해서 알아보도록 하겠다.

댓글()