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

목차

    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

     

     

    3. 매크로 버튼에 적용하기

    이제 매크로를 실행하기 위해 상단의 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문에 대해서 알아보겠습니다.