일반적인 문제 해결

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

인쇄

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

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

전환되지 않은 항목

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

트리거

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

단축키

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

이벤트 기반 트리거

VBA 코드의 일부 이벤트(예: BeforeClose 또는 BeforeSave)에는 Apps Script에 상응하는 이벤트가 없지만 해결 방법을 만들 수 있습니다.

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

Google Sheets는 각 수정사항을 자동으로 저장하므로 BeforeSave와 같은 이벤트의 해결 방법은 실행할 수 없습니다.

Userforms

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

사용자 양식 대화 만들기

  1. 컴퓨터에서 Google Sheets에서 변환된 파일을 엽니다.
  2. 상단에서 확장 프로그램 > ** Apps Script**를 클릭합니다.
  3. 편집기 왼쪽의 '파일' 옆에 있는 파일 추가 > HTML을 클릭합니다. HTML 파일의 이름을 원래 VBA UserForm과 동일하게 지정하는 것이 좋습니다.
  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 Sheets로 전환하고 페이지를 새로고침합니다.
  10. Google 시트 상단에서 사용자 양식 > 양식 표시를 클릭합니다.

이름이 지정된 범위

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

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

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

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