同じフォルダ内にあるすべてのCSVファイルの最終行を取得する

フォルダ内に大量のCSVがあり、1ファイルづつファイルを開くことなく、それぞれの最終行を取得します。

結果は、エクセル上にファイル名と最終行を書き出します。

OpenTextFile メソッドのLineプロパティで最終行を取得する方法です。

参考:FileSystemObject・ファイルシステムオブジェクト

目次

最終行取得の例

ファイル保存先:F:\sample

ファイル保存先

最終行を取得するcsvファイル

  • test1.csvの最終行:10
  • test2.csvの最終行:15
  • test3.csvの最終行:20

csvファイル

マクロ実行結果

2行目から書き出します。A列はファイル名、B列は最終行。

書き出し

サンプルコード

Sub sample()
    Dim i As Long
    Dim FSO As Object
    Dim fPath As String: fPath = "F:\sample\"
    Dim cFile As String: cFile = Dir(fPath & "*.csv")
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
     i = 2
     Do While cFile <> ""
        Dim LR As Long: LR = FSO.OpenTextFile(fPath & cFile, 8).Line
        Cells(i, 1) = cFile
        Cells(i, 2) = LR - 1
        cFile = Dir()
        i = i + 1
    Loop  
  Set FSO = Nothing  

6行目:「FileSystemObject・ファイルシステムオブジェクト」参照

8行目:エクセルの書き出しは2行目~

12行目:「EOF」が最終行なので「-1」します。

Cells(i, 2) = LR - 1
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次