0

10個のExcelファイルと1個のマクロファイルを含むフォルダーがあります。マクロだけを開きます。マクロファイル(vbaを含む)が配置されているフォルダー内の他のすべてのファイルのリストを取得するにはどうすればよいですか?また、それらを1つずつ開いたり閉じたりするにはどうすればよいですか?

4

1 に答える 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 に答える