こんにちは。maruru01です。
基本的には、Dirをループでまわします。
プロシージャ化するとこんな感じ。
'FolderName内の全ファイル名(フルパス)をallFile()に格納して、ファイル数を返す
Public Function FileArray(FolderName As String, allFile() As String) As Long
Dim setPath As String '現在のパス
Dim checkName As String '調べるファイル(フォルダ)
Dim checkFlag As Boolean '繰り返しの終了判定
Dim pathCount As Long '処理するパスの個数
Dim pathList() As String 'パス名のリスト
Dim fc As Long 'ファイル数
If Right(FolderName, 1) <> "\" Then
FolderName = FolderName & "\"
End If
fc = 0
pathCount = 0
setPath = FolderName
checkFlag = True
Do While checkFlag = True
checkName = Dir(setPath & "*.*", vbDirectory)
Do While checkName <> ""
DoEvents
If checkName <> "." And checkName <> ".." Then
If (GetAttr(setPath & checkName) And vbDirectory) <> 0 Then
pathCount = pathCount + 1
ReDim Preserve pathList(pathCount)
pathList(pathCount) = setPath & checkName
Else
ReDim Preserve allFile(fc)
allFile(fc) = setPath & checkName
fc = fc + 1
End If
End If
checkName = Dir()
Loop
If pathCount = 0 Then
checkFlag = False
Else
setPath = pathList(pathCount) & "\"
pathCount = pathCount - 1
End If
Loop
FileArray = fc
End Function
あとは、取得したファイル名をセルに表示するだけ。
お礼
返答が遅くなってすみませんでした。 早速の回答、ありがとうございました。 おかげさまで、解決しました。 どれが正解と言うわけではないでしょうが、2名様までにしか、ポイントを割り振れない上に、順列をつけなければならない決まりですので、申し訳ありませんが、勝手ながら先着順にさせていただきます。 今後とも、よろしくお願いいたします。