rand(life)

[vba] 파일을 열지 않고 시트명 가져오기 본문

컴퓨터/엑셀

[vba] 파일을 열지 않고 시트명 가져오기

flogsta 2017. 8. 23. 20:13


엑셀파일을 열지 않은 상태로 해당 파일안에 있는 시트이름을 가져오는 코드이다.

출처는 여기이다.


제대로 동작하기 위해서, 선행해야할 작업이 있다.

VB편집기에서 도구 - 참조를 실행


Microsoft ActiveX Dara Objects 2.x Library
Microsoft ADO Ext. 2.x for DDL and Security

위 두 항목을 체크하고 확인한다.





    Sub GetSheetNames()
'도구 - 참조에서 아래 두 개 체크 해야함
'Microsoft ActiveX Dara Objects 2.x Library
'Microsoft ADO Ext. 2.x for DDL and Security

    Dim cn As ADODB.Connection
    Dim cat As ADOX.Catalog
    Dim t As ADOX.Table

    Set cn = New ADODB.Connection
   
    cn.Open "Provider=MSDASQL.1;Data Source=Excel Files;" _
    & "Initial Catalog=D:\download\sheet1.xlsx"
   ' 여기서 경로 및 파일 이름 지정
  
    Set cat = New ADOX.Catalog
    Set cat.ActiveConnection = cn
    For Each t In cat.Tables
    Debug.Print t.Name
    Next t
    Set cat = Nothing
    cn.Close
    Set cn = Nothing
    End Sub

Debug.Print t.Name

이 부분을 적절히 바꿔서 시트에 뿌려주면 된다.