フォルダ内のすべてのファイルを読み取り、ファイル名をワークシートに貼り付け、ファイル数をメッセージボックスに出力するコードがあります。VBAを使用してフォルダ内のファイルを並べ替える
問題:何らかの理由でコードを実行すると、誤った順序でファイルが取得される可能性があり、計算が壊れてしまいます(私は別のサブと同じです)。
質問:ファイルが常に正しい順序であることを保証する方法はありますか?
私がこれまで行ったこと:コードの出力前にファイル名を指定するために、フォルダ内のファイルを所定の順序で並べ替えるコードを使用したいと思いますが、 。
コード:
Sub Counter()
Dim path As String, count As Integer, i As Long, var As Integer
Dim ws As Worksheet
Dim Filename As String
Dim FileTypeUserForm As UserForm
Dim x As String
Application.Calculation = xlCalculationManual
path = ThisWorkbook.path & "\*.*"
Filename = Dir(path)
ThisWorkbook.Sheets("FILES").Range("A:A").ClearContents
x = GetValue
If x = "EndProcess" Then Exit Sub
Set ws = ThisWorkbook.Sheets("FILES")
i = 0
Do While Filename <> ""
var = InStr(Filename, x)
If var <> 0 Then
i = i + 1
ws.Cells(i + 1, 1) = Filename
Filename = Dir()
Else: Filename = Dir()
End If
Loop
Application.Calculation = xlCalculationAutomatic
ws.Cells(1, 2) = i
MsgBox i & " : files found in folder"
End Sub
Function GetValue()
With FileTypeUserForm
.Show
GetValue = .Tag
End With
Unload FileTypeUserForm
End Function
新しい配列に配列し、この配列を使用します。 – R3uK
@ R3uKどうすればいいですか?私がDir(パス)を使用するだけでは、コンテンツではなく場所がわかりますか?その場合、配列がある場合、現在のコード(単に文字列を使用しています)でどのようにアクセスできますか? – DGMS89