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

마스터 Excel VBA:매크로, 모듈 및 프로시저 이해

마스터 Excel VBA:매크로, 모듈 및 프로시저 이해

 

Excel VBA(Visual Basic for Application)는 강력한 프로그래밍 언어입니다. VBA를 사용하면 작업을 자동화하고, 사용자 정의 기능을 만들고, 스프레드시트 기능을 향상시킬 수 있습니다. VBA로 시작하는 경우 매크로, 모듈, 프로시저와 같은 주요 용어를 이해하는 것이 필수적입니다. 이러한 개념은 서로 연결되어 있지만 다른 목적으로 사용됩니다.

이 자습서에서는 Excel VBA 용어인 매크로, 모듈, 프로시저에 대해 설명합니다. 시작하는 데 도움이 되는 설명, 예, 실용적인 팁을 통해 세부적으로 설명하겠습니다.

계속하려면 개발자 탭이 활성화된 Excel(2007 이후 모든 버전)이 필요합니다.

  • 표시되지 않으면 파일로 이동하세요. 탭>> 옵션 선택>> 리본 사용자 정의를 선택합니다.>> 개발자를 선택하세요. 오른쪽에

1. 매크로란 무엇입니까?

매크로는 VBA에 대한 가장 사용자 친화적인 진입점입니다. 본질적으로 Excel에서 반복적인 작업을 자동화하는 기록되거나 작성된 지침 세트입니다. Excel의 매크로 레코더를 사용하면 깊은 프로그래밍 지식 없이도 매크로를 만들 수 있습니다. 셀 서식 지정, 수식 삽입 등의 작업을 캡처하여 VBA 코드로 변환합니다.

실제로 사람들이 "매크로를 기록했습니다" 또는 "매크로를 작성했습니다"라고 말하는 것은 일반적으로 모듈에 저장된 Sub 프로시저에 대해 말하는 것입니다. Excel의 매크로 레코더는 Sub 프로시저를 자동으로 생성합니다.

주요 특징:

  • 목적: 작업을 자동화하여 시간을 절약하세요. 예를 들어 매크로를 사용하면 클릭 한 번으로 데이터를 정렬하고, 필터를 적용하고, 보고서를 생성할 수 있습니다.
  • 만드는 방법:
    • 녹음: 간단한 작업에는 매크로 레코더를 사용하세요.
    • 작성: 더 복잡한 논리를 위해 VBA 편집기에서 수동으로 코드를 편집하거나 작성하세요.
  • 범위: 매크로는 일반적으로 통합 문서에 저장되며 버튼, 바로 가기 또는 매크로 대화 상자에서 실행할 수 있습니다.
  • 제한사항: 기록된 매크로에는 불필요한 코드(예:셀 선택)가 포함되는 경우가 많으며 셀 참조가 복잡해 보일 수 있으므로 수동으로 정리하는 경우가 많습니다.

매크로 ≠ VBA: VBA는 프로그래밍 언어입니다. 매크로는 VBA를 사용하여 구축된(또는 VBA에 기록된) 실행 가능한 자동화입니다.

예:간단한 매크로 생성 및 실행

  • 개발자로 이동 탭>> 매크로 기록을 선택하세요.
  • 이름을 ApplyFormat으로 지정하세요. (공백 없음)>> 원하는 경우 바로가기 지정>> 확인을 클릭합니다.

마스터 Excel VBA:매크로, 모듈 및 프로시저 이해

  • 작업 수행:
    • 헤더 선택
    • 으로 이동 탭>> 굵게 선택
    • 채우기 적용 색상 및 글꼴 색상
  • 녹화 중지:개발자로 이동 탭>> 녹화 중지를 클릭하세요.

마스터 Excel VBA:매크로, 모듈 및 프로시저 이해

이면에서 Excel은 다음과 같은 VBA 코드를 생성합니다.

Sub ApplyFormat()
'
' ApplyFormat Macro
'
' Keyboard Shortcut: Ctrl+Shift+F
'
 Range("A1:G1").Select
 Selection.Font.Bold = True
 With Selection.Interior
 .Pattern = xlSolid
 .PatternColorIndex = xlAutomatic
 .ThemeColor = xlThemeColorAccent6
 .TintAndShade = -0.249977111117893
 .PatternTintAndShade = 0
 End With
 With Selection.Font
 .ThemeColor = xlThemeColorDark1
 .TintAndShade = 0
 End With
End Sub
  • 프로시저의 일종인 Sub(Subroutine의 약자)입니다.

마스터 Excel VBA:매크로, 모듈 및 프로시저 이해

매크로 실행:

  • 개발자로 이동 탭>> 매크로 선택
  • 형식 적용을 선택합니다.>> 실행을 선택하세요.
  • 또는 Ctrl+Shift+F를 누르세요.

마스터 Excel VBA:매크로, 모듈 및 프로시저 이해

이제 코딩 전문 지식 없이도 빠른 자동화를 위해 매크로를 생성하고 사용할 수 있습니다.

2. 절차란 무엇입니까?

절차는 가장 기본적인 단위입니다. 특정 작업을 수행하는 VBA 코드 블록입니다. Excel을 실행할 때 따르는 일련의 지침이라고 생각하세요. 절차는 실제 논리가 존재하는 곳입니다. 다른 언어의 함수나 메서드라고 생각하세요.

주요 특징:

  • 유형:
    • 하위 프로시저(하위): 작업을 수행하지만 값을 반환하지 않습니다. 이것이 대부분의 사람들이 VBA 맥락에서 "매크로"를 의미하는 것입니다. Sub로 시작해서 End Sub로 끝납니다.
    • 함수 절차(함수): 계산을 수행하고 값을 반환합니다. Function으로 시작해서 End Function으로 끝납니다. 워크시트의 맞춤 수식에 유용합니다.
  • 목적: 재사용 가능한 코드를 생성합니다. 절차에는 루프, 조건, 변수 및 Excel 개체(예:셀 또는 차트)와의 상호 작용이 포함될 수 있습니다.
  • 범위: 공개(어디서나 액세스 가능) 또는 비공개(모듈로 제한)일 수 있습니다.
  • 매개변수: 유연성을 위해 입력(인수)을 허용할 수 있습니다.

예:하위 프로시저와 함수 프로시저

  • 개발자로 이동 탭>> Visual Basic 선택 (또는 Alt+F11을 누르세요. )
  • 삽입을 클릭하세요.>> 모듈을 선택합니다.

하위 프로시저(매크로와 같은):

Sub ClearFormatting()
 Range("A1:G1").ClearFormats
 MsgBox "Formatting is cleared"
End Sub
  • 코드를 실행하여 서식을 지운 후 "서식이 지워졌습니다"라는 메시지를 표시합니다.

마스터 Excel VBA:매크로, 모듈 및 프로시저 이해

기능 절차:

Function Multiply(num1 As Integer, num2 As Integer) As Integer
 Multiply = num1 * num2
End Function
  • 값을 곱하려면 =Multiply(E2,F2)와 같은 셀에서 사용하세요.

마스터 Excel VBA:매크로, 모듈 및 프로시저 이해

매크로와의 관계: 모든 매크로는 Sub 프로시저이지만 모든 Sub 프로시저가 기록된 매크로는 아닙니다. 단순한 녹음을 넘어서는 고급 Sub 프로시저를 작성할 수 있습니다.

체계적이고 재사용 가능한 코드가 필요한 경우 절차를 사용하세요. 더 나은 구성을 위해 복잡한 작업을 여러 절차로 분할하세요.

3. 모듈이란 무엇입니까?

모듈은 하나 이상의 프로시저를 저장하는 컨테이너입니다. VBA 코드를 작성하고 구성하는 VBA 편집기의 파일입니다. 코드를 정리하는 폴더와 같아서 관리와 재사용이 더 쉬워집니다.

모듈 유형:

  • 표준 모듈: 범용 코드를 작성하는 가장 일반적인 유형입니다.
    • 이러한 항목은 VBA 프로젝트 탐색기에 'Module1', 'Module2' 등으로 표시됩니다.
    • VBA 편집기 열기>> 삽입 클릭>> 모듈을 선택합니다. .
  • 통합문서 모듈(ThisWorkbook): 통합 문서 이벤트(열기, 닫기 전 등)와 연결된 코드를 보유합니다.
    • 통합 문서 열기 또는 닫기와 같은 작업에 응답하는 이벤트 프로시저
  • 워크시트 모듈(Sheet1, Sheet2 등): 특정 시트에 부착된 특수 모듈입니다.
    • 시트 클릭과 같은 작업에 응답하는 이벤트 프로시저가 포함되어 있으며 시트가 변경되면 코드가 실행됩니다.
  • 수업 모듈: 이러한 모듈은 사용자 정의 개체를 만드는 데 사용되는 고급 모듈이지만 시작할 때는 필요하지 않습니다. 이는 사용자 정의 클래스 생성과 같은 객체 지향 프로그래밍에 사용됩니다.
  • 사용자 양식 모듈: 사용자 정의 대화 상자를 디자인하기 위한 것입니다.

마스터 Excel VBA:매크로, 모듈 및 프로시저 이해

예:모듈 작업

  • 개발자로 이동 탭>> Visual Basic 선택 (또는 Alt+F11을 누르세요. )
  • 프로젝트 탐색기(왼쪽 창)에서
    • 통합문서를 마우스 오른쪽 버튼으로 클릭하고>> 삽입을 클릭합니다.>> 모듈을 선택합니다.

마스터 Excel VBA:매크로, 모듈 및 프로시저 이해

  • 프로시저를 복사하여 붙여넣으세요.
Sub FormatSalesReport()
 Dim ws As Worksheet
 Set ws = ActiveSheet
 Dim lastRow As Long
 lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
 ws.Range("A1:H1").Font.Bold = True
 ws.Range("A1:H" & lastRow).Borders.LineStyle = xlContinuous
 Dim i As Long
 For i = 2 To lastRow
 If ws.Cells(i, "H").Value > 100 Then ws.Cells(i, "H").Interior.Color = RGB(0, 255, 0)
 Next i
End Sub
  • 이 VBA 코드는 데이터 형식을 지정하고 H열에서 100보다 큰 값을 강조표시합니다.
  • 통합문서 저장
  • 이제 이 절차를 매크로로 사용할 수 있습니다
  • F5 누르기 또는 실행을 클릭하세요.

마스터 Excel VBA:매크로, 모듈 및 프로시저 이해

매크로 및 절차와의 관계:

  • 모듈 보류 절차
  • 매크로는 하위 프로시저입니다. 모듈에 저장
  • 모듈이 없는 매크로? 모든 VBA 코드가 특정 유형의 모듈 내에 있기 때문에 불가능합니다.

사용 시기: 모든 VBA 프로젝트의 경우. 작은 작업을 위해 하나의 모듈로 시작하세요. 복잡해지지 않도록 더 큰 것에는 여러 개를 사용하세요.

함께 맞추는 방법:매크로 → 절차 → 모듈

매크로는 Sub 프로시저에 대한 사용자용 용어입니다. 프로시저는 코드 블록입니다. 조직을 위한 모듈 그룹 절차

워크플로 예:

  • 매크로 기록 → 새 모듈(종종 "Module1")에 Sub 프로시저를 생성합니다.
  • 절차를 수정하여 개선
  • 동일한 모듈에 더 많은 절차를 추가하거나 새 모듈을 생성하세요

마스터 Excel VBA:매크로, 모듈 및 프로시저 이해

모범 사례 및 팁

  • 명명 규칙: Sub Macro1() 대신 Sub CalculateTotalSales()와 같은 설명적인 이름을 사용하십시오. 공백을 피하세요. CamelCase를 사용하세요.
  • 오류 처리: 오류 시 다음 재개 추가 또는 오류 시 GoTo ErrorHandler 더욱 강력하게 만드는 절차를 밟고 있습니다.
  • 보안 :매크로는 코드를 실행할 수 있으므로 신뢰할 수 있는 소스에서만 활성화하세요(파일>> 옵션>> 보안 센터>> 매크로 설정). ).
  • 디버깅: F8을 사용하여 VBA 편집기에서 코드를 단계별로 실행하세요.
  • 고급 팁: 통합 문서 전체에서 코드를 재사용하려면 모듈(.bas 파일)을 내보냅니다.
  • 일반적인 함정: Excel 매크로를 Office 스크립트(최신 Excel 버전에서는 JavaScript 기반)와 혼동하지 마십시오. VBA는 데스크톱 자동화에 더욱 강력합니다.

결론

이 튜토리얼을 따르면 Excel VBA 용어인 매크로, 모듈, 프로시저를 이해할 수 있습니다. 이러한 용어를 이해하면 VBA를 효율적으로 사용하는 데 도움이 됩니다. VBA 문서를 탐색하고, 다른 Excel 사용자와 통신하고, 코드를 보다 효과적으로 구성하는 데 도움이 됩니다. 매크로를 기록하여 실행 중인 절차를 확인한 다음 프로젝트가 성장함에 따라 이를 모듈로 구성합니다. 자신의 스프레드시트에서 간단한 작업을 자동화하여 연습해 보면 VBA의 강력한 기능을 빠르게 확인할 수 있습니다.

솔루션이 포함된 무료 고급 Excel 연습을 받아보세요!