ホーム > カテゴリ > Excel・VBA >

ファイルのサイズを返す - FileLen関数 [ExcelのVBA]

FileLen関数

FileLen関数はファイルのサイズを返します。

分類ファイル

書式

FileLen(pathname)

pathnameファイルへのフルパス名

使用例

次は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オープンしているファイルの位置を返す

エクセル講座のクイックリンク

ホーム 新機能 基本(初級) 基本(中級) 基本(上級) 関数 マクロ VBA TIPS





関連記事



公開日:2015年07月08日
記事NO:01161


この記事を書いた人

💻 ITスキル・経験
サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。

画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ
プチモンテ代表、アーティスト名:プチモンテ
🎵 音楽制作
BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は叙情詩、叙情的な楽曲が多い。楽曲制作は2023年12月中旬 ~

オリジナル曲を始めました✨

YouTubeで各楽曲を公開しています🌈
https://www.youtube.com/@petitmonte

【男性ボーカル】DA・KA・RA | 新たな明日が風と共に訪れる

【男性、女性ボーカル】時空を超越する先に | 時空と風の交響曲

【女性、男性ボーカル】絆 | 穏やかな心に奏でる旋律