ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Excel 매크로 (VBA) - 024. 엑셀 파일 열기
    카테고리 없음 2023. 4. 12. 19:48
    728x90

    전체 목차
    - 001. 특정 행을 복사하여 삽입하기
    - 002. 선택하여 붙여 넣기 기능 정리
    - 003. 변수/Assignment/Loop/비교
    - 004. 데이터가 있는 셀의 범위 알아내기
    - 005. 데이터 시트(쉘) 순회하기
    - 006. 셀 병합 하기
    - 007. 변수에 저장되어 있는 데이터 확인하기 (디버그 기능)
    - 008. 정렬하기 (Sort)
    - 009. 버튼 컨트롤 (Excel Form vs. ActiveX)
    - 010. 콤보 상자 컨트롤 (Excel Form vs. ActiveX)
    - 011. 확인란/옵션단추 컨트롤(Excel Form vs. ActiveX)
    - 012. 스핀단추 컨트롤(스피너, Excel Form vs. ActiveX)
    - 013. 자동필터(Auto Filter)
    - 014. 함수(function) (전편)
    - 015. 함수(function) (후편)
    - 016. 중복 데이터 제거하기
    - 017. 텍스트 나누기 (공백, 특수문자)
    - 018. Vlookup으로 데이터 조회하기(주식 종목 코드 조회)
    - 019. 런타임 에러 처리 (1)
    - 020. 런타임 에러 처리 (2)
    - 021. 인풋박스 (InputBox) 사용 방법

    - 022. 로또 번호 생성기를 만들어 보자

    - 023. 클래스 모듈 (간단한 예제)

     

    포스트 목차

     

    01. Application.GetOpenFilename 메소드

     

    Application.GetOpenFilename 메소드를 이용하면, 스탠다드 오픈 다이얼로그 박스(파일 선택 대화상자)를 표기하여, 사용자로 하여금 파일을 선택할 수 있도록 한다.  이 메소드를 사용하면 파일 선택 대화상자에서 선택한 파일의 경로와 파일명을 문자열 형태로 반환한다.

     

     

    Application.GetOpenFilename 메소드는 다음과 같은 optional 파라미터를 사용할 수 있다.

     

    파라미터명 타입 설명
    FileFilter Variant 선택 가능한 파일 유형을 지정하는 문자열이다. 이 무자열은 다음과 같은 구조를 갖는다.
    "설명(*.확장자), .확장자"

    세미콜론(;)을 사용하여 여러 개의 파일 필터를 지정하는 것이 가능하다.

    사용 예) "텍스트 파일(.txt),.txt;워드문서(.docx),*docx"
    FilterIndex Variant FileFilter 문자열에서 기본적으로 선택되는 필터의 인덱스를 지정한다. (인덱스는 1부터 시작)
    Title Variant 파일 선택 대화 상자의 제목을 지정하는 문자열이다.
    ButtonText Variant 파일 선택 대화  상자에서 버튼의 레이블을 지정하는 문자열이다.
    MultiSelect Variant 여러 파일을 선택할 수 있는지 를 지정하는 Boolean 값이다. 기본 값은 False 다.

     

    다음과 같은 예제 코드를 작성해보자.

     

    (1) 시트에 버튼 추가 

    ActiveX컨트롤을 추가해도 상관없지만 여기서는 엑셀 폼 컨트롤 단추를 추가했다.

     

    (2) 매크로 지정

    버튼을 선택 > 우클릭  > 매크로 지정을 선택한다.

    이름을 적절하게 부여한다. (새로 만들기 클릭)

    (3) 매크로 코드 작성

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub 단추1_Click()
     
        Dim fileName As Variant
        fileName = Application.GetOpenFilename("엑셀 파일(*.xlsx), *.xlsx")
     
        If fileName <> False Then
            MsgBox fileName
        End If
        
    End Sub
     
    cs

     

    (4) 버튼을 클릭한 결과

    로또.xlsx 파일을 선택한 결과는 다음과 같다.

     

     

    02. Workbook.Open 메소드

     

    Workbook.Open 메소드는 지정된 파일을 열고 해당 파일에 대한 Workbook  객체를 반환한다. 해당 메소드를 사용하여 다른 Excel  파일의 데이터를 읽거나 수정하는 것이 가능하다.

     

    Workbooks.Open 메소드의 일부 매개변수는 다음과 같다.

    • FileName: 필수 매개변수, 열려는 파일의 경로 및 이름을 지정하는 문자열
    • UpdateLinks: 선택적 매개변수, 워크북 내에서 열린 링크를 업데이트할지 여부를 지정하는 Boolean 값
    • ReadOnly: 선택적 매개변수, 읽기 전용으로 파일을 열지 여부를 지정하는 Boolean 값
    • Password: 선택적 매개변수, 파일의 암호를 지정하는 문자열
    • IgnoreReadOnlyRecommended: 선택적 매개변수, 파일이 읽기 전용으로 설정된 경우에도 열리도록 지정하는 Boolean 값
    • Notify: 선택적 매개변수, 파일이 다른 사용자에 의해 잠겨 있는 경우 알림을 표시할지 여부를 지정하는 Boolean 값
    • AddToMru: 선택적 매개변수, 최근에 사용한 파일 목록에 파일 이름을 추가할지 여부를 지정하는 Boolean 값

     

    다음과같이  변수에 Set하여 엑셀 파일에서 Workbooks 객체를 가져와서 사용하는 것이 가능하다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub 단추1_Click()
     
        Dim fileName As Variant
        fileName = Application.GetOpenFilename("엑셀 파일(*.xlsx), *.xlsx")
     
        If fileName <> False Then
            Set wb = Workbooks.Open(xfile1)
            ' 이후 wb를 이용한 작업 
     
        End If
        
    End Sub
     
    cs

     

     

     

     

     

    728x90

    댓글

Designed by Tistory.