要らないファイルを自動削除するコードの作成

vbadirkilleyecatch

エクセルVBAを利用して、フォルダから要らないファイルを自動で削除するコードを紹介します。

Dir関数とKillステートメントの合わせ技になります。

非常に簡単なコードになっています。

今回は、フォルダに保存されている要らないファイルを削除するエクセルVBAコードを紹介します。

フォルダを開いて一つずつファイル名を確認して、ではなくて、コード実行一発でササッと完了します。

こんにちは、じゅんぱ店長(@junpa33)です。

エクセルVBA 要らないファイルを
自動削除するコードの作り方

このコードを作成するには、Dir関数とKillステートメントを使って作成します。

Dir関数について

Dir関数は、そのファイルが存在するかどうかを調べられる関数です。戻り値のデータ型はString型です。

記述方法

Dir ( pathname, attributes )

pathname・・・検索するファイル名、フォルダ名

複数のファイルを指定するためのアスタリスク(*)や疑問符(?)のワイルドカード文字が使えます。

sttributes ・・・属性 省略可能です。

定数内容
vbNormal0標準ファイル(既定値)
vbReadOnly1読み取り専用ファイル
vbHidden2隠しファイル
vbSystem4システムファイル
vbVolume8ボリュームラベル
vbDirectory16フォルダ

使い方

Dir関数は、戻り値として、pathnameで指定したファイル名と一致したファイル名がある時そのファイル名を返します。

ワイルドカードを使った場合は、最初に検索されたファイル名を返します。

もし、指定されたファイルが検索できないときは、空文字「””」を返します。

Killステートメントについて

filenameで指定したファイルを削除します。完全に削除されますので、ゴミ箱にも残りません。

ワイルドカードを使えば、複数のファイルを同時に削除することもできます。

記述方法

Kill  filename

filename・・・削除するファイル名

複数のファイルを指定するためのアスタリスク(*)や疑問符(?)のワイルドカード文字が使えます。

使い方

フォルダ内に該当するファイルがない場合はエラーストップします。

エラーストップ防止コードの設置が必要です。

ワイルドカードを使ってファイル名を指定すると、実行時に一度に該当ファイルが削除されます。

Do~Loopなどで繰り返す必要はありません。

今回の例題

PDFファイルで、不要なファイルを指定して削除します。

同じフォルダ内に削除コードを作成したエクセルファイルを入れておきます。

vbadirkillsetu001

ファイル自動削除コードは

自動削除コード

Dir関数でファイルの存在を調べます。

Killステートメントは、指定されたファイルを一度に削除しますので、ループ実行させる必要はありません。

コード
Sub DirKillサンプル1()

Dim mypath As String
Dim myfile As String

mypath = ThisWorkbook.Path & "\"

'削除したいファイルが存在するか
If Dir(mypath & "*999999*.PDF") <> "" Then

'ファイルを削除する
    Kill mypath & "*999999*.PDF"

Else

'見つからない場合のメッセージ
    MsgBox "削除予定ファイルは見つかりませんでした。"
    
End If

End Sub

実行結果

指定したファイル名について削除されました。

vbadirkillsetu002

要らないファイルを自動削除するコードの作り方まとめ

Killステートメントを利用するための注意点として、エラーストップの対処がポイントになります。

その対処のために、Dir関数を使って削除対象ファイルがあるかどうかを調べることになります。

コードとしても、簡単なコードに纏まりますので、パターンを公式的に覚えておけば便利かと思います。

短期間でエクセルVBAの独学習得を目指したいなら

エクセルVBAを独学する独習方法は、学習者それぞれ十人十色、多種多様と思われます。

けれども、

出来るだけ効率よく学習するためには、いくつかの大切なポイントがあります。

独学でもVBA習得の中級クラスに達するのはそんなに難しいことではありません。

先人が行った勉強方法をあなたがそのまま利用すればよいということです。

独習のための大切な7つのポイントは、上記記事にて解説しています。

重要ワード

独習によるVBA習得のキーワードは、

出来るだけ多くの実例に触れること!

です。

正直、VBAの学習について自分の周りの仕事(業務)からだけ実例を得るのでは効率良い習熟は無理です。

ハッキリ言って、

本当に短い期間でVBA習得を成功させたいなら、今使っている参考書が良書かどうかを判断し、新ツールとしてオンライン学習も取り入れて行うことが、

手っ取り早く短期間習得できるというのは間違いないでしょう。

このサイトでよく使うVBAのコードのトピックを纏めています。

エクセルVBA最速理解で必要な知識を集めよう!

今回の記事はここまでです。   最後までご覧いただき有難うございました。

<記事内容についての告知>VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。