|
VB ファイル操作編 |
| ファイルやフォルダを作ったり、消したり、調べたり・・・ |
|
●ChDrive ステートメント 【機能】現在のドライブを変更します。 【書式】ChDrive ドライブ名 【 例 】ChDrive "D" |
|
●ChDir ステートメント 【機能】現在のフォルダを変更します。 【書式】ChDir パス 【 例 】 ChDir "C:\WORK\SAMPLE" ChDir "C:\WORK\SAMPLE\" ※ パスが存在しない場合は、エラーが発生します。 ※ ドライブを変更しても、カレントドライブは変更されません。 ChDrive "D" ChDir "D:\WORK\SAMPLE" |
|
●CurDir ステートメント 【機能】現在のパスを返します。 【書式】result = CurDir 【書式】result = CurDir ドライブ名 【 例 】result = CurDir → C:\WORK\SAMPLE |
|
●Dir 関数 【機能】指定のフォルダがあるかどうか調べる 【書式】フォルダ名 = Dir ( フォルダパス , vbDirectory ) 【 例 】
※ 指定したフォルダが存在しなければ、ヌルストリングが返ります。 |
|
●Dir 関数 【機能】指定のファイルがあるかどうか調べる 【書式】ファイル名 = Dir ( ファイル名 ) 【 例 】result = Dir("C:\WINNT\WIN.INI") → "win.ini" ※ 指定したファイルが存在しなければ、ヌルストリングが返ります。 |
|
●FileCopy ステートメント 【機能】ファイルをコピーします。 【書式】FileCopy コピー元ファイル名 , コピー先ファイル名 【 例 】FileCopy "C:\WORK\TEST.TXT", "C:\WORK\SAMPLE.TXT" ※ コピー先ファイル名が存在した場合は、上書きされます。 ※ 指定したファイルが存在しなければ、エラーが発生します。 ※ ファイルが使用中の場合は、エラーが発生します。 |
|
●FileDateTime 関数 【機能】ファイルのタイムスタンプを示すバリアント型 (内部処理形式 Date の Variant) の値を返します。 【書式】result = FileDateTime (ファイル名) 【 例 】result = FileDateTime("C:\WORK\TEST.TXT") → 2006/11/30 17:38:30 ※ 指定したファイルが存在しなければ、エラーが発生します。 |
|
●FileLen 関数 【機能】ファイルのサイズをバイト単位で表す長整数型 (Long) の値を返します。 【書式】result = FileLen (ファイル名) 【 例 】result = FileLen("C:\WORK\TEST.TXT") → 86016 ※ 指定したファイルが存在しなければ、エラーが発生します。 ※ ファイルが使用中だった場合は、使用される前のサイズを返します。 |
|
●GetAttr 関数 【機能】ファイルまたはフォルダの属性を表す整数型 (Integer) の整数を返します。 【書式】result = GetAttr ( パス名 )
【 例 】
※ 指定したファイル名が存在しなければ、エラーが発生します。 |
|
●Kill ステートメント 【機能】ファイルを削除します。 【書式】Kill パス名 【 例 】 Kill "C:\WORK\SAMPLE\*.TXT" Kill "C:\WORK\SAMPLE\TEST.TXT" ※ ファイルが存在しなければ、エラーが発生します。 ※ ファイルが読取専用の場合は、エラーが発生します。 |
|
●MkDir ステートメント 【機能】新しいフォルダを作成します。 【書式】MkDir フォルダパス 【 例 】 MkDir "C:\WORK\SAMPLE" MkDir "C:\WORK\SAMPLE\" ※ 既に存在するフォルダを作成しようとすると、エラーが発生します。 ※ 上位の階層フォルダ(例ではWORK\)が存在しなければ、エラーが発生します(上位からフォルダを作っていってくれません)。 |
|
●Name ステートメント 【機能】ファイルまたはフォルダの名前を変更(移動)します。 【書式】Name 変更前ファイル名(フォルダ名) As 変更後ファイル名(フォルダ名) 【 例 】 Name "C:\WORK\TEST.TXT" AS "C:\WORK\SAMPLE.TXT" Name "C:\WORK\TEST.TXT" AS "C:\WORK\SAMPLE\TEST.TXT" Name "C:\WORK\" AS "C:\SAMPLE\" Name "C:\WORK" AS "C:\SAMPLE" ※ 変更前ファイル名(フォルダ名)が存在しなければ、エラーが発生します。 ※ ファイル(フォルダ)が使用中の場合は、エラーが発生します。 |
|
●RmDir ステートメント 【機能】フォルダを削除します。 【書式】RmDir フォルダパス 【 例 】 RmDir "C:\WORK\SAMPLE\" RmDir "C:\WORK\SAMPLE" ※ フォルダが存在しなければ、エラーが発生します。 ※ フォルダ内にファイルが存在すると、エラーが発生します。 |
|
●SetAttr ステートメント 【機能】ファイルの属性を設定します。 【書式】SetAttr パス名 , 属性
【 例 】 SetAttr "C:\WORK\SAMPLE\TEST.TXT", vbHidden SetAttr "C:\WORK\SAMPLE\TEST.TXT", vbHidden + vbReadOnly ※ ファイルが存在しなければ、エラーが発生します。 ※ 使用中のファイルの属性を変更しようとすると、エラーが発生します。 |
|
●フォルダ内のファイル名を取得する。 【 Q 】 指定フォルダに存在するファイル名を全て取得したいのですが。 【 A 】 Dir関数を使うとこんな感じです。 【 例 】 Dim strTarget As String '検索先フォルダ(ワイルドカード) strTarget = App.Path & "\*.*" 'ファイル名はすべて対象(*.*) Dim strDir As String '検索されたファイル名 strDir = Dir(strTarget) '第1回目の検索 Debug.Print strDir Do Until strDir = "" strDir = Dir() '2回目以降の検索 Debug.Print strDir Loop ※ファイルの属性が隠しファイルの場合は抽出できません。 【 Q 】 上の例でファイル名を配列に格納したいのですが。 【 A 】 こんな感じです。 【 例 】 Dim strTarget As String '検索先フォルダ(ワイルドカード) strTarget = App.Path & "\*.*" 'ファイル名はすべて対象(*.*) Dim strFileTbl() As String 'ファイル名を格納する配列 Dim i As Integer i = -1 Dim strDir As String '検索されたファイル名 strDir = Dir(strTarget) '第1回目の検索 If (strDir <> "") Then i = 0 ReDim strFileTbl(i) strFileTbl(i) = strDir End If Do Until strDir = "" strDir = Dir() '2回目以降の検索 If (strDir <> "") Then i = i + 1 ReDim Preserve strFileTbl(i) strFileTbl(i) = strDir End If Loop If (i >= 0) Then For i = LBound(strFileTbl) To UBound(strFileTbl) Debug.Print strFileTbl(i) Next End If |
|
●フォルダがなければ作成する。 【 Q 】 指定フォルダが存在しなければフォルダを作成したいのですが。 【 A 】 Dir関数とMkDir関数を使うとこんな感じです。 【 例 】 Dim strTarget As String '対象フォルダ strTarget = App.Path & "\LOG\" If (Dir(strTarget, vbDirectory) = "") Then MkDir strTarget 'フォルダが無いので作る End If ※MkDirの注意点は、MkDirリファレンスを参照。 |