Excel VBA File Utility
ナビゲーションに移動
検索に移動
Excel VBA File Utility
Excel VBAテンプレート:Category VBAソース片
FileUtil.cls
- Option Explicit
- Private Const INVALID_FILENO As Integer = -1
- ' 処理対象のファイル名を保持
- Private m_Filename As String
- ' 処理中のファイル番号を保持
- Private m_FileNo As Integer
- '
- ' 初期化
- '
- Private Sub Class_Initialize()
- Call setFileNo(INVALID_FILENO)
- End Sub
- '
- ' 終了処理
- '
- Private Sub Class_Terminate()
- Call closeFile
- End Sub
- '
- ' ファイルが開かれているか
- '
- ' @return 開かれていれば True
- '
- Public Function isOpen() As Boolean
- isOpen = (getFileNo > 0)
- End Function
- '
- ' ファイルを開く
- '
- ' @param fileName
- ' @param mode
- ' @return 成功した場合True
- '
- Public Function openFile(fileName As String, mode As FileMode) As Boolean
- On Error GoTo errHandler
- openFile = True
- Call setFilename(fileName)
- Call setFileNo(FreeFile)
- Select Case mode
- Case FileMode.InputMode
- Open getFilename For Input As getFileNo
- Case FileMode.OutputMode
- Open getFilename For Output As getFileNo
- Case FileMode.AppendMode
- Open getFilename For Append As getFileNo
- Case Else
- openFile = False
- End Select
- Exit Function
- errHandler:
- openFile = False
- End Function
- '
- ' ファイルから1行読込む
- '
- ' @param line 読み込んだ行を格納
- ' @return データがこれ以上ない場合False
- '
- Public Function readLine(ByRef line As String) As Boolean
- Dim ret As Boolean
- ret = Not isEOF()
- If ret Then
- Line Input #getFileNo(), line
- End If
- readLine = ret
- End Function
- '
- ' ファイルがEOFに達しているか
- '
- ' @return ファイルがEOFに達している場合True
- '
- Public Function isEOF() As Boolean
- isEOF = EOF(getFileNo())
- End Function
- '
- ' 出力(改行しない)
- '
- ' @param str 出力内容
- '
- Public Sub print_(str As String)
- Print #getFileNo(), str;
- End Sub
- '
- ' 1行出力
- '
- ' @param str 出力内容
- '
- Public Sub println(str As String)
- Print #getFileNo(), str
- End Sub
- '
- ' ファイルを閉じる
- '
- Public Sub closeFile()
- Close getFileNo()
- End Sub
- '
- ' ファイル名の設定
- '
- ' @param newFileName
- '
- '
- Private Sub setFilename(newFileName As String)
- m_Filename = newFileName
- End Sub
- '
- ' ファイル名の取得
- '
- ' @param ファイル名
- '
- Public Function getFilename() As String
- getFilename = m_Filename
- End Function
- '
- ' ファイルNoの設定
- '
- ' @param ファイルNo
- '
- Private Sub setFileNo(newFileNo As Integer)
- m_FileNo = newFileNo
- End Sub
- '
- ' ファイルNoの取得
- '
- ' @return ファイルNo
- '
- Public Function getFileNo() As Integer
- getFileNo = m_FileNo
- End Function
標準モジュールに
- '----------------
- 'ファイルモード
- '----------------
- Public Enum FileMode
- InputMode = &H1&
- OutputMode = &H2&
- AppendMode = &H3&
- End Enum
© 2006 矢木浩人