Google Workspace의 맞춤 메뉴

스크립트를 클릭하면 Apps Script 함수를 실행하는 사용자 인터페이스 요소를 추가하여 특정 Google 제품을 확장할 수 있습니다. 가장 일반적인 예는 Google Docs, Sheets, Slides, Forms의 맞춤 메뉴 항목에서 스크립트를 실행하는 것이지만 Google Sheets에서 이미지와 그림을 클릭하여 스크립트 함수를 트리거할 수도 있습니다.

Google Docs, Sheets, Slides, Forms의 맞춤 메뉴

Apps Script는 Google Docs, Sheets, Slides, Forms에서 각 메뉴 항목을 스크립트의 함수에 연결하는 새로운 메뉴를 추가할 수 있습니다. Google Forms에서 맞춤 메뉴는 양식을 열어서 수정하는 편집자에게만 표시되며 양식을 열기 위해 여는 사용자에게는 표시되지 않습니다.

스크립트는 문서, 스프레드시트, 양식에 결합된 경우에만 메뉴를 만들 수 있습니다. 사용자가 파일을 열 때 메뉴를 표시하려면 onOpen() 함수 내에 메뉴 코드를 작성합니다.

아래 예는 한 항목이 포함된 메뉴, 비주얼 구분 기호, 다른 항목이 포함된 하위 메뉴가 추가된 방법을 보여줍니다. (Google Sheets에서 새 버전을 사용하지 않는 경우 대신 addMenu() 구문을 사용해야 하며, 하위 메뉴는 사용할 수 없습니다.) 사용자가 두 메뉴 항목 중 하나를 선택하면 관련 함수가 알림 대화상자를 엽니다. 열 수 있는 대화상자 유형에 관한 자세한 내용은 대화상자 및 사이드바 가이드를 참고하세요.

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  // Or DocumentApp or FormApp.
  ui.createMenu('Custom Menu')
      .addItem('First item', 'menuItem1')
      .addSeparator()
      .addSubMenu(ui.createMenu('Sub-menu')
          .addItem('Second item', 'menuItem2'))
      .addToUi();
}

function menuItem1() {
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
     .alert('You clicked the first menu item!');
}

function menuItem2() {
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
     .alert('You clicked the second menu item!');
}

문서, 스프레드시트, 프레젠테이션 또는 양식에는 이름이 지정된 메뉴를 하나만 포함할 수 있습니다. 같은 스크립트나 다른 스크립트에서 같은 이름의 메뉴를 추가하면 새 메뉴가 이전 메뉴로 바뀝니다. 파일이 열려 있는 동안에는 메뉴를 삭제할 수 없습니다. 하지만 나중에 특정 속성이 설정된 경우 메뉴를 건너뛰도록 onOpen() 함수를 작성할 수 있습니다.

Google Sheets의 클릭 가능한 이미지 및 그림

스크립트가 스프레드시트에 바인딩된 한 Google Sheets의 이미지나 그림에 Apps Script 함수를 할당할 수도 있습니다. 아래 예에서는 이를 설정하는 방법을 보여줍니다.

  1. Google Sheets에서 확장 프로그램 > Apps Script 메뉴 항목을 선택하여 스프레드시트에 결합된 스크립트를 만듭니다.
  2. 스크립트 편집기에서 코드를 삭제하고 아래 코드를 붙여넣습니다.

      function showMessageBox() {
        Browser.msgBox('You clicked it!');
      }
    
  3. 스프레드시트로 돌아가서 삽입 > 이미지 또는 삽입 > 그림을 선택하여 이미지 또는 그림을 삽입합니다.

  4. 이미지나 그림을 삽입한 후 클릭합니다. 오른쪽 상단의 작은 드롭다운 메뉴 선택기가 나타납니다. 이 스크립트를 클릭하고 스크립트 할당을 선택합니다.

  5. 대화상자가 표시되면 실행하려는 Apps Script 함수의 이름을 괄호 없이 입력합니다(이 경우 showMessageBox). 확인을 클릭합니다.

  6. 이미지 또는 그림을 다시 클릭합니다. 이제 함수가 실행됩니다.

스크립트가 사이트에 결합되어 있으면 Google Sites의 링크에 Apps Script 함수를 할당할 수도 있습니다. 아래 예에서는 이를 설정하는 방법을 보여줍니다.

  1. Google 사이트에서 더보기 > 사이트 관리를 클릭합니다.
  2. 사이드바에서 Apps Script를 클릭한 후 새 스크립트 추가를 클릭하여 사이트에 결합된 스크립트를 만듭니다.
  3. 스크립트 편집기에서 코드를 삭제하고 아래 코드를 붙여넣습니다. 그러면 사용자가 링크를 클릭할 때 이메일이 전송됩니다.

      function sitesLink() {
        var recipient = Session.getActiveUser().getEmail();
        GmailApp.sendEmail(recipient, 'Email from your site', 'You clicked a link!');
      }
    
  4. Google Sites로 돌아와 페이지를 수정합니다. 링크가 될 라벨(예: Click me)을 입력한 후 텍스트를 강조표시하고 삽입 > 링크를 선택합니다.

  5. 대화상자가 표시되면 Apps Script를 클릭한 다음 방금 만든 sitesLink 함수를 클릭합니다. OK를 클릭합니다.

  6. 페이지 상단의 저장을 클릭합니다.

  7. 페이지에 추가한 링크를 클릭합니다.

  8. 스크립트에 승인이 필요함을 알리는 대화상자가 표시됩니다. OK를 클릭합니다. 그러면 두 번째 대화상자에서 특정 Google 서비스의 승인을 요청합니다. 알림을 신중하게 읽은 다음 허용닫기를 차례로 클릭합니다.

  9. 스크립트가 승인되었으므로 페이지에 추가한 링크를 다시 클릭합니다. 이제 함수가 실행됩니다. 이메일을 확인하여 본인이 직접 보낸 이메일을 확인하세요.