Microsoft Excel에서 매크로 레코더를 사용
Excel 및 VBE (Visual Basic Editor)를 엽니 다. 변경되지 않은 경우 VBE 창에는 ProjectExplorer 창과 Properties 창이 포함됩니다 (보기 메뉴에서 액세스 할 수 있음).
프로젝트 탐색기 : 파일 관리자처럼 작동합니다. 통합 문서의 코드를 탐색하는 데 도움이됩니다.
속성 창 : 현재 통합 문서 (예 : Book1)의 현재 활성 개체 (예 : Sheet1)의 속성을 표시합니다.
이 기사에서는 Excel에서 매크로 기록이 얼마나 쉬운 지 배웁니다.
연습 1 : 매크로 기록.
이 연습은 매크로가 기록 될 때 어떤 일이 발생하는지 보여주고 절대 참조와 상대 참조 기록의 차이점을 보여줍니다 .
-
새 통합 문서의 빈 워크 시트에서 C10 셀을 선택합니다. 2. This Workbook_에 매크로를 저장하는 옵션을 사용하여 매크로 레코더를 시작합니다. 이 시점에서 VBE는 새 _Modules 폴더를 만듭니다. 가서 그것을 보는 것은 매우 안전합니다. 당신의 행동은 기록되지 않을 것입니다. 폴더 옆에있는 [+]를 클릭하고 VBE가 폴더에 모듈을 배치하고 이름을 _Module1_로 지정했는지 확인합니다. 모듈 아이콘을 두 번 클릭하여 코드 창을 엽니 다. Excel로 다시 전환하십시오.
-
Stop Recording 도구 모음의 Relative Reference 버튼이 눌러져 있지 않은지 확인합니다.
-
B5 셀을 선택하고 레코더를 중지합니다.
-
VBE로 전환하고 코드를 확인합니다.
Range ( “B5”). 6을 선택합니다. 이제 정확히 동일한 방식으로 다른 매크로를 기록합니다. 이번에는 Relative Reference 버튼을 누른 상태로 기록합니다.
-
VBE로 전환하고 코드를 확인합니다.
ActiveCell.Offset (-5, -1) .Range ( “A1”). Select 8. 이제 다른 매크로를 기록하되 B5 셀을 선택하는 대신 B5에서 시작하는 3×3 셀 블록을 선택합니다 (셀 B5 : F7 선택)
-
VBE로 전환하고 코드를 확인합니다.
ActiveCell.Offset (-5, -1) .Range ( “A1 : B3”). Select 10. 먼저 C10과 다른 셀을 선택한 상태에서 매크로를 재생합니다 (Macro2 및 Macro3의 경우 시작 셀은 6 행 또는 아래-아래 11 단계 참조)
Macro1-선택 항목을 항상 B5로 이동합니다. Macro2-선택 항목을 선택한 셀의 왼쪽으로 5 행, 1 열씩 셀로 이동합니다.
Macro3-항상 선택한 셀의 왼쪽에서 5 행부터 1 열까지 시작하는 6 개의 셀 블록을 선택합니다.
-
Macro2를 실행하지만 5 행 이상의 셀을 선택하여 오류를 강제 실행합니다. 매크로는 코드가 시작점에서 5 행 위의 셀을 선택하도록 지시하기 때문에 존재하지 않는 셀을 선택하려고합니다. 디버그를 눌러 문제를 일으킨 매크로 부분으로 이동합니다.
참고 : VBE가 디버그 모드에 있으면 문제를 일으킨 코드 줄이 노란색으로 강조 표시됩니다. 계속하기 전에 매크로를 “재설정”해야합니다. VBE 도구 모음에서 재설정 단추를 클릭하거나 실행> 재설정으로 이동하십시오. 노란색 강조 표시가 사라지고 VBE가 디버그 모드에서 나옵니다.
-
이와 같은 사용자 오류를 시도하고 예상하는 것이 중요합니다. 가장 간단한 방법은 오류를 무시하고 다음 작업으로 이동하도록 코드를 수정하는 것입니다. 다음 줄을 추가하여 수행합니다. 오류시 계속 다음… 매크로의 첫 번째 줄 바로 위에 (Sub Macro1 ()
줄 아래에 있음) 13. 이전과 같이 _Macro2_를 실행하여 시트에서 너무 높게 시작합니다. 이번에는 입력 한 줄은 실행할 수없는 코드 줄을 무시하도록 Excel에 지시합니다. 오류 메시지가없고 매크로가 할 수있는 모든 작업을 수행 한 후 종료됩니다.이 방법을 사용하여 오류를주의해서 처리하십시오. 이것은 매우 간단한 매크로입니다. A 오류가 단순히 무시되면 더 복잡한 매크로는 예상대로 작동하지 않을 것입니다. 또한 사용자는 무언가 잘못되었는지 알지 못합니다.
-
Macro2 코드를 수정하여보다 정교한 오류 처리기를 포함 시키십시오. |||| Sub Macro2 ()
On Error GoTo ErrorHandler ActiveCell.Offset (-5, -1) .Range ( “A1”). Select Exit Sub ErrorHandler :
MsgBox “시작해야합니다. 아래 행 5 “
End Sub 15. 이번에는 무언가 잘못되었을 때 사용자에게 대화 상자가 표시됩니다. 오류가없는 경우 ExitSub 행은 매크로가 작업을 완료 한 후 종료되도록합니다. 그렇지 않으면 오류가 없더라도 사용자에게 메시지가 표시됩니다.
기록 된 매크로 개선 VBA의 기본 사항을 배우는 좋은 방법은 매크로를 기록하고 Excel이 자체 코드를 작성하는 방법을 확인하는 것입니다. 하지만 기록 된 매크로에는 필요한 것보다 훨씬 많은 코드가 포함되는 경우가 많습니다. 다음 연습은 기록 된 매크로로 생성 된 코드를 개선하고 간소화하는 방법을 보여줍니다.
연습 2 : 기록 된 매크로 개선 이 연습은 매크로가 기록 될 때 필요한 것보다 더 많은 코드가 생성되는 것을 보여줍니다. 코드를 표현하기 위해 With 문을 사용하는 방법을 보여줍니다 .
-
셀 또는 셀 블록을 선택합니다.
-
매크로 레코더를 시작하고 매크로 FormatCells를 호출합니다. 상대 참조 설정은 관련이 없습니다.
-
서식> 셀> 글꼴로 이동하여 Times New Roman 및 _Red_를 선택합니다.
패턴으로 이동하여 _Yellow_를 선택합니다.
Alignment로 이동하여 Horizontal, Center Go to Number 및 _Currency_를 선택합니다.
-
확인을 클릭하고 레코더를 중지합니다.
-
워크 시트의 변경 사항을 취소하려면 실행 취소 단추 (또는 Ctrl + Z)를 클릭합니다.
-
셀 블록을 선택하고 FormatCells 매크로를 실행합니다. 취소 할 수 없습니다. 서식 결과를 확인하려면 셀을 입력하십시오.
-
코드를보십시오 :
하위 FormatSelection ()
Selection.NumberFormat = “$ , # 0.00″
선택 포함 .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .ShrinkToFit = False .MergeCells = False 선택으로 끝 .Font .Name = “Times New Roman”
하위 FormatSelection ()
Selection.NumberFormat = “$ , # 0.00″
선택 포함 .HorizontalAlignment = xlCenter End With Selection.Font .Name = “Times New Roman”
-
이제 코드를 더 수정하십시오.
하위 FormatSelection ()
선택 .NumberFormat = “$ , # 0.00″
-
대화 상자로 이동하는 대신 도구 모음 단추를 사용하여 동일한 매크로를 기록해보십시오.
글꼴을 Times New Roman_으로 변경하십시오. 글꼴 색상을 _Red_로 변경하십시오. 채우기 색상을 _Yellow_로 변경하십시오. _Center 버튼을 클릭하십시오. Currency 버튼을 클릭하십시오. 13. 코드를보십시오. 당신은 여전히 당신이 원하지 않는 많은 것들을 얻습니다. Excel에서 모든 default 설정을 기록하고 있습니다. 대부분은 삭제해도 안전합니다.
-
코드를 직접 편집하여 색상, 글꼴, 숫자 형식 등을 변경해보십시오.
연습 3 : 기록중인 매크로보기 이 연습에서는 매크로 빌드가 기록되는 것을보고 배울 수 있음을 보여줍니다. 때로는 With 문이 적절하지 않은 경우의 예이기도합니다 .
-
VBA01.xls 파일을 엽니 다.
이 워크 시트는 시각적으로 괜찮고 사용자가 이해할 수 있지만 빈 셀이 있으면 문제가 발생할 수 있습니다. 데이터를 필터링하고 어떤 일이 발생하는지 확인하십시오. 데이터> 필터> 자동 필터링으로 이동하여 지역 또는 월별로 필터링합니다. Excel이 사용자와 동일한 가정을하지 않는 것은 분명합니다. 빈 셀을 채워야합니다.
-
Excel 및 VBE 창을 세로로 배열하여 나란히 배치합니다.
-
데이터 내의 셀을 선택합니다. 빈 셀인 경우 데이터가 포함 된 셀에 인접해야합니다.
-
매크로 레코더를 시작하고 매크로 _FillEmptyCells_를 호출합니다.
상대 참조를 기록하도록 설정합니다.
-
VBE 창에서 모듈 (Module1)을 찾아 두 번 클릭합니다.
현재 통합 문서에서 편집 창을 연 다음 프로젝트 탐색기 창과 속성 창을 끕니다 (공간을 만들기 위해서만).
-
다음과 같이 새 매크로를 기록합니다.
1 단계. Ctrl + * (현재 지역 선택)
2 단계. 편집> 이동> 특수> 공백> 확인 (현재 영역의 모든 빈 셀 선택)
3 단계. = [UpArrow]를 입력 한 다음 Ctrl + Enter를 누릅니다 (선택한 모든 셀에 입력하기 위해)
4 단계. Ctrl + * (현재 지역을 다시 선택)
5 단계. Ctrl + C (선택 항목 복사-모든 방법으로 수행)
6 단계. 편집> 선택하여 붙여 넣기> 값> 확인 (데이터를 동일한 위치에 다시 붙여 넣지 만 수식은 무시)
단계 7. Esc (복사 모드 종료)
8 단계. 녹음을 중지합니다.
-
코드를보십시오 :
Sub FillEmptyCells ()
Selection.CurrentRegion.Select Selection.SpecialCells (xlCellTypeBlanks) .Select Selection.FormulaR1C1 = “= R [-1] C”
Selection.CurrentRegion.Select Selection.Copy Selection.PasteSpecial Paste : = xlValues, Operation : = xlNone, SkipBlanks : = _ False, Transpose : = False Application.CutCopyMode = False End Sub 8. 공백 및 밑줄 사용에 유의하십시오. “_”는 한 줄의 코드를 새 줄로 분할하는 것을 나타냅니다. 이 코드가 없으면 Excel은 코드를 두 개의 개별 문으로 처리합니다.
9.이 매크로는 신중한 명령으로 기록되었으므로 불필요한 코드가 거의 없습니다. _Paste Special_에서 “xlValues”라는 단어 뒤의 모든 항목을 삭제할 수 있습니다.
-
매크로를 사용해보십시오. 그런 다음 자동 필터 도구를 사용하여 차이점을 확인하십시오.