オープンしたファイルのファイルモードを返す - FileAttr関数 [ExcelのVBA]
FileAttr関数
FileAttr関数はオープンしたファイルのファイルモードを返します。
分類 | ファイル |
---|
書式
FileAttr(filenumber[,returntype])
filenumber | FreeFile関数で取得したファイル番号 |
returntype | 戻り値のタイプ。OSが32bitの場合は1、16bitは2を指定する。省略した場合は1となる。 |
[戻り値]
1 | Inputモード |
2 | Outputモード |
4 | Randomモード |
8 | Appendモード |
32 | Binaryモード |
使用例
次はCドライブにある「test.txt」ファイルを読み込んだ例となります。
Private Sub CommandButton1_Click() Dim fileNo As Integer ' ファイル番号 Dim buffer As String ' 一時的に文字列を格納 Dim Str As String ' ファイルの内容 Dim filename As String ' ファイル名 ' 読み込むファイル名 filename = "C:\test.txt" Debug.Print "ファイル名:" & filename Debug.Print "最終更新日:" & FileDateTime(filename) ' ファイルの属性 Debug.Print "ファイルの属性に「通常ファイル」があります。" If ((GetAttr(filename) And vbReadOnly) = vbReadOnly) Then Debug.Print "ファイルの属性に「読み取り専用」があります。" End If If ((GetAttr(filename) And vbHidden) = vbHidden) Then Debug.Print "ファイルの属性に「隠しファイル」があります。" End If If ((GetAttr(filename) And vbSystem) = vbSystem) Then Debug.Print "ファイルの属性に「システムファイル」があります。" End If If ((GetAttr(filename) And vbDirectory) = vbDirectory) Then Debug.Print "ファイルの属性に「フォルダ」があります。" End If If ((GetAttr(filename) And vbArchive) = vbArchive) Then Debug.Print "ファイルの属性に「アーカイブ」があります。" End If If ((GetAttr(filename) And vbAlias) = vbAlias) Then Debug.Print "ファイルの属性に「エイリアス」があります。" End If ' ファイルを開く為のファイル番号を取得 fileNo = FreeFile ' 指定されたファイルを開く Open filename For Input As #fileNo ' ファイルモード Select Case FileAttr(fileNo) Case 1: Debug.Print "ファイルモード:Inputモード" Case 2: Debug.Print "ファイルモード:Outputモード" Case 4: Debug.Print "ファイルモード:Randomモード" Case 8: Debug.Print "ファイルモード:Appendモード" Case 32: Debug.Print "ファイルモード:Binaryモード" End Select Debug.Print "LOFによるファイルサイズ取得:" & CStr(LOF(fileNo)) & "バイト" Debug.Print "FileLenによるファイルサイズ取得:" & CStr(FileLen(filename)) & "バイト" ' ファイルがEOF(ファイルの終端)になるまでループをする Do Until EOF(fileNo) ' ファイルの位置 Debug.Print "Seekによる現在位置取得:" & CStr(Seek(fileNo)) ' ファイルから一行づつbufferに読み込む Line Input #fileNo, buffer ' 読み込んだファイル内容を格納する Str = Str + buffer + vbCrLf Loop Close #fileNo Debug.Print "" Debug.Print "--- 以下はファイル内容 ---" Debug.Print Str End Sub
結果
※UTF8に対応したファイルの読み込みは「ファイルの操作(Shift-JIS/UTF8対応)」の記事をご覧ください。
Visual Basicのファイル換関数
関数名 | 内容 |
---|---|
EOF | ファイルの現在位置が終端の場合にTrueを返す |
FileAttr | オープンしたファイルのファイルモードを返す |
FileDateTime | ファイルの作成日時または最終更新日時を返す |
FileLen | ファイルのサイズを返す |
FreeFile | ファイルをオープンする為のファイル番号を返す |
GetAttr | ファイルやフォルダの属性を返す |
Input/InputB | ファイルから指定文字数を読み込む |
LOF | オープンしているファイルの長さを返す |
Seek | オープンしているファイルの位置を返す |
エクセル講座のクイックリンク
スポンサーリンク
関連記事
前の記事: | ファイルの現在位置が終端の場合にTrueを返す - EOF関数 [ExcelのVBA] |
次の記事: | ファイルの作成日時または最終更新日時を返す - FileDateTime関数 [ExcelのVBA] |
公開日:2015年07月08日
記事NO:01159