[구글 스프레드시트 기초] 매크로 절대 참조, 상대 참조
[구글 스프레드시트 기초] 매크로 절대 참조, 상대 참조
구글 스프레드시트에서 매크로 기록시 매크로 기록 창을 보면 두개의 참조 선택항목이 보입니다. 절대 참조
와 상대 참조
입니다.
스프레드시트에서의 셀 참조 방식 일반
- 상대 셀 참조
보통 셀 표시힐 때A1
과 같이 표시되는데 이러한 셀 표시는 복사 등 기능 수행시 열 또는 행에 따라 상대적으로 셀 위치가 변동됩니다. - 절대 셀 참조
참조하는 셀을 고정하려면 행과 열 표시 압에$
기호를 삽입하여$A$1
로 표시합니다. - 혼합 셀 참조
고정하려는 열 또는 행 중 어느 하나 앞에$
기호를 삽입하여$A1
과 같이 표시합니다.
구글 스프레드시트에서 매크로를 기록할 때에 절대 참조
또는 상대 참조
선택에 따라 기록된 매크로의 수행 영역이 달라집니다. 위에서 언급한 셀 참조 개념과 비슷한 개념이지만 표시되는 방식이 다릅니다.
매크로 기록 예시
아래와 같은 간단한 스프레드시트 문서로 절대 참조와 상대참조의 두 개의 매크로를 작성해 보겠습니다.
이전 글 참조 : [구글 스프레드시트 기초] 구글 스프레드시트 자동화 매크로 만들기
우측 하단의 매크로 기록 창만 표시해보겠습니다.
문서 메뉴>도구>매크로>매크로 기록
을 선택하면 위 그림의 매크로 기록 화면이 수행됩니다.- 절대 참조 사용 매크로를 적성하고 다음에 상대 참조 사용 매크로를 작성했습니다.
- 두개의 매크로는 참조 방식만 다르고 동일하게
상단의 붉은 영역(B3:B4)
을두행 옆(D3:D4)
에 복사 붙혀넣기하는 것입니다.
문서 메뉴>도구>매크로
를 선택해서 우측에 나오는 메뉴에 보면 하단에 두개의 매크로명이 나옵니다. macroabs
는 절대 참조 매크로이고 macrorel
은 상대 참조 매크로입니다.
메뉴 부분만 별도로 표시하겠습니다.
본 문서의 붉은 영역 하단 검은 영역 첫번째 셀(B7)을 선택하고 두개의 매크로를 각각 실행해 보겠습니다.
절대 참조 매크로 실행(macroabs)
녹색 테두리 부분 같이 선택된 셀 위치와 상관 없이 상단의붉은 영역(B3:B4)
이 두행 옆(D3:D4)
에 복사됐습니다.
상대 참조 매크로 실행(macrorel)
녹색 테두리 부분 같이 선택된 셀이 위치한 검은 영역(B7:B8)
이 같은 열 두행 옆(D7:D8)
에 복사됐습니다. 선택된 셀 영역에서 상대적으로 매크로가 실행된 것입니다.
작성된 매크로 함수
문서메뉴>도구>스크립트 편집기를 선택하면 작성된 두개 매크로 명칭의 자바스크립트 함수가보입니다. 이전 매크로 작성 글에서도 언급했듯이 MS 엑셀은 VBA로 작성되지만 구글 스프레드시트는 자바스크립트로 작성됩니다.
위의 이미지지의 내용을 밑의 글 상자에 텍스트로 표시하겠습니다.
function moveabs() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange(‘D3’).activate();
spreadsheet.getRange(‘B3:B4’).copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
};
function moverel() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getCurrentCell().offset(0, 2).activate();
spreadsheet.getCurrentCell().offset(0, -2, 2, 1).copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
};
절대 참조로 작성된 매크로
(macroabs)는 노란색 부분에서 보면 셀 참조가D3
B3:B4
로 표시돼 있습니다.상대참조로 작성된 매크로
(macrorel)는 회색 부분과 같이 셀 참조가 offset(0, 2) offset(0, -2)로 표시돼 있습니다.
이상에서 본 것 같이 ‘절대 참조’ 매크로는 지정된 정확한 영역에서 실행되고 ‘상대 참조’ 매크로는 선택된 셀 부근 영역에서 실행됨을 알 수있습니다.
참고 문서 Google 스프레드시트에서 작업 자동화하기
★다른 글 참조