엑셀 VBA에서 Add 메서드는 새로운 객체(워크시트, 워크북, 차트, 테이블 등)를 추가할 때 사용됩니다.
즉, 데이터나 구조를 확장할 때 유용합니다.
1. 기본 문법
객체.Add(인수)
|
📌 Add 메서드는 객체 유형에 따라 다양한 방식으로 사용됩니다.
📌 Sheets.Add → 새로운 시트 추가
📌 Workbooks.Add → 새로운 엑셀 파일(워크북) 추가
📌 Range("A1").ListObject.Add → 새로운 테이블 추가
📌 ChartObjects.Add → 새로운 차트 추가
2. 워크시트 추가
📌 새로운 워크시트 추가
Sub 워크시트_추가()
Sheets.Add
End Sub
|
📌 현재 워크북에 새 시트 추가 (기본적으로 첫 번째 시트 앞에 삽입됨)
📌 특정 위치에 워크시트 추가
Sub 특정위치_워크시트_추가()
Sheets.Add After:=Sheets("Sheet1") ' Sheet1 뒤에 새 시트 추가
End Sub
|
📌 Sheet1 뒤에 새로운 시트 삽입
📌 새 시트 추가 후 이름 변경
Sub 이름_있는_워크시트_추가()
Dim ws As Worksheet
Set ws = Sheets.Add
ws.Name = "새로운시트"
End Sub
|
📌 새로운 시트를 추가하고 "새로운시트"로 이름 변경
3. 워크북 추가
📌 새로운 엑셀 파일(워크북) 추가
Sub 새_워크북_추가()
Workbooks.Add
End Sub
|
📌 새로운 엑셀 파일(워크북) 생성
📌 새 워크북을 저장 후 열기
Sub 새_워크북_추가_저장()
Dim wb As Workbook
Set wb = Workbooks.Add
wb.SaveAs "C:\Users\사용자\Desktop\새파일.xlsx"
End Sub
|
📌 새로운 워크북을 "새파일.xlsx"로 저장
4. 차트 추가
📌 새로운 차트 추가
Sub 차트_추가()
Dim ch As ChartObject
Set ch = ActiveSheet.ChartObjects.Add(Left:=50, Top:=50, Width:=400, Height:=300)
With ch.Chart
.ChartType = xlColumnClustered
.SetSourceData Source:=Range("A1:B5")
.HasTitle = True
.ChartTitle.Text = "매출 현황"
End With
End Sub
|
📌 새 차트를 생성하고 A1:B5 데이터를 이용해 막대 그래프를 만듦
5. 테이블(리스트 객체) 추가
📌 지정된 범위에 테이블 추가
Sub 테이블_추가()
Dim ws As Worksheet
Dim tbl As ListObject
Set ws = ActiveSheet
Set tbl = ws.ListObjects.Add(xlSrcRange, ws.Range("A1:D5"), , xlYes)
tbl.Name = "매출표"
End Sub
|
📌 A1:D5 범위를 테이블로 변환하고 이름을 "매출표"로 설정
6. 컬렉션(Collection) 객체에 값 추가
📌 컬렉션에 데이터 추가
Sub 컬렉션_추가()
Dim col As Collection
Set col = New Collection
col.Add "사과"
col.Add "바나나"
col.Add "오렌지"
MsgBox col(1) ' "사과" 출력
End Sub
|
📌 컬렉션 객체를 생성하고 값 추가
7. 딕셔너리(Dictionary) 객체에 값 추가
📌 Dictionary 객체 활용
Sub 딕셔너리_추가()
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
dict.Add "Apple", "사과"
dict.Add "Banana", "바나나"
MsgBox dict("Apple") ' "사과" 출력
End Sub
|
📌 딕셔너리 객체를 생성하고 키-값 추가
📝 정리
기능
|
VBA 코드
|
새로운 워크시트 추가
|
Sheets.Add
|
특정 위치에 시트 추가
|
Sheets.Add After:=Sheets("Sheet1")
|
새로운 워크북 추가
|
Workbooks.Add
|
새로운 차트 추가
|
ChartObjects.Add(Left:=50, Top:=50, Width:=400, Height:=300)
|
지정된 범위에 테이블 추가
|
ws.ListObjects.Add(xlSrcRange, ws.Range("A1:D5"), , xlYes)
|
컬렉션에 데이터 추가
|
col.Add "사과"
|
딕셔너리에 데이터 추가
|
dict.Add "Apple", "사과"
|
🔥 VBA의 Add를 활용하면 동적으로 데이터를 추가하고 자동화할 수 있습니다! 🚀