Excelスキルアップコレクション
           〜 Something U Want 〜


Google  

WWW を検索
Excelスキルアップコレクション内 を検索
 @     Top  >     Excel VBA スキルアップコレクション Topics  >     (13) フォルダを削除する

 
(13) フォルダを削除する

 VBAからフォルダを削除する方法を紹介します。

 下記サンプルコードは、フォルダ「C:\Sample」配下に存在しているフォルダ「value」を削除する処理です。

 1行目:  Public Sub Sample_Killfolder_01()
 2行目:  
 3行目:      Rmdir "C:\Sample\value"
 4行目:  
 5行目:  End Sub
このサンプルコードを実行すると、フォルダ「C:\Sample」配下にフォルダ「value」が存在している場合には、そのフォルダが削除されます。
<実行前>

<実行後>

フォルダが存在していない状態で、Rmdirステートメントを実行するとエラーが発生します。
 Rmdirステートメントは、フォルダ内が空である必要があります。フォルダ内にファイルやサブフォルダが存在している状態で、Rmdirステートメントを実行するとエラーが発生します。
 また、Rmdir以外にも、FileSystemObjectを用いてフォルダを削除することができます。

 1行目:  Public Sub Sample_Killfolder_02()
 2行目:      
 3行目:      Dim FSO As Object
 4行目:  
 5行目:      Set FSO = CreateObject("Scripting.FileSystemObject")
 6行目:      
 7行目:      ' フォルダを削除する。
 8行目:      Call FSO.DeleteFolder("C:\Sample\value")
 9行目:      
10行目:      Set FSO = Nothing
11行目:      
12行目:  End Sub
  単純なフォルダの削除であれば、プログラムコードが少ない分、Rmdirの方が使い勝手が良いでしょう。しかし、FileSystemObjectのDeleteFolderメソッドは削除対象のフォルダ内にファイルやサブフォルダが存在していてもフォルダを削除することができたり、読み取り専用のフォルダを強制的に削除するオプションがあったりと、DeleteFolderメソッドの方が、Rmdirステートメントよりも機能が充実していると言えます。

…
    ' フォルダが読み取り専用であっても削除する。
    Call FSO.DeleteFolder("C:\Sample\value", True)
…
ページの先頭へ