Computer >> 컴퓨터 >  >> 소프트웨어 >> Office

생산성 향상: Office 스크립트로 Excel 온라인 워크플로 완벽 자동화하기

생산성 향상: Office 스크립트로 Excel 온라인 워크플로 완벽 자동화하기

Office 스크립트(Office Scripts)는 Excel for the web(Excel 온라인)에서 제공되는 기능으로, JavaScript 기반 스크립트를 사용해 반복적인 작업과 워크플로를 자동화할 수 있습니다. 기존의 데스크톱용 Excel 매크로(VBA)와 달리 Office 스크립트는 클라우드 기반으로 동작하므로 브라우저만 있으면 어디서든 원활하게 실행할 수 있습니다. 데이터 처리, 서식 지정, 보고서 작성은 물론 Power Automate 같은 Microsoft 365 도구와의 연동까지 폭넓게 활용 가능합니다.

이 튜토리얼에서는 Office 스크립트를 활용해 Excel 온라인에서 워크플로를 자동화하는 방법을 단계별로 살펴봅니다.

Office 스크립트란 무엇인가?

Office 스크립트는 Excel 온라인에서 작업과 워크플로를 자동화하는 JavaScript/TypeScript 기반 스크립트입니다. 셀 서식 지정, 계산, 데이터 조작 등 다양한 업무를 처리할 수 있습니다.

  • 반복 작업 자동화: 시간을 절약하고 사람이 실수할 가능성을 줄입니다.
  • 클라우드 기반 실행: 데스크톱 Excel 없이도 Excel 온라인이 제공되는 환경이라면 어디서든 사용할 수 있습니다.
  • Power Automate 연동: Microsoft 365 전반에 걸친 다단계 워크플로의 일부로 스크립트를 트리거할 수 있습니다.
  • 협업 강화: 접근 권한이 있는 누구나 스크립트를 실행하거나 편집할 수 있습니다.

시작하기 전에

필수 요건:

  • Microsoft 365 Business 또는 Education 구독
  • Excel for the web 접근 권한
  • 관리자가 Office 스크립트 기능을 활성화해야 함

Office 스크립트 위치:

  • Excel 온라인을 열고 통합 문서를 불러옵니다.
  • 상단 리본 메뉴에서 자동화(Automate) 탭으로 이동합니다.
  • 작업 기록(Record Actions)새 스크립트(New Script) 옵션을 확인할 수 있습니다.

첫 번째 Office 스크립트 만들기

간단한 워크플로를 자동화해 보겠습니다. 오래된 데이터 삭제 → 새 데이터 가져오기 → 표 서식 지정 순서로 진행됩니다.

1단계: 스크립트 기록하기

작업 기록(Record Actions) 방법:

  • 자동화 탭으로 이동한 후 작업 기록을 클릭합니다.
  • Excel에서 원하는 작업을 수행합니다(예: 셀 서식 지정, 수식 삽입).
  • 완료되면 중지(Stop)를 클릭하면 작업 내역이 스크립트로 기록됩니다.
  • 스크립트가 저장되며, 코드를 확인하고 수정할 수 있습니다.

자동화할 작업 예시:

  • 자동화 탭으로 이동한 후 작업 기록을 클릭합니다.

생산성 향상: Office 스크립트로 Excel 온라인 워크플로 완벽 자동화하기

  • 제목 행을 선택하고 굵게(Bold) 서식을 적용합니다.
  • OrderDate 열을 선택하고 간단한 날짜(Short Date) 형식으로 지정합니다.
  • Unit Price 열을 선택하고 통화(Currency) 형식으로 지정합니다.
  • 바로 옆 열(E열)에 Sales라는 제목을 입력합니다.
  • E2 셀에 아래 수식을 입력합니다.
  • 나머지 행에도 이 수식을 자동 채우기 합니다.
  • 중지를 클릭합니다.

생산성 향상: Office 스크립트로 Excel 온라인 워크플로 완벽 자동화하기

  • 코드 편집기(Code Editor)에서 기록된 스크립트를 확인합니다.

생산성 향상: Office 스크립트로 Excel 온라인 워크플로 완벽 자동화하기

스크립트 편집하기:

기록된 스크립트는 JavaScript 코드로 직접 확인하고 수정할 수 있습니다.

생산성 향상: Office 스크립트로 Excel 온라인 워크플로 완벽 자동화하기

생성된 Office 스크립트:

function main(workbook: ExcelScript.Workbook) {
 let selectedSheet = workbook.getActiveWorksheet();
 // Set font bold to true for range A1:D1 on selectedSheet
 selectedSheet.getRange("A1:D1").getFormat().getFont().setBold(true);
 // Set format for range A2:A11 on selectedSheet
 selectedSheet.getRange("A2:A11").setNumberFormatLocal("m/d/yyyy");
 // Auto fit the columns of range A:A on selectedSheet
 selectedSheet.getRange("A:A").getFormat().autofitColumns();
 // Set format for range D2:D11 on selectedSheet
 selectedSheet.getRange("D2:D11").setNumberFormatLocal("$#,##0.00");
 // An error occurred while recording this event.
 // Set range E2 on selectedSheet
 selectedSheet.getRange("E2").setFormulaLocal("=C2*D2");
 // Auto fill range
 selectedSheet.getRange("E2").autoFill("E2:E11", ExcelScript.AutoFillType.fillDefault);
}

2단계: 데이터 새로 고침 및 서식 자동화

이번에는 데이터 새로 고침과 서식 지정 과정 전체를 자동화한다고 가정해 보겠습니다.

  • 기존 데이터를 모두 삭제합니다.
  • 다른 워크시트("RawData")에서 새 데이터를 복사합니다.
  • 복사한 데이터를 "Report" 시트에 붙여넣습니다.
  • 해당 범위를 표(Table) 형식으로 지정합니다.

직접 스크립트 작성하기:

  • 자동화 탭으로 이동한 후 새 스크립트를 클릭합니다.
  • 코드 편집기가 열리고 기본 함수 구조가 표시됩니다.

생산성 향상: Office 스크립트로 Excel 온라인 워크플로 완벽 자동화하기

Office 스크립트 예제:

function main(workbook: ExcelScript.Workbook) {
 // Select the 'Report' worksheet
 let reportSheet = workbook.getWorksheet("Report");
 // Clear everything in A1:E15
 let clearRange = reportSheet.getRange("A1:E15");
 clearRange.clear(ExcelScript.ClearApplyTo.all);
 // Get the new data from 'RawData'!A1:E15
 let rawSheet = workbook.getWorksheet("RawData");
 let sourceRange = rawSheet.getRange("A1:E15");
 // Copy values, formulas, and number formats
 let values = sourceRange.getValues();
 let formulas = sourceRange.getFormulas();
 let numberFormats = sourceRange.getNumberFormats();
 // Paste new data into 'Report'
 let targetRange = reportSheet.getRange("A1:E15");
 targetRange.setValues(values);
 targetRange.setFormulas(formulas);
 targetRange.setNumberFormats(numberFormats);
 // Format as table
 let lastRow = values.filter(row => row[0] !== "").length + 1; // header + non-empty rows
 let tableRange = `A1:E${lastRow}`;
 let table = reportSheet.addTable(tableRange, true);
 table.setName("SalesReport");
 // Optional: Auto-fit columns
 reportSheet.getUsedRange().getFormat().autofitColumns();
}

이 스크립트는 다음 작업을 한 번에 처리합니다.

  • 기존 보고서 데이터를 삭제합니다.
  • 원본 데이터 시트에서 값, 수식, 서식을 포함한 새 데이터를 가져옵니다.
  • 가져온 데이터를 표 형식으로 변환합니다.
  • 가독성을 높이기 위해 열 너비를 자동 맞춤합니다.

3단계: 스크립트 저장 및 실행

  • 스크립트 저장(Save Script)을 클릭하고 이름을 지정합니다(예: "영업 보고서 새로 고침").
  • 실행(Run) 버튼을 클릭하면 즉시 프로세스가 진행되고 보고서가 새로 고쳐집니다!

생산성 향상: Office 스크립트로 Excel 온라인 워크플로 완벽 자동화하기

Power Automate로 스크립트 실행 자동화

Power Automate를 활용하면 Office 스크립트를 자동으로 트리거할 수 있습니다.

  • Power Automate에 접속하여 새 흐름(flow)을 만듭니다.
  • 트리거를 설정합니다(예: "OneDrive에 파일이 생성될 때").
  • 스크립트 실행(Run script) 작업을 추가하고 대상 Excel 통합 문서와 스크립트를 선택합니다.
  • 데이터 가져오기 → 가공 → 이메일 발송 → 팀 알림 등 다단계 프로세스를 자동화합니다.

활용 사례: 매주 월요일 아침마다 스크립트를 실행해 최신 보고서를 이메일로 자동 발송하도록 설정할 수 있습니다.

팁 및 모범 사례

  • 스크립트에 주석을 달아 가독성과 유지보수성을 높입니다.
  • 실제 데이터에 적용하기 전에 반드시 사본으로 테스트합니다.
  • 표와 범위에는 명확한 이름을 지정합니다.
  • Power Automate와 결합하여 앱 간 워크플로를 구축합니다.
  • 오류 처리(error handling)를 활용해 스크립트의 안정성을 확보합니다.

실전 활용 예시

  • 주간 영업 보고서 갱신: 원본 영업 데이터를 가져와 정제하고 요약한 뒤 표 서식까지 일괄 적용합니다.
  • 자동 데이터 검증: 누락된 값이나 중복 데이터를 확인하고 사용자에게 경고합니다.
  • 일관된 서식 유지: 회사 공식 스타일, 제목 행, 로고를 클릭 한 번으로 적용합니다.
  • 대량 데이터 처리: 여러 시트 또는 통합 문서의 데이터를 하나로 병합합니다.

마무리

Office 스크립트는 반복적인 Excel 작업을 획기적으로 단순화하여, 빠르고 일관성 있는 데이터 처리와 보고를 가능하게 해줍니다. 여기에 Power Automate 같은 종합 자동화 솔루션과 결합하면 비즈니스 운영 전반을 아우르는 원활한 워크플로를 구축할 수 있습니다. 간단한 작업부터 시작해 작업 기록 기능을 익히고, 점차 고급 자동화와 Power Automate 연동으로 확장해 나가시기 바랍니다.


무료 고급 Excel 실습 문제와 해설 받으세요!