[구글 스프레드시트 기초] 매크로 절대 참조, 상대 참조

반응형

[구글 스프레드시트 기초] 매크로 절대 참조, 상대 참조

 

구글 스프레드시트에서 매크로 기록시 매크로 기록 창을 보면 두개의 참조 선택항목이 보입니다. 절대 참조와 상대 참조입니다.

구글 스프레드시트 매크로

 

 

스프레드시트에서의 셀 참조 방식 일반

  • 상대 셀 참조 
    보통 셀 표시힐 때 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 스프레드시트에서 작업 자동화하기

★다른 글 참조

반응형