ExcelVBA Killで指定したフォルダのファイルを自動削除して整理する方法

 

ExcelVBA Killで指定したファイルをプログラムで削除することができます。これにより、不要なファイルの整理や自動化されたファイル管理が可能になります。

使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

 

Excel VBA Killの利用

以下のようなシーンで利用されます。

1.毎日生成されるバックアップファイルを一定期間経過後に削除する。

2.テンポラリファイル(作業用ファイル)を作業終了後に自動で削除する。

3.古いデータファイルを定期的に削除してストレージを確保する。

使い方

Kill ステートメントを使用してファイルを削除します。ファイルのパスを指定することで、そのファイルを削除できます。

ポイント

1. ファイルが存在しない場合
指定したファイルが存在しないとエラーが発生します(ランタイムエラー)。

2. 削除の確認
Kill ステートメントは確認メッセージを表示せずに削除を実行するため、誤操作に注意が必要です。

3. ロックされているファイル
他のプログラムで使用中のファイルは削除できません。

4. 削除の取り消し不可
削除されたファイルはごみ箱に移動せず完全に削除されます。

 

Excel VBA Killのサンプルコード
特定のフォルダーにあるファイルを削除するコード
Option Explicit

Sub DeleteFile()
    Dim filePath As String
    ' 削除したいファイルのパスを指定
    filePath = "C:\Users\User\Desktop\sourceFile\motofile.txt"
    
    ' ファイルが存在するか確認
    If Dir(filePath) <> "" Then
        ' ファイルを削除
        Kill filePath
        MsgBox "ファイルを削除しました: " & filePath
    Else
        MsgBox "ファイルが見つかりません: " & filePath
    End If
End Sub

1. Dir 関数を使用してファイルの存在を確認します。

2. 存在する場合は Kill ステートメントで削除を実行します。

3. 結果を MsgBox でユーザーに通知します。

 

指定したフォルダー内のすべての .txt ファイルを削除する。

Option Explicit

Sub DeleteAllTextFiles()
    Dim folderPath As String
    Dim fileName As String
    
    ' フォルダーのパスを指定
    folderPath = "C:\Users\User\Desktop\sourceFile\"
    fileName = Dir(folderPath & "*.txt")
    
    ' フォルダー内のすべての .txt ファイルを削除
    Do While fileName <> ""
        Kill folderPath & fileName
        fileName = Dir ' 次のファイルを取得
    Loop
    
    MsgBox "すべての .txt ファイルを削除しました: " & folderPath
End Sub

KILL実行前に削除対象のファイルやフォルダーを慎重に確認して、削除前にコピー(バックアップ)する処理を追加してください。

記憶定着問題集

操作方法:1.●●●をクリック(スマホはタップ)で答え表示。2.答えをクリック(スマホはタップ)で●●●表示。1⇔2を繰り返すことで、記憶を定着できます。

1. ●●● 関数を使用してファイルの存在を確認します。

2. 存在する場合は ●●● ステートメントで削除を実行します。

3. 結果を MsgBox でユーザーに通知します。

Excel VBAで自動化するコードのベースを習得したい方におすすめ!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。