ファイル行数カウント


  • ソース
' CountDataFileLine
' 指定ファイルの行数をカウントする
' フラグにより、ファイルの構成に対応したカウントが可能
' ※純粋なレコード数0の場合はフラグ情報を考慮しない
' 引数:あり
' iFilePath : カウントする指定ファイル(フルパス)
' hasHeaderLine : ヘッダー行の有無(「TRUE:ヘッダー行あり」の場合1減らす)
' hasLastBlankLine  : カウント不要な最終行の有無(「TRUE:カウント不要行あり」の場合1減らす)
' 戻り値:String:ファイルの行数
Public Function CountFileLine(ByVal iFilePath As String, ByVal hasHeaderLine As Boolean, ByVal hasLastBlankLine As Boolean) As Long
    Dim fsObj As Object
    Dim fsObjTS As Object
    Dim LineNumber As Long
    
    Set fsObj = CreateObject("Scripting.FileSystemObject")
    ' ファイルの末尾から書き込みモードで開きます
    ' ※実際には書き込みません
    Set fsObjTS = fsObj.OpenTextFile(iFilePath, 8)
    ' 現在のファイル ポインタの位置を行番号で取得します
    LineNumber = CLng(fsObjTS.Line)
    
    ' ファイルを閉じる
    fsObjTS.Close
    
    ' 使用済みオブジェクトの除去
    Set fsObj = Nothing
    
    If LineNumber > 0 Then
        If hasHeaderLine Then
            LineNumber = LineNumber - 1
        End If
        If hasLastBlankLine Then
            LineNumber = LineNumber - 1
        End If
    End If

    CountFileLine = LineNumber
End Function


  • 呼び出しサンプル

Public Sub test_CountFileLine()
   MsgBox CountFileLine("C:\aaa.txt", False, False)
  
End Sub

最終更新:2013年05月08日 23:47