■ VBAステートメントによるファイル操作2
前回に引き続き、ファイル操作、ディレクトリ・ドライブ操作を行うためのVBAステートメントについて解説いしていきたいと思います。
■ファイル関連の操作
FileCopyステートメント
FileCopy source, destination
ファイルをコピーします。引数sourceはコピーするファイル名を指定します。フォルダ名、ドライブ名を含めて指定ができます。引数destinationにはコピー後のファイル名を指定します。フォルダ名、ドライブ名を含めて指定ができます。
※コピー先のフォルダに同名ファイルが既に存在してる場合は、上書きされます。
※既に開いているファイルに対してFileCopyステートメントを実行するとエラーが発生します。
(例)
Sub test()
FileCopy "C:\Users\test.txt", "C:\Users\test_bk.txt"
End Sub
上の例では、C:\Usersフォルダにあるtest.txtを同じフォルダ内にtest_bk.txtという名前でコピーを作成しています。 |
Killステートメント
Kill pathname
ファイルを削除します。引数pathnameには、1つまたは複数のファイル名を示す文字列を指定できます。フォルダ名、ドライブ名を含めて指定ができます。
※複数のファイルを指定する場合、「*」「?」などワイルドカードを指定できます。
※既に開いているファイルに対してKillステートメントを実行するとエラーが発生します。
(例)
Sub test()
Kill "C:\Users\tmp*.txt"
End Sub
上の例では、C:\Usersフォルダにあるtmpで始まる拡張子txtのファイルをすべて削除します。 |
Nameステートメント
Name oldpathname As newpathname
ファイルまたはフォルダの名前を変更します。引数oldpathnameには、変更するファイル名またはフォルダ名を指定します。フォルダ名、ドライブ名を含めて指定ができます。引数newpathnameには、新しいファイル名またはフォルダ名を指定します。フォルダ名、ドライブ名を含めて指定ができます。
※引数newpathnameに、既に存在しているファイル名を指定するとエラーが発生します。
※引数newpathnameに、別のフォルダを指定した場合、移動します。別のフォルダとファイル名を指定した場合、リネームしながら移動します。
(例)
Sub Sample()
Name "C:\Users\test.txt" As "C:\Users\test2.txt"
Name "C:\Users\tmp.txt" As "C:\Users\tmp\tmp.txt"
End Sub
上の例では、C:\Usersフォルダにあるtest.txtをtest2.txtにリネームした後、C:\Usersフォルダにあるtmp.txtをC:\Users\tmpフォルダに移動します。 |
SetAttrステートメント
SetAttr pathname, attributes
ファイルの属性を設定します。引数pathnameには、対象となるファイルを指定します。引数attributesには、設定する属性を指定します。次の属性と設定値が指定できます。
定数 |
値 |
内容 |
vbNormal |
0 |
通常ファイル |
vbReadOnly |
1 |
読取専用ファイル |
vbHidden |
2 |
隠しファイル |
vbSystem |
3 |
システムファイル |
vbArchive |
4 |
アーカイブ |
※開いているファイルの属性を設定しようとするとエラーになります。
SavePictureステートメント
SavePicture picture,stringexpression
コントロールに関連づけられた画像をファイルに保存します。引数pictureには、コントロールを指定します。引数stringexpressionには、画像を保存するためのファイル名を指定します。
(例)
Sub test()
SavePicture UserForm1.Image1.Picture, "C:\Users\test.bmp"
End Sub
上の例では、UserForm1に配置されたImage1コントロールに読み込まれた画像を、C:\Usersフォルダにtest.bmpという名前で保存します。 |
■ドライブ・ディレクトリ関連の操作
ChDriveステートメント
ChDrive drive
カレントドライブを変更します。引数driveには、変更するドライブ名を指定します。
※引数driveに2文字以上の文字列を指定した場合は、最初の1文字がドライブ文字として使用されます。
※引数driveに長さ0の文字列を指定した場合は、カレントドライブは変更されません。
※引数driveに存在しないドライブを指定するとエラーが発生します。
(例)
Sub test()
ChDrive "D"
End Sub
上の例では、カレントドライブをDドライブに変更します。 |
ChDirステートメント
ChDir path
カレントフォルダを変更します。引数pathには、変更するフォルダを表す文字列を指定します。引数にドライブを指定した場合、指定されたドライブのカレントフォルダが変更されます。ドライブの指定が無い場合、カレントドライブのカレントフォルダを変更します。
(例)
Sub test()
ChDir "test"
End Sub
上の例では、カレントドライブのカレントフォルダをtestに変更します。 |
MkDirステートメント
MkDir path
新しくフォルダを作成します。引数pathには作成するフォルダ名や絶対パスを指定します。フォルダ名のみ指定した場合、カレントフォルダの下に新しいフォルダが作成されます。
(例)
Sub test()
MkDir "test"
MkDir "C:\Users\test"
End Sub
上の例では、カレントフォルダの下にtestフォルダを作成した後、C:\Usersフォルダの下にtestフォルダを作成します。 |
RmDirステートメント
RmDir path
指定されたフォルダを削除します。引数pathには削除するフォルダ名や絶対パスを指定します。フォルダ名のみ指定した場合、カレントフォルダの下にある指定されたフォルダが削除されます。
※削除対象のフォルダ内にファイルが存在する場合、エラーが発生するので、あらかじめ削除対象フォルダ内のファイルを削除しておく必要があります。
(例)
Sub test()
RmDir "test"
RmDir "C:\Users\test"
End Sub
上の例では、カレントフォルダの下にtestフォルダを削除した後、C:\Usersフォルダの下にあるtestフォルダを削除します。 |
以上、ステートメントによるファイル操作を解説しました。手軽にファイルを操作できるこれらのステートメント、開発シーンにあわせてぜひお役立てください。
|