Excel 및 VBE (Visual Basic Editor)를 엽니 다. 변경되지 않은 경우 VBE 창에는 ProjectExplorer 창과 Properties 창이 포함됩니다 (보기 메뉴에서 액세스 할 수 있음).

프로젝트 탐색기 : 파일 관리자처럼 작동합니다. 통합 문서의 코드를 탐색하는 데 도움이됩니다.

속성 창 : 현재 통합 문서 (예 : Book1)의 현재 활성 개체 (예 : Sheet1)의 속성을 표시합니다.

이 기사에서는 Excel에서 매크로 기록이 얼마나 쉬운 지 배웁니다.

연습 1 : 매크로 기록.

이 연습은 매크로가 기록 될 때 어떤 일이 발생하는지 보여주고 절대 참조와 상대 참조 기록의 차이점을 보여줍니다 .

  1. 새 통합 문서의 빈 워크 시트에서 C10 셀을 선택합니다. 2. This Workbook_에 매크로를 저장하는 옵션을 사용하여 매크로 레코더를 시작합니다. 이 시점에서 VBE는 새 _Modules 폴더를 만듭니다. 가서 그것을 보는 것은 매우 안전합니다. 당신의 행동은 기록되지 않을 것입니다. 폴더 옆에있는 [+]를 클릭하고 VBE가 폴더에 모듈을 배치하고 이름을 _Module1_로 지정했는지 확인합니다. 모듈 아이콘을 두 번 클릭하여 코드 창을 엽니 다. Excel로 다시 전환하십시오.

  2. Stop Recording 도구 모음의 Relative Reference 버튼이 눌러져 있지 않은지 확인합니다.

  3. B5 셀을 선택하고 레코더를 중지합니다.

  4. VBE로 전환하고 코드를 확인합니다.

Range ( “B5”). 6을 선택합니다. 이제 정확히 동일한 방식으로 다른 매크로를 기록합니다. 이번에는 Relative Reference 버튼을 누른 상태로 기록합니다.

  1. VBE로 전환하고 코드를 확인합니다.

ActiveCell.Offset (-5, -1) .Range ( “A1”). Select 8. 이제 다른 매크로를 기록하되 B5 셀을 선택하는 대신 B5에서 시작하는 3×3 셀 블록을 선택합니다 (셀 B5 : F7 선택)

  1. VBE로 전환하고 코드를 확인합니다.

ActiveCell.Offset (-5, -1) .Range ( “A1 : B3”). Select 10. 먼저 C10과 다른 셀을 선택한 상태에서 매크로를 재생합니다 (Macro2 및 Macro3의 경우 시작 셀은 6 행 또는 아래-아래 11 단계 참조)

Macro1-선택 항목을 항상 B5로 이동합니다. Macro2-선택 항목을 선택한 셀의 왼쪽으로 5 행, 1 열씩 셀로 이동합니다.

Macro3-항상 선택한 셀의 왼쪽에서 5 행부터 1 열까지 시작하는 6 개의 셀 블록을 선택합니다.

  1. Macro2를 실행하지만 5 행 이상의 셀을 선택하여 오류를 강제 실행합니다. 매크로는 코드가 시작점에서 5 행 위의 셀을 선택하도록 지시하기 때문에 존재하지 않는 셀을 선택하려고합니다. 디버그를 눌러 문제를 일으킨 매크로 부분으로 이동합니다.

참고 : VBE가 디버그 모드에 있으면 문제를 일으킨 코드 줄이 노란색으로 강조 표시됩니다. 계속하기 전에 매크로를 “재설정”해야합니다. VBE 도구 모음에서 재설정 단추를 클릭하거나 실행> 재설정으로 이동하십시오. 노란색 강조 표시가 사라지고 VBE가 디버그 모드에서 나옵니다.

  1. 이와 같은 사용자 오류를 시도하고 예상하는 것이 중요합니다. 가장 간단한 방법은 오류를 무시하고 다음 작업으로 이동하도록 코드를 수정하는 것입니다. 다음 줄을 추가하여 수행합니다. 오류시 계속 다음… 매크로의 첫 번째 줄 바로 위에 (Sub Macro1 ()

줄 아래에 있음) 13. 이전과 같이 _Macro2_를 실행하여 시트에서 너무 높게 시작합니다. 이번에는 입력 한 줄은 실행할 수없는 코드 줄을 무시하도록 Excel에 지시합니다. 오류 메시지가없고 매크로가 할 수있는 모든 작업을 수행 한 후 종료됩니다.이 방법을 사용하여 오류를주의해서 처리하십시오. 이것은 매우 간단한 매크로입니다. A 오류가 단순히 무시되면 더 복잡한 매크로는 예상대로 작동하지 않을 것입니다. 또한 사용자는 무언가 잘못되었는지 알지 못합니다.

  1. 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 문을 사용하는 방법을 보여줍니다 .

  1. 셀 또는 셀 블록을 선택합니다.

  2. 매크로 레코더를 시작하고 매크로 FormatCells를 호출합니다. 상대 참조 설정은 관련이 없습니다.

  3. 서식> 셀> 글꼴로 이동하여 Times New Roman 및 _Red_를 선택합니다.

패턴으로 이동하여 _Yellow_를 선택합니다.

Alignment로 이동하여 Horizontal, Center Go to Number 및 _Currency_를 선택합니다.

  1. 확인을 클릭하고 레코더를 중지합니다.

  2. 워크 시트의 변경 사항을 취소하려면 실행 취소 단추 (또는 Ctrl + Z)를 클릭합니다.

  3. 셀 블록을 선택하고 FormatCells 매크로를 실행합니다. 취소 할 수 없습니다. 서식 결과를 확인하려면 셀을 입력하십시오.

  4. 코드를보십시오 :

하위 FormatSelection ()

Selection.NumberFormat = “$ , # 0.00″

선택 포함 .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .ShrinkToFit = False .MergeCells = False 선택으로 끝 .Font .Name = “Times New Roman”

Size = 10 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = 3 End With Selection.Interior .ColorIndex = 6 .Pattern = xlSolid .PatternColorIndex = xlAutomatic End With End Sub 8. 기록 된 모든 추가 지침을 기록해 둡니다. 다음 만 남도록 코드 줄을 삭제합니다.

하위 FormatSelection ()

Selection.NumberFormat = “$ , # 0.00″

선택 포함 .HorizontalAlignment = xlCenter End With Selection.Font .Name = “Times New Roman”

ColorIndex = 3 End With Selection.Interior .ColorIndex = 6 End With End Sub 9. 매크로를 실행하여 편집 된 코드를 테스트합니다. 여전히 이전처럼 작동합니다.
  1. 이제 코드를 더 수정하십시오.

하위 FormatSelection ()

선택 .NumberFormat = “$ , # 0.00″

Font.ColorIndex = 3 .Interior.ColorIndex = 6 End With End Sub 11. 매크로를 테스트합니다. 모든 것이 여전히 작동하며 코드가 훨씬 빠르게 실행됩니다.
  1. 대화 상자로 이동하는 대신 도구 모음 단추를 사용하여 동일한 매크로를 기록해보십시오.

글꼴을 Times New Roman_으로 변경하십시오. 글꼴 색상을 _Red_로 변경하십시오. 채우기 색상을 _Yellow_로 변경하십시오. _Center 버튼을 클릭하십시오. Currency 버튼을 클릭하십시오. 13. 코드를보십시오. 당신은 여전히 ​​당신이 원하지 않는 많은 것들을 얻습니다. Excel에서 모든 default 설정을 기록하고 있습니다. 대부분은 삭제해도 안전합니다.

  1. 코드를 직접 편집하여 색상, 글꼴, 숫자 형식 등을 변경해보십시오.

연습 3 : 기록중인 매크로보기 이 연습에서는 매크로 빌드가 기록되는 것을보고 배울 수 있음을 보여줍니다. 때로는 With 문이 적절하지 않은 경우의 예이기도합니다 .

  1. VBA01.xls 파일을 엽니 다.

이 워크 시트는 시각적으로 괜찮고 사용자가 이해할 수 있지만 빈 셀이 있으면 문제가 발생할 수 있습니다. 데이터를 필터링하고 어떤 일이 발생하는지 확인하십시오. 데이터> 필터> 자동 필터링으로 이동하여 지역 또는 월별로 필터링합니다. Excel이 사용자와 동일한 가정을하지 않는 것은 분명합니다. 빈 셀을 채워야합니다.

  1. Excel 및 VBE 창을 세로로 배열하여 나란히 배치합니다.

  2. 데이터 내의 셀을 선택합니다. 빈 셀인 경우 데이터가 포함 된 셀에 인접해야합니다.

  3. 매크로 레코더를 시작하고 매크로 _FillEmptyCells_를 호출합니다.

상대 참조를 기록하도록 설정합니다.

  1. VBE 창에서 모듈 (Module1)을 찾아 두 번 클릭합니다.

현재 통합 문서에서 편집 창을 연 다음 프로젝트 탐색기 창과 속성 창을 끕니다 (공간을 만들기 위해서만).

  1. 다음과 같이 새 매크로를 기록합니다.

1 단계. Ctrl + * (현재 지역 선택)

2 단계. 편집> 이동> 특수> 공백> 확인 (현재 영역의 모든 빈 셀 선택)

3 단계. = [UpArrow]를 입력 한 다음 Ctrl + Enter를 누릅니다 (선택한 모든 셀에 입력하기 위해)

4 단계. Ctrl + * (현재 지역을 다시 선택)

5 단계. Ctrl + C (선택 항목 복사-모든 방법으로 수행)

6 단계. 편집> 선택하여 붙여 넣기> 값> 확인 (데이터를 동일한 위치에 다시 붙여 넣지 만 수식은 무시)

단계 7. Esc (복사 모드 종료)

8 단계. 녹음을 중지합니다.

  1. 코드를보십시오 :

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”라는 단어 뒤의 모든 항목을 삭제할 수 있습니다.

  1. 매크로를 사용해보십시오. 그런 다음 자동 필터 도구를 사용하여 차이점을 확인하십시오.