エクセル VBA 入門 ファイル操作

      2017/07/13


ファイル操作について説明していきます。
サンプルソースを試すときはエクセルにツール→参照でFileSystemObject Runtimeにチェックを入れておいてください。

目次
ファイル名変更
ファイル削除
ファイルコピー
フォルダ作成
フォルダ削除

ファイル名変更
Name 変更前ファイル名 As 変更後ファイル名
サンプルソース

Sub start()
Dim file As New Scripting.FileSystemObject
Dim Sfile As Scripting.file
Dim filename As Variant

filename = Application.GetOpenFilename()
If filename = False Then Exit Sub

Set Sfile = file.GetFile(filename)

Range("A3").Value = Sfile.Name

Name Sfile.Name As Cells(3, 3)

End Sub


実行結果は選択したファイル名がCells(3, 3)で指定した名前に変更されます。
注意事項:文法にある変更前ファイル名や変更後ファイル名は変数かオブジェクトで指定してください。
たとえばa.txtとそのまま書けません。
× Name a.txt As b.txt

ファイルのコピー
FileCopy 変更前ファイル名,変更後ファイル名
サンプルソース

Sub start()
Dim file As New Scripting.FileSystemObject
Dim Sfile As Scripting.file
Dim filename As Variant

filename = Application.GetOpenFilename()
If filename = False Then Exit Sub

Set Sfile = file.GetFile(filename)

Range("A3").Value = Sfile.Name

FileCopy Sfile.Name,Cells(2, 2)

End Sub

実行結果は選択したファイル名がCells(2, 2)になります。
エラー処理はいれておりません。

ファイルを削除
Kill 削除ファイル
サンプルソース

Sub start()
Dim file As New Scripting.FileSystemObject
Dim Sfile As Scripting.file
Dim filename As Variant

filename = Application.GetOpenFilename()
If filename = False Then Exit Sub

Set Sfile = file.GetFile(filename)

Range("A3").Value = Sfile.Name

Kill Sfile.Name

End Sub

実行結果は選択したファイルが削除されます。

フォルダを削除
MkDir フォルダを作成
サンプルソース

Sub start()
Dim file As New Scripting.FileSystemObject
Dim Sfile As Scripting.file
Dim filename As Variant

filename = Application.GetOpenFilename()
If filename = False Then Exit Sub

Set Sfile = file.GetFile(filename)

Range("A3").Value = Sfile.Name

MkDir Sfile.Name

End Sub

実行結果は選択したフォルダが作成されます。

フォルダを削除
RmDir 削除フォルダ
サンプルソース

Sub start()
Dim file As New Scripting.FileSystemObject
Dim Sfile As Scripting.file
Dim filename As Variant

filename = Application.GetOpenFilename()
If filename = False Then Exit Sub

Set Sfile = file.GetFile(filename)

Range("A3").Value = Sfile.Name

RmDir Sfile.Name

End Sub

実行結果は選択したフォルダが削除されます。




PR



 - Excel入門 ,

Translate »