Event

Dialog 개체

노만e 2025. 3. 18. 06:34

엑셀 VBA에서 Application.Dialogs 개체는 엑셀에서 제공하는 기본 대화상자(Dialog)를 실행하는 기능을 제공합니다.

즉, 엑셀의 "파일 열기", "저장", "페이지 설정", "찾기/바꾸기" 등 내장된 대화상자를 VBA 코드로 실행할 때 사용됩니다.


1. 기본 문법

Application.Dialogs(대화상자 상수).Show
매개변수
설명
Dialogs(상수)
실행할 대화상자 유형 (xlDialogFileOpen, xlDialogSaveAs, xlDialogPrint 등)
Show
대화상자를 표시하고 실행 (True 반환 시 성공, False 반환 시 취소)

📌 Dialogs(xlDialogXXX).Show를 실행하면 엑셀의 기본 대화상자가 표시됨

📌 일부 대화상자는 매개변수를 사용할 수 있으며, 일부는 바로 실행됨


2. 파일 열기 대화상자 (File Open)

Sub 파일열기_대화상자()
Application.Dialogs(xlDialogOpen).Show
End Sub

📌 엑셀의 "파일 열기" 대화상자를 실행

📌 사용자가 파일을 선택하면 자동으로 엑셀에서 열림


3. 파일 저장 대화상자 (Save As)

Sub 파일저장_대화상자()
Application.Dialogs(xlDialogSaveAs).Show
End Sub

📌 엑셀의 "다른 이름으로 저장" 대화상자를 실행

📌 사용자가 파일 이름을 입력하고 저장하면 자동으로 파일이 저장됨


4. 페이지 설정 대화상자 (Page Setup)

Sub 페이지설정_대화상자()
Application.Dialogs(xlDialogPageSetup).Show
End Sub

📌 엑셀의 "페이지 설정" 대화상자를 실행하여 여백, 용지 방향 등을 설정


5. 인쇄 대화상자 (Print)

Sub 인쇄_대화상자()
Application.Dialogs(xlDialogPrint).Show
End Sub

 

📌 엑셀의 "인쇄" 대화상자를 실행

📌 사용자가 선택한 옵션대로 인쇄됨


6. 찾기 및 바꾸기 대화상자 (Find & Replace)

Sub 찾기_대화상자()
Application.Dialogs(xlDialogFormulaFind).Show
End Sub
Sub 바꾸기_대화상자()
Application.Dialogs(xlDialogFormulaReplace).Show
End Sub

Application.Dialogs(xlDialogFormulaReplace).Show End Sub

📌 "찾기" (Ctrl + F) 또는 "바꾸기" (Ctrl + H) 대화상자를 실행


7. 정렬 대화상자 (Sort)

Sub 정렬_대화상자()
Application.Dialogs(xlDialogSort).Show
End Sub

📌 엑셀의 "정렬" 대화상자를 실행

📌 사용자가 열 기준 또는 값 기준 정렬을 설정 가능


8. 워크시트 보호 대화상자 (Protect Sheet)

Sub 워크시트보호_대화상자()
Application.Dialogs(xlDialogProtectDocument).Show
End Sub

📌 엑셀의 "시트 보호" 대화상자를 실행

📌 암호를 설정하여 특정 셀만 수정 가능하도록 보호할 수 있음


9. 워크북 보호 대화상자 (Protect Workbook)

Sub 워크북보호_대화상자()
Application.Dialogs(xlDialogWorkbookProtect).Show
End Sub

📌 워크북 전체를 보호하는 대화상자 실행


10. 사용자 지정 대화상자 (Custom Views)

Sub 사용자지정뷰_대화상자()
Application.Dialogs(xlDialogCustomViews).Show
End Sub

📌 엑셀의 "사용자 지정 보기" 대화상자를 실행

📌 현재 설정을 저장하고 필요할 때 불러올 수 있음


11. 이름 관리자 대화상자 (Define Name)

Sub 이름관리자_대화상자()
Application.Dialogs(xlDialogDefineName).Show
End Sub

📌 엑셀의 "이름 관리자" 대화상자를 실행

📌 범위 이름을 설정하거나 관리할 수 있음


12. 데이터 유효성 검사 대화상자 (Data Validation)

Sub 데이터유효성검사_대화상자()
Application.Dialogs(xlDialogDataValidation).Show
End Sub

 

📌 엑셀의 "데이터 유효성 검사" 대화상자를 실행

📌 셀 입력값을 제한하는 조건을 설정 가능


13. 외부 데이터 가져오기 (Import External Data)

Sub 외부데이터가져오기_대화상자()
Application.Dialogs(xlDialogImport).Show
End Sub

📌 엑셀의 "외부 데이터 가져오기" 대화상자를 실행

📌 Access, SQL, 웹 데이터 등을 가져올 수 있음


14. 목록 자동 필터 대화상자 (AutoFilter)

Sub 자동필터_대화상자()
Application.Dialogs(xlDialogFilterAdvanced).Show
End Sub

📌 엑셀의 "고급 필터" 대화상자를 실행

📌 필터를 설정하여 특정 데이터만 표시 가능


15. 엑셀 옵션 (Options)

Sub 엑셀옵션_대화상자()
Application.Dialogs(xlDialogOptionsGeneral).Show
End Sub

📌 엑셀의 "옵션" 창을 실행하여 환경 설정을 변경 가능


📌 주요 대화상자 목록 (xlDialog 상수)

기능
VBA 코드 (Application.Dialogs(xlDialogXXX).Show)
파일 열기
xlDialogOpen
파일 저장
xlDialogSaveAs
페이지 설정
xlDialogPageSetup
인쇄
xlDialogPrint
찾기 (Ctrl + F)
xlDialogFormulaFind
바꾸기 (Ctrl + H)
xlDialogFormulaReplace
정렬
xlDialogSort
워크시트 보호
xlDialogProtectDocument
워크북 보호
xlDialogWorkbookProtect
사용자 지정 보기
xlDialogCustomViews
이름 관리자
xlDialogDefineName
데이터 유효성 검사
xlDialogDataValidation
외부 데이터 가져오기
xlDialogImport
목록 자동 필터
xlDialogFilterAdvanced
엑셀 옵션
xlDialogOptionsGeneral

🛠 Dialog와 GetOpenFilename/GetSaveAsFilename 비교

기능
Application.Dialogs
Application.GetOpenFilename / Application.GetSaveAsFilename
파일 열기/저장 대화상자 표시
파일 직접 열거나 저장
❌ (파일 경로만 반환)
사용자에게 대화상자 표시
입력받은 파일 경로 활용 가능
❌ (즉시 실행)
✅ (경로 반환 후 활용 가능)

📌 파일 경로를 활용하려면 GetOpenFilename 또는 GetSaveAsFilename이 더 유용

📌 즉시 실행하고 설정을 적용하려면 Dialogs(xlDialogXXX).Show 사용