Macro Converter를 사용하여 VBA 코드를 Apps Script로 변환할 때 발생할 수 있는 일반적인 문제는 다음과 같습니다.
인쇄
파일을 인쇄하는 VBA API는 자동으로 Apps Script로 변환되지만 원래 VBA API와 다르게 동작할 수 있습니다. 다음은 두 가지 예시입니다.
VBA API | Apps Script의 동작 |
---|---|
PrintOut | Apps Script로 변환되지만 Apps Script API는 프린터 대신 파일에 인쇄합니다. PDF 파일을 수동으로 인쇄할 수 있습니다. |
PrintToFile | Apps Script로 변환합니다. PDF 파일이 내 드라이브 폴더에 저장됩니다. |
전환되지 않은 항목
다음 기능은 매크로 변환기에서 변환되지 않으므로 수동으로 변환해야 합니다.
- 몇 가지 유형의 트리거
- Userforms
- 지원되지 않는 이름이 지정된 범위 유형
트리거
두 가지 유형의 트리거(단축키 및 일부 이벤트 기반 트리거)는 매크로 변환기에서 변환되지 않습니다. 대부분의 경우 이러한 트리거를 수동으로 만들 수 있습니다.
단축키
단축키를 추가하려면 함수를 매크로로 가져오기 단계를 따르세요.
이벤트 기반 트리거
VBA 코드의 일부 이벤트(예: BeforeClose
또는 BeforeSave
)에는 Apps Script에 상응하는 이벤트가 없지만 해결 방법을 만들 수 있습니다.
BeforeClose
와 같은 이벤트의 경우 스프레드시트를 닫기 전에 실행해야 하는 작업을 클릭하여 실행할 맞춤 메뉴나 버튼을 만들 수 있습니다.
Google Sheets는 각 수정사항을 자동으로 저장하므로 BeforeSave
와 같은 이벤트의 해결 방법은 실행할 수 없습니다.
Userforms
VBA에서 UserForm은 애플리케이션의 사용자 인터페이스 (UI)에 있는 창 또는 대화상자입니다. 매크로 변환기는 UserForms를 변환하지 않습니다. Apps Script에서 수동으로 만들 수 있습니다.
사용자 양식 대화 만들기
- 컴퓨터에서 Google Sheets에서 변환된 파일을 엽니다.
- 상단에서 확장 프로그램 > ** Apps Script**를 클릭합니다.
- 편집기 왼쪽의 '파일' 옆에 있는 파일 추가 > HTML을 클릭합니다. HTML 파일의 이름을 원래 VBA UserForm과 동일하게 지정하는 것이 좋습니다.
- 양식에 표시할 필드와 정보를 추가합니다. W3school.com에서 HTML 양식에 대해 자세히 알아보세요.
- 왼쪽에서 변환된 코드가 포함된 Apps Script 파일 (GS 파일)을 클릭합니다.
- 코드에 이미
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); }
userform_module_name
을 추가한 HTML 파일의 이름으로 바꿉니다.- 상단에서 프로젝트 저장 을 클릭합니다.
- Google Sheets로 전환하고 페이지를 새로고침합니다.
- Google 시트 상단에서 사용자 양식 > 양식 표시를 클릭합니다.
이름이 지정된 범위
Excel에서 이름이 지정된 범위는 단일 셀 또는 셀 범위에 지정된 이름입니다.
Excel 파일을 Google Sheets로 변환할 때 이름이 지정된 범위의 일부 유형은 지원되지 않으므로 변환되지 않습니다. 다음은 두 가지 예시입니다.
지원되지 않는 이름이 지정된 범위 | 설명 |
---|---|
테이블 | Google Sheets에서는 지원되지 않지만 해결 방법이 있습니다.
Sheets에서 이 이름이 지정된 범위를 다시 만들려면 테이블 범위의 A1 표기법을 가리키는 이름이 지정된 범위를 추가합니다. 변환된 코드에서 이를 인식할 수 있도록 VBA 코드에서 원래 이름이 지정된 범위와 동일한 이름을 사용합니다. |
범위 목록 | Google Sheets에서는 지원되지 않습니다. 해결 방법이 없습니다. |
관련 도움말
- 매크로 변환 도구 부가기능 개요
- VBA 매크로 호환 여부 확인하기
- VBA 매크로를 Apps Script로 변환하기
- 변환된 코드의 오류 수정하기
- 매크로 변환 도구 튜토리얼 보기
- 호환되는 VBA API 목록