この記事では、Microsoft ExcelのVBA(Visual Basic for Applications)を用いて、ファイルを削除する方法について解説します。そのまま使えるサンプルコードを多数用意しています。
VBAでファイルを削除する基本的な方法
Killステートメントとは?
VBAでファイルを削除する最も基本的な方法は、Kill
ステートメントを使用することです。このKill
ステートメントは、指定したファイルパスに存在するファイルを削除する命令です。
基本形
基本的な形式は非常にシンプルです。
Kill targetFilePath
この一行で、指定したファイルパスのファイルを削除できます。
ワイルドカードの使用
また、Kill
ステートメントでは、ワイルドカード(*
)を使用して複数のファイルを一括で削除することも可能です。
Kill "C:\example\*.txt"
このコードは、C:\example
フォルダ内の全ての.txt
ファイルを削除します。
サンプルコードとその解説
サンプル1:単一のファイルを削除する
このサンプルでは、特定のファイルを削除する方法を示します。
Sub DeleteOneFile()
' 削除するファイルのパスを指定
Dim targetFilePath As String
targetFilePath = "C:\example\sample.txt"
' Killステートメントでファイルを削除
Kill targetFilePath
End Sub
サンプル2:複数のファイルを一括で削除する
このサンプルでは、特定の拡張子を持つ複数のファイルを一括で削除する方法を示します。
Sub DeleteManyFiles()
' 削除するファイルのパスを指定(ワイルドカード使用)
Dim targetFilePaths As String
targetFilePaths = "C:\example\*.txt"
' Killステートメントでファイルを一括削除
Kill targetFilePaths
End Sub
サンプル3:ファイルの存在を確認してから削除する
このサンプルでは、ファイルが存在するかどうかを確認した上で、存在する場合のみ削除する方法を示します。
Sub DeleteFileAfterCheck()
' 削除するファイルのパスを指定
Dim targetFilePath As String
targetFilePath = "C:\example\sample.txt"
' Dir関数でファイルの存在を確認
If Dir(targetFilePath) <> "" Then
' Killステートメントでファイルを削除
Kill targetFilePath
End If
End Sub
VBAでファイルを削除する際のFAQ
Q:Killステートメントで削除したファイルはゴミ箱に移動しますか?
A:いいえ、Kill
ステートメントで削除したファイルはゴミ箱には移動せず、完全に削除されます。復元することはできませんので、使用する際には注意が必要です。
Q:ファイルが存在しない場合、Killステートメントを使用するとどうなりますか?
A:ファイルが存在しない場合、Kill
ステートメントを使用するとエラーが発生します。そのため、Dir
関数などで事前にファイルの存在を確認することが推奨されます。
Q:Killステートメントでフォルダも削除できますか?
A:いいえ、Kill
ステートメントはファイルの削除専用です。フォルダを削除する場合は、RmDir
ステートメントを使用する必要があります。
Q:ワイルドカードを使って特定の拡張子だけを削除することは可能ですか?
A:はい、ワイルドカードを使用することで特定の拡張子を持つファイルを一括で削除することが可能です。例えば、Kill "C:\example\*.txt"
とすると、C:\example
ディレクトリ内の全ての.txt
ファイルが削除されます。
Q:Killステートメントで複数の指定ファイルを削除する方法は?
A:Kill
ステートメント自体は一度に一つのパターンしか削除できませんが、VBAのループ構文を使って複数のファイルを削除することは可能です。
Q:ファイルを削除する前に確認ダイアログを表示することはできますか?
A:VBAのMsgBox
関数を使用して、確認ダイアログを表示することができます。ユーザーが「はい」を選択した場合のみ、Kill
ステートメントを実行するようにプログラムを設計することが可能です。
Q:Killステートメントはどのような環境でも使用できますか?
A:Kill
ステートメントはVBAが動作するアプリケーションであれば基本的に使用可能です。ただし、ファイルのパーミッションやアクセス権限によっては、削除できない場合もあります。
Q:Killステートメントで削除したファイルを復元する方法はありますか?
A:Kill
ステートメントで削除したファイルは完全に削除されるため、VBAの標準機能で復元する方法はありません。復元が必要な場合は、専用のソフトウェアが必要となります。
Q:Killステートメントの代わりに他の方法でファイルを削除することはできますか?
A:はい、FileSystemObject
を使用する方法もありますが、その場合は事前に参照設定で「Microsoft Scripting Runtime」を追加する必要があります。
関連動画
まとめ
VBAでファイルを削除する方法は多く、その用途に応じて最適な方法があります。基本的なKill
ステートメントから、ファイルの存在確認まで、この記事で紹介したサンプルコードを活用して、効率的なファイル操作を行いましょう。
Excelのショートカットキーの練習
当サイトはショートカットキーの練習を実際の動きを確認しながら練習できる機能がついています。繰り返し指を動かして練習ができるので、ゲーム感覚で遊んでいくうちに自然とショートカットキーが使えるようになれます。ショートカットキーは暗記するよりも実際に手を動かして練習していったほうが習得が早くなるので、是非当サイトをブックマークに登録し定期的に練習してみてください。下記のSTARTキーを押下すると練習を始められます。
※推奨ブラウザ Google Chrome