器用貧乏の独り言

器用貧乏なおっさんが気の向くままに。

【VBA】Excelでファイル削除アプリを作る

VBAプログラミングをしてみたいけど、何を作ったら良いのか・・・。」

そんな方にご提案です。

ファイル削除アプリを作成してみませんか?

比較的簡単に作成できる上、実用性もあるプログラムなので、初めてのプログラミングにはうってつけの題材だと思います。

今回ご紹介するプログラムですが、利用する画面はこんな感じです。

指定したフォルダにあるファイルの内、特定の文字列を含むもののみを削除します。
今回はこんなフォルダを用意しました。

こんな感じでフォルダパスと文字列を入力して実行すると・・・。

こんなメッセージが表示されます。

フォルダを確認すると、「不要」という文字列を含んだファイルだけが削除されています。


なんだかそれっぽいアプリに見えませんか?笑
このアプリのプログラムがこんな感じです。

Sub File_Delete()
'各種変数の定義
Dim Folder_path
Dim fso
Dim file
Dim files
Dim record As Integer
Dim Delstr As String
    'フォルダパスをpathに格納
    Folder_path = Range("B2")
    '検索文字列をDelstrに格納
    Delstr = Range("B4")
    '削除ファイル数を0にセット
    record = 0

    'オブジェクトの作成
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set files = fso.GetFolder(Folder_path).files

    'フォルダ内の全ファイルをループ
    For Each file In files

     '指定した文字列を含むファイルだった時は削除
        If InStr(file.Name, Delstr) >= 1 Then
            file.Delete
            record = record + 1
        End If
        
    Next file
        
    '削除件数をメッセージボックスで表示する。
    MsgBox record & "件のファイルを削除しました。"

End Sub

想像したよりも短かったのではないでしょうか?(そんなことないですかね?)

このプログラム(マクロ)を削除実行ボタンに登録することだけでアプリの完成です。

ちなみにマクロの登録はこんな感じでします。

まずマクロを登録するボタンを右クリックして「マクロの登録」を開きます。

次に作成したマクロを選択して登録します。

これでマクロの登録は完了です。

※フォルダパスの入力セルをB2、検索文字列の入力セルをB4にしてもらえれば、上記のソースコードを丸ごとコピペして使うことができます。

まずはコピペで使ってみて、「使いにくいな」とか「こんなこともできたら便利なのに」とかアイデアが湧いてきたら、その機能を実装する為の改造に挑戦してみてください。

ソースコード内にコメントで簡単な解説を入れていますので参考になれば幸いです。

ネットからコピペしてきたプログラムを自分好みに改造していくのが、上達への近道です。
まあ、私がそう思っているだけなんですがね。

この記事が、誰かの役に立つようなら嬉しいです。