VBA 정리
VBA 폴더 내 파일 열기
엑셀 VBA 에서 폴더 내 파일을 여는 방법 중 하나인 FileDialog 를 이용한 방법을 알아보기로 한다
- 폴더 내 파일 선택 후 열기
Sub 폴더내파일열기()
Dim i As Integer '순환문 지정 변수
Dim strPath As String '지정위치
With Application.FileDialog(msoFileDialogFilePicker) '폴더선택 창에서
.AllowMultiSelect = True
.Show '폴더 선택창 띄우기
If .SelectedItems.Count = 0 Then Exit Sub '취소 선택 시 '매크로 중단
For i = 1 To .SelectedItems.Count '선택한 파일갯수만큼 진행
strPath = .SelectedItems(i) '선택한 파일경로 지정
Workbooks.Open (strPath) '파일 열기
'===========================
'작업
'===========================
Workbooks.Close '파일 닫기
Next i
End With
End Sub
FileDialog 를 이용하면 손쉽게 폴더 내 엑셀 파일들을 열어 작업을 할 수 있다
다음으로는 폴더안에 있는 모든 파일을 여는 방법을 보자
- 폴더 내 모든 파일 열기
Sub 폴더내모든파일()
Dim strPath As String '폴더의 경로를 넣을 변수
Dim fileName As String '각 파일 이름을 넣을 변수
Application.ScreenUpdating = False '화면 업데이트 (일시) 정지
With Application.FileDialog(msoFileDialogFolderPicker) '폴더선택 창에서
.Show '폴더 선택창 띄우기
If .SelectedItems.Count = 0 Then '취소 선택 시
Exit Sub '매크로 중단
Else
strPath = .SelectedItems(1) & "\" '폴더 경로를 변수에 넣음
End If
End With
fileName = Dir(strPath & "*.xls*") '(폴더내)각 엑셀파일 이름을 변수에 넣음
If fileName = "" Then '폴더에 파일이 없으면
MsgBox "폴더에 파일이 없습니다." '메시지 출력
Exit Sub '매크로 중단
End If
Do While fileName <> "" '이름이 없지 않다면, 즉, 파일이 존재하면
Workbooks.Open (strPath & fileName) '각 파일을 열기
'===============================
'작업
'===============================
ActiveWorkbook.Close False '각 파일을 저장하지 않고 닫음
fileName = Dir '다음 파일을 파일이름에 넣음
Loop '무한 반복
End Sub
'엑셀VBA > VBA 기본' 카테고리의 다른 글
VBA Range 객체: 엑셀 데이터를 다루는 가장 강력한 도구 (0) | 2025.01.24 |
---|---|
엑셀 매크로 VBA - FOR 문 사용 (0) | 2025.01.22 |
엑셀 VBA Find 함수 활용하기 - 데이터 검색과 자동화의 비밀 (1) | 2024.05.24 |
엑셀매크로 - 매크로 설정방법 (0) | 2024.05.21 |
엑셀 VBA - Collection 활용한 중복 제거 (0) | 2023.05.25 |