목차
매크로를 기록하고, 보고, 실행하고, 저장하는 초보자를 위한 단계별 자습서입니다. 또한 매크로가 Excel에서 작동하는 방식에 대한 몇 가지 내부 메커니즘도 배웁니다.
매크로는 Excel에서 반복적인 작업을 자동화하는 좋은 방법입니다. 같은 작업을 반복해서 수행하는 경우 동작을 매크로로 기록하고 여기에 키보드 단축키를 지정하십시오. 이제 한 번의 키 입력으로 기록된 모든 작업을 자동으로 수행할 수 있습니다!
Excel에서 매크로를 기록하는 방법
다른 VBA 도구와 마찬가지로 Excel 매크로도 기본적으로 숨겨져 있는 개발자 탭에 있습니다. 따라서 가장 먼저 해야 할 일은 Excel 리본에 개발 도구 탭을 추가하는 것입니다.
Excel에서 매크로를 기록하려면 다음 단계를 수행하십시오.
- Developer 탭의 Code 그룹에서 Record Macro 버튼을 클릭합니다.
또는 Record Macro를 클릭합니다. 상태 표시줄 왼쪽에 있는 매크로 버튼:
마우스보다 키보드로 작업하는 것을 선호하는 경우 다음을 누르십시오. 키 시퀀스 Alt , L , R (한 번에 모든 키가 아니라 하나씩).
- 표시되는 매크로 기록 대화 상자에서 매크로의 기본 매개변수를 구성합니다.
- 매크로 name 상자에 매크로 이름을 입력합니다. 나중에 목록에서 매크로를 빠르게 찾을 수 있도록 의미 있고 설명적으로 만드십시오.
안으로학습 곡선을 더 매끄럽게 만들고 매크로를 더 효율적으로 만들어 많은 시간과 노력을 절약할 수 있습니다.
매크로 기록에 상대 참조 사용
기본적으로 Excel은 절대 <8를 사용합니다>참조 매크로를 기록합니다. 즉, VBA 코드는 매크로를 실행할 때 워크시트의 어느 위치에 있든 상관없이 항상 선택한 것과 정확히 동일한 셀을 참조합니다.
그러나 기본 동작을 로 변경할 수 있습니다. 상대 참조 . 이 경우 VBA는 셀 주소를 하드코딩하지 않지만 활성(현재 선택된) 셀에 상대적으로 작동합니다.
상대 참조로 매크로를 기록하려면 사용 <8 개발자 탭의>상대 참조 버튼. 절대 참조로 돌아가려면 버튼을 다시 클릭하여 끄십시오.
예를 들어 기본 절대 참조로 테이블 설정을 기록하는 경우 매크로는 항상 같은 위치에 테이블을 다시 만듭니다(이 경우 A1의 Header , A2의 Item1 , A3의 Item2 ).
Sub Absolute_Referencing() 범위( "A1" ). ActiveCell.FormulaR1C1 = "헤더" 범위( "A2" )를 선택합니다. ActiveCell.FormulaR1C1 = "Item1" 범위( "A3" )를 선택합니다. Select ActiveCell.FormulaR1C1 = "Item2" End Sub
동일한 매크로를 상대 참조로 기록하면 매크로를 실행하기 전에 커서를 두는 곳마다 테이블이 생성됩니다( Header 활성 셀, 아래 셀의 Item1 등).
Sub Relative_Referencing() ActiveCell.FormulaR1C1 = "Header" ActiveCell.Offset(1, 0).Range( "A1" ). ActiveCell.FormulaR1C1 = "Item1" ActiveCell.Offset(1, 0).Range( "A1" )을 선택합니다. ActiveCell.FormulaR1C1 = "Item2" ActiveCell.Offset(1, 0).Range( "A1" )을 선택합니다. End Sub선택 참고:
- 상대 참조를 사용하는 경우 매크로 기록을 시작하기 전에 초기 셀을 선택해야 합니다.
- 상대 참조는 모든 경우에 작동하지 않습니다. 일부 Excel 기능(예: 범위를 표로 변환하려면 절대 참조가 필요합니다.
단축키를 사용하여 범위 선택
마우스 또는 화살표 키를 사용하여 셀 또는 셀 범위를 선택하면 Excel 셀 주소를 씁니다. 따라서 매크로를 실행할 때마다 기록된 작업이 동일한 셀에서 정확히 수행됩니다. 이것이 원하는 것이 아닌 경우 셀 및 범위를 선택하는 단축키를 사용하세요.
예를 들어 아래 표의 날짜에 대해 특정 형식(d-mmm-yy)을 설정하는 매크로를 기록해 보겠습니다.
이를 위해 다음 작업을 기록합니다. Ctrl + 1을 눌러 셀 서식 대화 상자 > 날짜 > 형식 선택 > 확인. 기록에 마우스나 화살표 키로 범위를 선택하는 것이 포함된 경우 Excel은 다음 VBA 코드를 생성합니다.
Sub Date_Format() Range( "A2:B4" ). 고르다Selection.NumberFormat = "d-mmm-yy" End Sub위 매크로를 실행하면 매번 A2:B4 범위가 선택됩니다. 테이블에 행을 더 추가하면 매크로에 의해 처리되지 않습니다.
이제 바로 가기를 사용하여 테이블을 선택하면 어떤 일이 발생하는지 살펴보겠습니다.
커서 위치 대상 범위의 왼쪽 상단 셀(이 예에서는 A2)에서 기록을 시작하고 Ctrl + Shift + End를 누릅니다. 결과적으로 코드의 첫 번째 줄은 다음과 같습니다.
Range(Selection, ActiveCell.SpecialCells(xlLastCell)). Select이 코드는 활성 셀에서 마지막으로 사용한 셀까지 모든 셀을 선택합니다. 즉, 모든 새 데이터가 선택 항목에 자동으로 포함됩니다.
또는 Ctrl + Shift + 화살표 조합을 사용할 수 있습니다.
- Ctrl + Shift + 오른쪽 화살표를 사용하여 오른쪽에서 사용된 모든 셀을 선택하고
- Ctrl + Shift + 아래쪽 화살표를 사용하여 아래에서 사용된 모든 셀을 선택합니다.
이렇게 하면 하나가 아닌 두 개의 코드 라인이 생성되지만 결과는 동일합니다. 활성 셀의 아래쪽 및 오른쪽에 있는 데이터가 있는 모든 셀이 선택됩니다.
Range(Selection, Selection.End ( xlToRight)). 범위 선택(선택, 선택. 종료(xlDown)).특정 셀이 아닌 선택을 위한 매크로 기록
선택 위의 방법(즉, 활성 셀부터 시작하여 사용된 모든 셀 선택)은 전체 테이블에서 동일한 작업을 수행하는 데 효과적입니다. 일부에서는그러나 상황에 따라 매크로가 전체 테이블이 아닌 특정 범위를 처리하기를 원할 수 있습니다.
이를 위해 VBA는 현재 선택된 셀을 참조하는 Selection 개체를 제공합니다. . 범위로 수행할 수 있는 대부분의 작업은 선택으로도 수행할 수 있습니다. 그것은 당신에게 어떤 이점을 제공합니까? 대부분의 경우 기록하는 동안 아무 것도 선택할 필요가 없습니다. 활성 셀에 대한 매크로를 작성하기만 하면 됩니다. 그런 다음 원하는 범위를 선택하고 매크로를 실행하면 전체 선택 항목이 조작됩니다.
예를 들어 이 한 줄 매크로는 선택한 셀의 수에 관계없이 백분율로 서식을 지정할 수 있습니다.
Sub Percent_Format () Selection.NumberFormat = "0.00%" End Sub기록할 내용을 신중하게 계획하십시오.
Microsoft Excel Macro Recorder는 실수 및 수정을 포함하여 거의 모든 활동을 캡처합니다. 예를 들어 Ctrl + Z를 눌러 실행 취소하면 해당 항목도 기록됩니다. 결국 불필요한 코드가 많이 생길 수 있습니다. 이를 방지하려면 VB Editor에서 코드를 편집하거나 기록을 중지하고 부족한 매크로를 삭제하고 새로 기록을 시작하십시오.
매크로 실행 전에 통합 문서 백업 또는 저장
Excel의 결과 매크로는 취소할 수 없습니다. 따라서 매크로를 처음 실행하기 전에 통합 문서의 복사본을 만들거나 적어도 현재 작업을 저장하여 예기치 않은 변경을 방지하는 것이 좋습니다. 매크로가 잘못되면저장하지 않고 통합 문서를 닫으십시오.
기록된 매크로를 짧게 유지
서로 다른 작업의 순서를 자동화할 때 하나의 매크로에 모든 작업을 기록하고 싶을 수 있습니다. 이렇게 하지 않는 데에는 두 가지 주요 이유가 있습니다. 첫째, 긴 매크로를 실수 없이 매끄럽게 기록하기 어렵습니다. 둘째, 큰 매크로는 이해, 테스트 및 디버그하기 어렵습니다. 따라서 큰 매크로를 여러 부분으로 분할하는 것이 좋습니다. 예를 들어, 여러 소스에서 요약 테이블을 생성할 때 하나의 매크로를 사용하여 정보를 가져오고, 다른 매크로를 사용하여 데이터를 통합하고, 세 번째 매크로를 사용하여 테이블 형식을 지정할 수 있습니다.
이 자습서를 통해 통찰력을 얻으셨기를 바랍니다. Excel에서 매크로를 기록하는 방법. 어쨌든 읽어주셔서 감사하고 다음 주 블로그에서 뵙기를 바랍니다!
매크로 이름에는 문자, 숫자 및 밑줄을 사용할 수 있습니다. 첫 번째 문자는 문자여야 합니다. 공백은 허용되지 않으므로 각 부분을 대문자로 시작하는 한 단어로 된 이름을 유지하거나(예: MyFirstMacro ) 밑줄로 단어를 구분해야 합니다(예: My_First_Macro ). - 단축 키 상자에 문자를 입력하여 매크로에 키보드 단축키를 할당합니다(선택 사항).
대문자 또는 소문자 모두 허용되지만 매크로가 포함된 통합 문서가 열려 있는 동안 매크로 바로 가기가 기본 Excel 바로 가기보다 우선하므로 대문자 키 조합( Ctrl + Shift + letter )을 사용하는 것이 좋습니다. 예를 들어 매크로에 Ctrl + S를 지정하면 바로 가기로 Excel 파일을 저장할 수 없게 됩니다. Ctrl + Shift + S를 지정하면 표준 저장 바로 가기가 유지됩니다.
- 매크로 저장 위치 드롭다운 목록에서 매크로를 저장할 위치를 선택합니다.
- Personal Macro Workbook – Personal.xlsb 라는 특수 통합 문서에 매크로를 저장합니다. 이 통합 문서에 저장된 모든 매크로는 Excel을 사용할 때마다 사용할 수 있습니다.
- 이 통합 문서 (기본값) - 매크로는 현재 통합 문서에 저장되며 통합 문서를 다시 열 때 사용할 수 있습니다. 또는 다른 사용자와 공유합니다.
- 새 통합 문서 – 새 통합 문서를 만들고 해당 통합 문서에 매크로를 기록합니다.
- 설명 상자에 매크로가 수행하는 작업에 대한 간단한 설명을 입력합니다(선택 사항).
이 필드는 선택 사항이지만 항상 간략한 설명을 제공하는 것이 좋습니다. 다양한 매크로를 많이 만들 때 각 매크로가 수행하는 작업을 빠르게 이해하는 데 도움이 됩니다.
- 확인 을 클릭하여 매크로 기록을 시작합니다.
- 매크로 name 상자에 매크로 이름을 입력합니다. 나중에 목록에서 매크로를 빠르게 찾을 수 있도록 의미 있고 설명적으로 만드십시오.
- 원하는 작업을 수행합니다. 자동화합니다(기록 매크로 예 참조).
- 완료되면 개발자 탭에서 기록 중지 버튼을 클릭합니다.
또는 상태 표시줄의 유사한 버튼:
Excel에 매크로를 기록하는 예
실제 작동 방식을 확인하기 위해 선택한 셀에 서식을 적용하는 매크로를 기록해 보겠습니다. 이를 위해 다음을 수행합니다.
- 서식을 지정할 하나 이상의 셀을 선택합니다.
- 개발자 탭 또는 상태<2에서> 표시줄에서 매크로 기록 을 클릭합니다.
- 매크로 기록 대화 상자에서 다음 설정을 구성합니다.
- 매크로 이름 지정 Header_Formatting (열 머리글의 서식을 지정하기 때문입니다.)
- 단축 키 상자에 커서를 놓고 Shift + F 키를 동시에 누릅니다. 이렇게 하면 Ctrl + Shift + F 단축키가 매크로에 할당됩니다.
- 이 통합 문서에 매크로를 저장하도록 선택하십시오.
- 설명 의 경우 다음 텍스트를 사용하여 설명합니다. 매크로는 다음을 수행합니다. 텍스트를 굵게 만들고, 채우기 색상을 추가하고, 중앙에 배치합니다 .
- 기록을 시작하려면 확인 을 클릭하세요.
- 미리 선택된 셀을 원하는 방식으로 포맷합니다. 이 예에서는 굵은 텍스트 서식, 하늘색 채우기 색상 및 가운데 정렬을 사용합니다.
팁. 매크로 기록을 시작한 후에는 셀을 선택하지 마십시오. 이렇게 하면 모든 서식이 특정 범위가 아닌 선택 에 적용됩니다.
- 개발자 탭 또는 상태 표시줄에서 기록 중지 를 클릭합니다.
그거야! 매크로가 기록되었습니다. 이제 모든 시트에서 셀 범위를 선택하고 할당된 단축키( Ctrl+ Shift + F )를 누르면 사용자 지정 서식이 선택한 셀에 즉시 적용됩니다.
Excel에서 기록된 매크로로 작업하는 방법
Excel이 매크로에 대해 제공하는 모든 주요 옵션은 매크로 대화 상자를 통해 액세스할 수 있습니다. 매크로를 열려면 개발자 탭에서 매크로 버튼을 클릭하거나 Alt+F8 단축키를 누르세요.
대화 상자에서 이 열리면 열려 있는 모든 통합 문서에서 사용 가능하거나 특정 통합 문서와 연결된 매크로 목록을 볼 수 있으며 다음 옵션을 사용할 수 있습니다.
- 실행 - 선택한 매크로를 실행합니다. .
- 한 단계씩 - Visual Basic Editor에서 매크로를 디버깅하고 테스트할 수 있습니다.
- 편집 - 선택한 매크로를 다음 위치에서 엽니다.코드를 보고 편집할 수 있는 VBA 편집기.
- 삭제 - 선택한 매크로를 영구적으로 삭제합니다.
- 옵션 – 매크로를 변경할 수 있습니다. 관련된 Shortcut key 및 Description 과 같은 매크로 속성.
보는 방법 Excel의 매크로
Excel 매크로의 코드는 Visual Basic Editor에서 보고 수정할 수 있습니다. 편집기를 열려면 Alt + F11을 누르거나 개발자 탭에서 Visual Basic 버튼을 클릭하세요.
VB 편집기를 처음 사용하는 경우 실망하거나 겁먹지 마십시오. 우리는 VBA 언어의 구조나 구문에 대해 이야기하지 않을 것입니다. 이 섹션에서는 Excel 매크로의 작동 방식과 매크로 기록이 실제로 수행하는 작업에 대한 몇 가지 기본적인 이해를 제공합니다.
VBA 편집기에는 여러 창이 있지만 두 가지 주요 창에 중점을 둘 것입니다.
프로젝트 탐색기 - 열려 있는 모든 통합 문서 및 해당 시트 목록을 표시합니다. 또한 모듈, 사용자 양식 및 클래스 모듈을 표시합니다.
코드 창 - 여기에서 프로젝트 탐색기에 표시된 각 개체에 대한 VBA 코드를 보고 편집하고 작성할 수 있습니다.
샘플 매크로를 기록했을 때 백엔드에서 다음과 같은 일이 발생했습니다.
- 새 모듈( Moduel1 )이 삽입되었습니다.
- 매크로의 VBA 코드가 코드 창에 작성되었습니다.
특정 매크로의 코드를 보려면모듈을 보려면 프로젝트 탐색기 창에서 모듈(이 경우 Module1 )을 두 번 클릭합니다. 일반적으로 매크로 코드는 다음 부분으로 구성됩니다.
매크로 이름
VBA에서 모든 매크로는 Sub 로 시작하고 그 뒤에 매크로 이름이 오고 End Sub로 끝납니다. , 여기서 "Sub"는 Subroutine ( Procedure 라고도 함)의 약자입니다. 샘플 매크로 이름은 Header_Formatting() 이므로 코드는 다음 줄로 시작합니다.
Sub Header_Formatting()매크로 이름을 바꾸려면 매크로를 삭제하면 됩니다. 현재 이름을 입력하고 코드 창에 직접 새 이름을 입력합니다.
Comments
아포스트로피(') 접두사가 붙고 기본적으로 녹색으로 표시되는 행은 실행되지 않습니다. 정보 제공 목적으로 추가된 주석입니다. 주석 행은 코드의 기능에 영향을 미치지 않고 안전하게 제거할 수 있습니다.
일반적으로 기록된 매크로에는 1 - 3개의 주석 행이 있습니다. 매크로 이름(필수); 설명 및 바로가기(기록하기 전에 지정된 경우).
실행 코드
설명 뒤에는 기록된 작업을 실행하는 코드가 있습니다. 때로는 기록된 매크로에 불필요한 코드가 많이 있을 수 있으며, 이는 VBA에서 작동하는 방식을 파악하는 데 여전히 유용할 수 있습니다. :)
아래 이미지는 매크로 코드의 각 부분이 수행하는 작업을 보여줍니다.
기록된 매크로 실행 방법
매크로를 실행하면 기록된 VBA 코드로 돌아가서정확히 같은 단계. Excel에서 기록된 매크로를 실행하는 몇 가지 방법이 있으며 가장 빠른 방법은 다음과 같습니다.
- 매크로에 단축키 를 할당한 경우 해당 단축키를 누릅니다. .
- Alt + 8을 누르거나 개발자 탭에서 매크로 버튼을 클릭합니다. 매크로 대화상자에서 원하는 매크로를 선택하고 실행 을 클릭합니다.
실행도 가능합니다. 자신의 버튼을 클릭하여 기록된 매크로. 매크로를 만드는 단계는 다음과 같습니다. Excel에서 매크로 버튼을 만드는 방법.
Excel에서 매크로를 저장하는 방법
매크로를 저장하기 위해 매크로를 기록했는지 또는 수동으로 VBA 코드를 작성했는지 여부 , 통합 문서를 매크로 사용(.xlms 확장자)으로 저장해야 합니다. 방법은 다음과 같습니다.
- 매크로가 포함된 통합 문서에서 저장 버튼을 클릭하거나 Ctrl + S를 누릅니다.
- 다른 이름으로 저장 대화 상자에서 파일 형식 드롭다운 목록에서 Excel 매크로 사용 통합 문서(*.xlsm) 를 선택한 다음 저장 :<0을 클릭합니다>
Excel 매크로: 기록되는 것과 기록되지 않는 것
방금 살펴본 것처럼 Excel에서 매크로를 기록하는 것은 매우 쉽습니다. 그러나 효과적인 매크로를 만들려면 뒤에서 무슨 일이 벌어지고 있는지 이해해야 합니다.
기록되는 내용
Excel의 매크로 레코더는 거의 모든 마우스 클릭과 키 누르기 등 많은 것을 캡처합니다. 따라서 과도한 코드를 피하기 위해 단계를 신중하게 생각해야 합니다.매크로의 예기치 않은 동작이 발생합니다. 다음은 Excel이 기록하는 몇 가지 예입니다.
- 마우스 또는 키보드로 셀 선택. 작업이 기록되기 전 마지막 선택 항목만 기록됩니다. 예를 들어 A1:A10 범위를 선택하고 A11 셀을 클릭하면 A11의 선택 영역만 기록됩니다.
- 채우기 및 글꼴 색상, 정렬, 테두리 등과 같은 셀 서식 지정
- 백분율, 통화 등과 같은 숫자 서식.
- 수식 및 값 편집. Enter 키를 누르면 변경 사항이 기록됩니다.
- 스크롤, Excel 창 이동, 다른 워크시트 및 통합 문서로 전환.
- 워크시트 추가, 이름 지정, 이동 및 삭제.
- 만들기, 통합 문서 열기 및 저장.
- 다른 매크로 실행.
기록할 수 없는 항목
Excel에서 기록할 수 있는 다양한 항목에도 불구하고 특정 기능은 매크로 레코더:
- Excel 리본 및 빠른 액세스 도구 모음의 사용자 지정.
- 조건부 서식 또는 찾기 및 바꾸기와 같은 Excel 대화 상자 내 작업 (결과만 기록됨).
- 다른 프로그램과의 상호 작용. 예를 들어 Excel 통합 문서에서 Word 문서로 복사/붙여넣기를 기록할 수 없습니다.
- VBA 편집기와 관련된 모든 것. 이것은 가장 중요한 제한 사항을 부과합니다. 프로그래밍 수준에서 수행할 수 있는 많은 작업은 수행할 수 없습니다.
- 사용자 지정 함수 만들기
- 사용자 지정 대화 상자 표시
- For Next , For Each 와 같은 루프 만들기, Do While 등
- 조건 평가. VBA에서 IF Then Else 문을 사용하여 조건을 테스트하고 조건이 참이면 일부 코드를 실행하고 조건이 거짓이면 다른 코드를 실행할 수 있습니다.
- 이벤트 기반 코드 실행 . VBA를 사용하면 많은 이벤트를 사용하여 해당 이벤트와 연결된 코드를 실행할 수 있습니다(예: 통합 문서 열기, 워크시트 다시 계산, 선택 항목 변경 등).
- 인수 사용. VBA 편집기에서 매크로를 작성할 때 특정 작업을 수행하기 위해 매크로에 대한 입력 인수를 제공할 수 있습니다. 기록된 매크로는 독립적이고 다른 매크로와 연결되어 있지 않기 때문에 인수를 가질 수 없습니다.
- 논리 이해. 예를 들어 특정 셀을 복사하는 매크로를 기록하는 경우(예: Total 행) Excel은 복사된 셀의 주소만 기록합니다. VBA를 사용하면 로직을 코딩할 수 있습니다. 즉, Total 행의 값을 복사합니다.
위의 제한 사항이 기록된 매크로에 대해 많은 경계를 설정하지만 그들은 여전히 좋은 출발점입니다. VBA 언어에 대해 전혀 모르더라도 매크로를 빠르게 기록한 다음 해당 코드를 분석할 수 있습니다.
Excel에서 매크로를 기록하는 유용한 팁
아래에서 몇 가지 팁을 찾을 수 있습니다. 잠재적으로