Excel VBA(Visual Basic for Applications)는 작업을 자동화하고 Excel 스프레드시트에 기능을 추가할 수 있는 강력한 프로그래밍 언어입니다. VBA를 사용하면 매크로를 작성하여 반복적인 작업을 수행하고, 사용자 정의 기능을 만들고, 스프레드시트에 대화형 기능을 추가할 수 있습니다. 초보자이든 고급 Excel 사용자이든 VBA는 Excel 도구 키트에 포함할 수 있는 유용한 도구입니다.
사용처
VBA는 데이터 분석, 보고 및 스프레드시트 자동화와 같은 Excel의 여러 영역에서 사용할 수 있습니다. VBA를 사용하면 한 시트에서 다른 시트로 데이터 복사, 셀 서식 지정 및 데이터 필터링과 같은 반복 작업을 수행하는 매크로를 만들 수 있습니다. VBA를 사용하여 SUM 및 AVERAGE와 같은 기본 제공 함수처럼 계산을 수행하고 값을 반환하는 사용자 지정 함수를 만들 수도 있습니다.
정의
VBA는 작업을 자동화하고 Excel 스프레드시트에 기능을 추가하는 데 사용되는 프로그래밍 언어입니다. 매크로는 한 시트에서 다른 시트로 데이터 복사와 같은 특정 작업을 수행하는 일련의 명령입니다. 함수는 SUM 또는 AVERAGE와 같은 기본 제공 함수와 유사하게 값을 반환하는 VBA 코드입니다.
공식적인 사용법
VBA는 Microsoft Office 제품군의 일부로 Microsoft에서 제공하는 공식 도구입니다. Windows용 Excel, Mac용 Excel 및 Excel Online을 비롯한 모든 버전의 Excel에서 사용할 수 있습니다.
Excel VBA 사용의 15가지 예
1. 한 시트에서 다른 시트로 데이터를 복사하는 매크로 만들기
Sub CopyData()
Sheets("Sheet1").Select
Range("A1:C10").Select
Selection.Copy
Sheets("Sheet2").Select
Range("A1").Select
ActiveSheet.Paste
End Sub
이 매크로는 Sheet1의 셀 A1에서 C10까지 데이터를 복사하여 Sheet2의 A1 셀에 붙여넣습니다.
2. 특정 색상으로 셀 서식을 지정하는 매크로 만들기
Sub FormatCells()
Range("A1:C10").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
이 매크로는 셀 A1에서 C10까지의 서식을 노란색으로 지정합니다.
3. 데이터 필터링을 위한 매크로 생성
Sub FilterData()
Sheets("Sheet1").Select
Range("A1:C10").Select
ActiveSheet.Range("$A$1:$C$10").AutoFilter Field:=2, Criteria1:="apple"
End Sub
이 매크로는 B 열의 "apple" 값을 기준으로 Sheet1의 데이터를 필터링합니다.
4. 팩토리얼 함수 만들기
Function Factorial(num As Integer) As Double
If num <= 1 Then
Factorial = 1
Else
Factorial = num * Factorial(num - 1)
End If
End Function
이 함수는 재귀 알고리즘을 사용하여 팩토리얼을 계산합니다.
5. 워크시트 인쇄를 위한 매크로 만들기
Sub PrintWorksheet()
Sheets("Sheet1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub
이 매크로는 한 부씩 인쇄된 Sheet1의 단일 복사본을 인쇄합니다.
6. 워크시트를 PDF로 저장하기 위한 매크로 생성
Sub SaveAsPDF()
Sheets("Sheet1").Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="Sheet1.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub
이 매크로는 Sheet1을 "Sheet1.pdf"라는 이름의 PDF 파일로 저장합니다.
7. 빈 행을 삭제하는 매크로 만들기
Sub DeleteEmptyRows()
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = lastRow To 1 Step -1
If Application.CountA(Rows(i)) = 0 Then
Rows(i).Delete
End If
Next i
End Sub
이 매크로는 활성 시트의 모든 빈 행을 삭제합니다.
8. 현재 날짜를 삽입하는 매크로 만들기
Sub InsertDate()
Range("A1").Select
ActiveCell.Value = Date
End Sub
이 매크로는 현재 날짜를 A1 셀에 삽입합니다.
9. 값이 50보다 큰 셀에 굵게 서식을 적용하는 매크로 만들기
Sub BoldCells()
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lastRow
If Cells(i, 1).Value > 50 Then
Cells(i, 1).Font.Bold = True
End If
Next i
End Sub
이 매크로는 값이 50보다 큰 열 A의 셀에 굵은 서식을 적용합니다.
10. 셀 범위에 테두리를 적용하는 매크로 만들기
Sub ApplyBorder()
Range("A1:C10").Select
With Selection.Borders
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub
이 매크로는 셀 A1에서 C10까지 얇고 연속적인 테두리를 적용합니다.
11. 데이터를 내림차순으로 정렬하는 매크로 만들기
Sub SortData()
Range("A1:C10").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("B1:B10"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A1:C10")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
이 매크로는 B열의 값을 기준으로 Sheet1의 데이터를 내림차순으로 정렬합니다.
12. 워크시트를 여러 통합 문서로 분할하는 매크로 만들기
Sub SplitWorkbook()
Dim wb As Workbook
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
For Each ws In ThisWorkbook.Sheets
ws.Copy
Set wb = ActiveWorkbook
wb.SaveAs Filename:=ws.Name & ".xls"
wb.Close
Next ws
End Sub
이 매크로는 활성 통합 문서를 각 워크시트에 대한 별도의 통합 문서로 분할하며 각 통합 문서는 해당 워크시트와 동일한 이름을 가집니다.
13. 열에서 비어 있지 않은 셀을 선택하는 매크로 만들기
Sub SelectNonBlankCells()
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lastRow
If Cells(i, 1).Value <> "" Then
Cells(i, 1).Select
End If
Next i
End Sub
이 매크로는 열 A에서 비어 있지 않은 모든 셀을 선택합니다.
14. 범위의 값을 합산하는 매크로 만들기
Sub SumValues()
Dim sum As Double
sum = Application.WorksheetFunction.Sum(Range("A1:A10"))
MsgBox "The sum of values in range A1:A10 is " & sum
End Sub
이 매크로는 A1:A10 범위의 값 합계를 계산하고 결과를 메시지 상자에 표시합니다.
15. 워크시트의 모든 도형을 삭제하는 매크로 만들기
Sub DeleteShapes()
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
shp.Delete
Next shp
End Sub
이 매크로는 활성 시트의 모든 모양을 삭제합니다.
결론
결론적으로 VBA(Visual Basic for Applications)는 작업을 자동화하고 프로그램 기능을 사용자 지정할 수 있는 Microsoft Excel의 강력한 도구입니다. 초보자이든 고급 사용자이든 이 문서에서 제공하는 예제는 고유한 매크로를 만들고 Excel에서 VBA의 전체 기능을 탐색할 수 있는 좋은 출발점을 제공합니다. 작업을 자동화하는 기능을 사용하면 장기적으로 많은 시간과 노력을 절약할 수 있습니다.
'Office 사용법' 카테고리의 다른 글
엑셀 MIN, MAX 사용법 (0) | 2023.02.06 |
---|---|
엑셀 ROUNDUP 사용법 (0) | 2023.02.05 |
엑셀 LOOKUP 사용법 (0) | 2023.02.03 |
엑셀 IFERROR 사용법 (0) | 2023.02.03 |
엑셀 INDIRECT 사용법 (0) | 2023.02.02 |
댓글