일반적인 문제 해결

매크로 변환기를 사용하여 VBA 코드를 Apps Script로 변환할 때 발생할 수 있는 일반적인 문제는 다음과 같습니다.

인쇄

파일을 인쇄하는 VBA API는 Apps Script로 자동 변환되지만 원본 VBA API와 다르게 작동할 수 있습니다. 다음은 두 가지 예입니다.

VBA APIApps Script에서의 동작
PrintOutApps Script로 변환되지만 Apps Script API는 프린터 대신 파일로 인쇄합니다. PDF 파일을 수동으로 인쇄할 수 있습니다.
PrintToFileApps Script로 변환합니다. PDF 파일이 내 드라이브 폴더에 저장됩니다.

변환되지 않은 항목

다음 기능은 매크로 변환기에 의해 변환되지 않으며 수동으로 변환해야 합니다.

트리거

두 가지 유형의 트리거인 단축키와 일부 이벤트 기반 트리거는 매크로 변환기에 의해 변환되지 않습니다. 대부분의 경우 이러한 트리거는 수동으로 만들 수 있습니다.

단축키

단축키를 추가하려면 함수를 매크로로 가져오기 단계를 따르세요.

이벤트 기반 트리거

BeforeClose 또는 BeforeSave와 같은 VBA 코드의 일부 이벤트는 Apps Script에서 동등하지 않지만 해결 방법을 만들 수 있습니다.

BeforeClose와 같은 이벤트의 경우, 스프레드시트를 닫기 전에 실행해야 하는 작업을 실행하기 위해 클릭할 수 있는 맞춤 메뉴나 버튼을 만들 수 있습니다.

Google 스프레드시트는 각 수정사항을 자동으로 저장하므로 BeforeSave와 같은 이벤트에 대한 해결 방법은 실행할 수 없습니다.

사용자 양식

VBA에서 UserForm은 애플리케이션의 사용자 인터페이스 (UI)에 있는 창 또는 대화상자입니다. 매크로 변환기는 UserForm을 변환하지 않습니다. Apps Script에서 수동으로 만들 수 있습니다.

사용자 양식 대화상자 만들기

  1. 컴퓨터의 Google Sheets에서 변환된 파일을 엽니다.
  2. 상단에서 확장 프로그램 > ** Apps Script**를 클릭합니다.
  3. 편집기의 왼쪽 메뉴에서 '파일' 옆에 있는 파일 추가 > HTML을 클릭합니다. HTML 파일에 원본 VBA 사용자 양식과 동일한 이름을 지정하는 것이 좋습니다.
  4. 양식에 표시할 입력란과 정보를 추가합니다. W3school.com에서 HTML 양식에 관해 자세히 알아보세요.
  5. 왼쪽에서 변환된 코드가 있는 Apps Script 파일 (GS 파일)을 클릭합니다.
  6. 코드에 이미 onOpen() 트리거가 있으면 아래 코드로 업데이트하세요. 코드에 onOpen() 트리거가 없으면 아래 코드를 추가합니다.
    function onOpen() {
     SpreadsheetApp.getUi()
         .createMenu('User Form')
         .addItem('Show Form', 'showForm')
         .addToUi();
    }
    function showForm() {
     var html = HtmlService.createHtmlOutputFromFile('userform_module_name')
         .setWidth(100)
         .setTitle('Sign-up for Email Updates');
     SpreadsheetApp.getUi().showSidebar(html);
    }
        
  7. userform_module_name을 추가한 HTML 파일의 이름으로 바꿉니다.
  8. 상단에서 프로젝트 저장 을 클릭합니다.
  9. Google 시트로 전환하고 페이지를 새로고침합니다.
  10. Google 시트 상단에서 사용자 양식 > 양식 표시를 클릭합니다.

이름이 지정된 범위

Excel에서 이름이 지정된 범위는 단일 셀 또는 셀 범위에 지정된 이름입니다.

Excel 파일을 Google Sheets로 변환할 때 일부 유형의 이름이 지정된 범위는 지원되지 않으므로 변환되지 않습니다. 다음은 두 가지 예입니다.

지원되지 않는 이름이 지정된 범위설명
테이블Google 시트에서는 지원되지 않지만 해결 방법이 있습니다.

Sheets에서 이 이름이 지정된 범위를 다시 만들려면 표 범위의 A1 표기법을 가리키는 이름이 지정된 범위를 추가하세요. 변환된 코드가 인식할 수 있도록 VBA 코드의 원래 이름이 지정된 범위와 동일한 이름을 사용합니다.
범위 목록Google Sheets에서는 지원되지 않습니다. 해결 방법은 없습니다.