The following two tabs change content below.




taka
あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪



最新記事 by taka (全て見る)
- 『雑記』最近の私の話~ - 2019年9月26日
- 【動画】自作パソコン構成変更!ケースをNZXT H500に交換しました! - 2019年6月5日
- VBA 『Array関数』指定した要素で配列を作成する - 2019年5月23日
- 「動画」初完全ワイヤレスイヤホン『Jabra Elite Active 65t』 - 2019年5月17日
- VBA 日付で令和を簡単に判定してみよう - 2019年5月7日
どうも、taka(@takabou63)です(^^♪
さて、今回はファイルサイズを取得する関数という事なんですが、ファイルサイズを取得するといえば「FileLen関数」を思いつくかと思います。
FileLen関数と今回ご紹介するLOF関数は少し特性が違います。
今回はその違いも含めて解説していきます(^^♪
VBAにLOF関数とは?
Openステートメントで既に開かれたファイルのサイズを取得するための関数です。
Openステートメントについては『VBAでテキストファイルを操作する方法』で確認してください(^^)
また、FileLen関数とは違い、テキストファイルなどを書き込み中でもLOF関数ならファイルサイズを取得する事が可能です。
LOF関数の書式
LOF関数の書式は以下の通りです。
LOF(ファイル番号)
引数には対象となるファイルの「ファイル番号」を指定します。「ファイル番号」は1~511の範囲の数値で指定します。
LOF関数の使用方法
上記でも紹介したようにLOF関数はOpenステートメントで開いたファイルのサイズを取得できます。またLOF関数は書き込み中でもファイルサイズを取得することができます。
下記のコードでは「DドライブのLOFテスト.txtに『これはテストです』を5回書き込みを行う」というコードです。
そして書き込み中の間にイミディエイトウィンドウにLOF関数とFileLen関数の値を出力しています、結果を見ていただければわかると思いますが、LOF関数は文字を追加した分ファイルサイズが増えていきますが、FileLen関数の分は増えていないはずです。
これがLOF関数とFileLen関数の差になります。
Sub Sample() Dim i As Long Dim text As String text = "D:\LOFテスト.txt" Open text For Append As #1 For i = 1 To 5 Print #1, "これはテストです" Debug.Print "LOF" & LOF(1) 'LOF関数は書き込み中でもサイズを取得できる Debug.Print "FileLen" & FileLen(text) 'FileLen関数は書き込み中にはサイズを取得する事ができない Next Close #1 End Sub
フォロー・チャンネル登録お願いします
VBA以外についてのブログはこちら↓
https://yb-log.com/■Twitterフォロー
Follow @taka_pc1027■YouTubeチャンネル登録