どうもマサヤです!
今日は先日のツール開発時に使ったVBAコードを紹介します。
ツールを作っていると、ファイルの存在確認後に削除したり、追加したりすることありますよね。
このようなコードは頻繁に使うものではないですが必要となったときに、効率的に再現したいわけです。
ということで、コピペで使えるように汎用的にしてみました。
前置きはこの辺にしてサッサとコードを紹介します!
この記事は「細かい説明などは解っているから不要だ!」というアナタへ向けた記事となります。
ファイルの存在確認するコード
まずは、ファイルの存在確認するコードです。
Sub existsFile() Dim fso As Object Dim find_file As String find_file = "C:\Users\Book1.xlsm" '←存在確認したいファイルを指定する。 Set fso = CreateObject("Scripting.FileSystemObject") If fso.FileExists(find_file) Then 'ファイルが存在していた場合の処理を入れる。 Else 'ファイルが存在していない場合の処理を入れる。 End If End Sub
ファイル確認はDir関数でも実現できますが、会社のネットワークなどは長くなりがちなので、私はFileSystemObjectを使ってます。
ファイルが存在する場合は削除するコード
Sub existsFile() Dim fso As Object Dim find_file As String find_file = "C:\Users\Book1.xlsm" '←存在確認したいファイルを指定する。 Set fso = CreateObject("Scripting.FileSystemObject") 'ファイルが存在していた場合、削除。 If fso.FileExists(find_file) Then Kill find_file End Sub
ファイル削除はKillを使ってます。
Killはファイルが開かれている場合などはエラーになるので注意しましょう。
ファイルが存在しない場合は追加するコード
ファイルがない場合は指定ファイルを追加します。
会社のネットワークフォルダにファイルが存在するかを確認。
無い場合、指定ファイルをコピーする時に使ったりします。
Sub existsFile() Dim fso As Object Dim find_file As String find_file = "C:\Users\Book1.xlsm" '←存在確認したいファイルを指定する。 copy_file = "C:\User\Documents\Book1.xlsm" '←追加したいファイルを指定する。 Set fso = CreateObject("Scripting.FileSystemObject") 'ファイルが存在していない場合はコピー。 If Not fso.FileExists(find_file) Then FileCopy copy_file, find_file End Sub
まとめ
ファイル存在確認後、削除や追加するコードを紹介しました!
そのまま使う・関数化する・カスタマイズするなどはアナタのお好みです!
使用したFileSystemObjectはファイル関連処理が色々できるので便利ですよね。
フォルダ内のファイル名を一覧化するといったようなこともできます。
VBA コピペで使える!特定フォルダのファイル一覧を一括取得するコード
「特定フォルダのファイル一覧を一括で取得したい!」 「フォルダの場所を指定したら、配下のファイル名を一括で取得してくれるコードがあればなぁ~」 そんな、あなたと私のためにコピペで使えるコードを紹介します!
コメント