10個のExcelファイルと1個のマクロファイルを含むフォルダーがあります。マクロだけを開きます。マクロファイル(vbaを含む)が配置されているフォルダー内の他のすべてのファイルのリストを取得するにはどうすればよいですか?また、それらを1つずつ開いたり閉じたりするにはどうすればよいですか?
質問する
4957 次
1 に答える
1
これにより、正しい軌道に乗るはずです。これらのマクロはフォルダーをループし、フォルダー内のすべてのファイルを開いたり閉じたりします。
Sub LoopThroughFilesAndOpen()
Dim strFile As String
Dim strPath As String
Dim colFiles As New Collection
Dim i As Integer
strPath = "put your directory here"
strFile = Dir(strPath)
While strFile <> ""
colFiles.Add strFile
strFile = Dir
Wend
'List filenames in Column A of the active sheet
If colFiles.Count > 0 Then
For i = 1 To colFiles.Count
ActiveSheet.Cells(i, 1).Value = colFiles(i)
Workbooks.Open Filename:=strPath & colFiles(i)
Next i
End If
End Sub
Sub LoopThroughFilesAndClose()
Dim strFile As String
Dim strPath As String
Dim colFiles As New Collection
Dim i As Integer
strPath = "put your directory here"
strFile = Dir(strPath)
While strFile <> ""
colFiles.Add strFile
strFile = Dir
Wend
'List filenames in Column A of the active sheet
If colFiles.Count > 0 Then
For i = 1 To colFiles.Count
ActiveSheet.Cells(i, 1).Value = colFiles(i)
'Workbooks.Close Filename:=strPath & colFiles(i)
Workbooks(colFiles(i)).Close SaveChanges:=False
Next i
End If
End Sub
幸運を。- 「C:\myfolder\」など、必要なディレクトリに入力するだけです
編集/追加:
マクロでアクティブなワークブック (マクロを実行しているワークブック) のディレクトリを自動的に使用する場合は、上記のマクロのこれらのバージョンを使用できます。
Sub LoopThroughFilesAndOpen()
Dim strFile As String
Dim strPath As String
Dim colFiles As New Collection
Dim i As Integer
strPath = ActiveWorkbook.Path & "\"
strFile = Dir(strPath)
While strFile <> ""
colFiles.Add strFile
strFile = Dir
Wend
'List filenames in Column A of the active sheet
If colFiles.Count > 0 Then
For i = 1 To colFiles.Count
ActiveSheet.Cells(i, 1).Value = colFiles(i)
Workbooks.Open Filename:=strPath & colFiles(i)
Next i
End If
End Sub
Sub LoopThroughFilesAndClose()
Dim strFile As String
Dim strPath As String
Dim colFiles As New Collection
Dim i As Integer
strPath = ActiveWorkbook.Path & "\"
strFile = Dir(strPath)
While strFile <> ""
colFiles.Add strFile
strFile = Dir
Wend
'List filenames in Column A of the active sheet
If colFiles.Count > 0 Then
For i = 1 To colFiles.Count
ActiveSheet.Cells(i, 1).Value = colFiles(i)
'Workbooks.Close Filename:=strPath & colFiles(i)
Workbooks(colFiles(i)).Close SaveChanges:=False
Next i
End If
End Sub
この行を変更します:
strPath = "put your directory here"
に:
strPath = ActiveWorkbook.Path & "\"
ノート:
これら 2 つのマクロは、 http ://www.vadriano.com/excel-vb/2007/04/21/how-to-loop-through-files-in-a-folder/ から取得および変更されました。
于 2012-09-24T14:31:30.193 に答える