[엑셀VBA] 디렉토리에서 파일 이름 리스트 가져오기!

학습/엑셀 VBA|2011. 5. 4. 17:53
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

가끔 엑셀에서 파일 이름 리스트를 가져올 필요가 있다.
(파일 관리라던가 버젼 관리라던가..)
그거 할 때 쓸만한 함수

Sub DirFileList()

Dim fileList() As String
Dim fName As String
Dim fPath As String
Dim i As Integer
Dim startrow As Integer
Dim ws As Worksheet
Dim filetype  As String

'셀에 항목으로 경로입력이 필요함을 통보
Range("C2").Select
fPath = "D:\Data\"
'셀에 항목으로 확장자입력이 필요함을 통보
filetype = "*"

 

startrow = 2    'starting row for the data
fName = Dir(fPath & "*." & filetype)

While fName <> ""
    i = i + 1
    ReDim Preserve fileList(1 To i)
    fileList(i) = fName
    fName = Dir()
Wend


If i = 0 Then
Range("F2").Select
    ActiveCell.FormulaR1C1 = "No Files Found!"
    Exit Sub
End If
For i = 1 To UBound(fileList)
    ws.Range("A" & i + startrow).Value = fileList(i)
Next
Columns(1).AutoFit

End Sub

다른 분이 만드신건데..
출처를 모르겠네요;;;
본 제작자 분이 보시거나 아시면 연락을;;;;

댓글()

엑셀 VBA를 이용한 파일 존재 유무 확인

학습/엑셀 VBA|2011. 3. 10. 14:43
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
엑셀 VBA를 이용해서 파일이 존재하는지 여부를 확인하는 함수를 만드는 방법입니다.

VBA를 열어서 아래와 같은 코드를 입력해 놓으면, 

=FileChk([파일명]) 을 이용해서 파일 여부를 확인할 수 있습니다.

------------------입력할 코드입니다. ------------------
Function FileChk(sFileName As String)
    Dim sChkFile As String
    
    sChkFile = Dir(sFileName)
    If (Len(sChkFile) > 0) Then
        FileChk = True
    Else
        FileChk = False
    End If
End Function
------------------------------------------------------

[파일명]에 해당되는 파일이 있을 경우에는 TRUE를 반환합니다.
(물론 없을 경우에는 FALSE)를 반환하지요.

IF문을 이용해서 다른 Text로 바꾸어 출력할 수도 있어요 ^^
=IF( FileChk([파일명]), "있음!", "없네요!")

아... 그리고 그냥 파일명만을 넣으면, 저장된 엑셀 파일과 같은 위치에 있는 파일만 체크합니다.
만약 다른 폴더에 있는 것을 검사하고 싶으시면,

C:\Text.txt 처럼 경로명까지 붙여주시면 됩니다.


댓글()