四十路サラリーマン、強く生きる

日々気になっている、やってみたことメモ

フォルダ内csvファイル連続オープン、クローズ処理

特定フォルダ内csvファイルの連続オープン、クローズ処理に関する記事です

  • 状況
    特定フォルダ内csvファイル内のシート内データを取得したい
  • 実施
    フォルダ絶対path取得
    Dir()関数によるファイル名取得
    Workbooks().openでCsvファイルオープン
    Workbooks().closeでCsvファイルクローズ
    保存なしdeファイルクローズ設定
  • シート画像
    f:id:JUNx2:20201220222821j:plain
  • VBA記述
Sub test()

Dim Folder, CsvFile, Name1, Name2, Name3, Name4 As String
Name1 = ActiveWorkbook.Name
Name2 = ActiveSheet.Name
Folder = ActiveWorkbook.Path & "\test\"
i = 1
CsvFile = Dir(Folder)

    Do
    If CsvFile = "" Then
        Exit Do
    End If

    Set WB = Workbooks.Open(Folder & CsvFile)

    Name3 = ActiveWorkbook.Name
    Name4 = ActiveSheet.Name
    Range(Cells(1, 1), Cells(1, 4)).Select
    Selection.Copy
    Workbooks(Name1).Sheets(Name2).Activate
    Cells(i, 1).Select
    ActiveSheet.Paste
    Workbooks(Name3).Sheets(Name4).Activate
    Application.CutCopyMode = False
    Workbooks(Name3).Close
 savechanges:=False

    CsvFile = Dir()
    i = i + 1
    Loop
End Sub