본문 바로가기
데이터 다루기/스프레드시트

엑셀 스프레드시트에서 매크로 사용하기

by GeekCode 2022. 5. 6.
반응형

예전엔 엑셀을 사용했지만 생각보다 스프레드시트를 사용하는 일이 많아지고 있습니다.

전 군시절 행정반에 있었는데 항상 빠르게 일을 해야하다보니 매크로를 사용하는 일이 많았어요. 

원래 일하면서 한번쯤은 맞고 그랬잖아요. 그쵸? ^_ㅠ

 

암튼.. 그렇게 매크로를 사용하다보니 이제 자주 사용하는 기능은 매크로를 써버릇했는데 언제부터인가 매크로가 이상한 해졌는데 바로

 

제가 선택 지정했던 셀만 적용 매크로 적용이 되는 상황이죠.

 

예를 들자면 제가 B2 칸을 노랑색으로 지정하는 걸 매크로 지정을 해놨는데 , C6을 선택하고 매크로를 실행하면 다시 B2에 실행이 되는거죠.. 예전엔 무조건 선택한 값에 지정이 됐거든요.

 

절대참조와 상대참조

암튼 다시 돌아와서 언제 부터인지 모르겠는데 스프레드시트를 사용하기 전부터 엑셀에는 절대참조와 상대참조라는 게 생겼어요.

 

1. 절대참조

최초선택했던 해당 좌표만을 적용시키는 것

2. 상대참조

제가 현재 선택한 좌표에 적용시키는 것

 

설정하는 방법은 별것 없어요.

 

매크로 설정방법

1. 매크로를 실행한다. 

2. 내가 절대참조를 할지 상대참조를 할지 확인

3. 필요한 작업실행 후 저장누르기

4. 매크로 이름과 (선택) 단축키로 사용할 숫자 설정하기

저는 정말 자주사용한다면 숫자를 사용하는 걸 추천해요. 왼손으로 다누르려면 귀찮은데 우측 키패드를 사용하면 좋아용

 

 

매크로 수정방법

만약 내가 원하지 않는 방법으로 저장됐는데 그게 복잡한 작업이라 다시 하기 귀찮다면 수정을 할 수도 있어요.

 

1. 매크로 관리 선택

2. 원하는 매크로 - 스크립트수정

3.  코드수정하기

갑작스럽게 이상한게 나와서 놀랐죠? 뜯어보면 별게 아닙니다.

매크로를 만들면 갯수에 맞게 추가로 생성이 되는데요.

 

예제에 보여드린 색상을 바꾸는 과정을 코드로 보여준 거에요.

먼저 2번과 3번의 차이를 볼게요

중간에 getRange가 3번에만 있고

마지막줄에  spreadsheet.getActiveRangeList().setBackground ( 이 부분 )이 다르죠?

 

- getRange : 특정 셀의 위치에만 적용시킬 때 사용한다.

- spreadsheet.getActiveRangeList().setBackground(이부분) 
: 괄호 부분에 원하는 컬러를 넣는다.

 

1번은 뭐냐면 2번처럼 특정셀의 위치를 적용했다가 제가 수정한거에요

// 가 앞에 있으면 그 부분은 주석처리되어 실행이 안되거든요. 테스트삼아 해본거에요.

spreadsheet.getActiveCell  이부분은 있든 없든 실행이 되더라구요
 
 
암튼 이걸 응용하려면 어떻게 할까요

응용하기

그냥 내가 선택한 영역에 진행한다면 바로 적용할 코드를 적으면 되는거고
내가 원하는 셀위치를 적용하려면 3번처럼 
spreadsheet.getRange('D3').activate();
이렇게 적용시켜주세용
 
그리고 그밑에 원하는 코드를 쓰면 되겠죠.

마무리

생각보다 스프레드 시트 매크로 만들기 재밌네요. 살짝?? 코딩하는 느낌을 비스므리하게 만들어요.

코딩을 배우고 싶으신분은 이걸로 시작하셔도될것같아요.

기본적으로 아래형태에 ". "을 사용하는 것처럼 미리 저장된 정보에 접근하는 방식을 많이 사용하거든요. 

spreadsheet.getRange('D3').activate();

 

참고로 저도 첨에 엑셀, 스프레드 시트를 만지다가 현재 ios 개발자까지 왔어요 ㅎㅎㅎ

 
생각보다 재밌었으니까 다음부터 스프레드 시트 이야기를 좀더 해봐도될것 같아요. 스샷일일히 하기가 귀찮긴 한데..ㅎㅎ
다음에 만나요
 
반응형