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