[[20240726105030]] 『[VBA]フォルダがあったら削除』(やわら) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『[VBA]フォルダがあったら削除』(やわら)

お世話になっております。

フォルダが存在しなかったら作成、存在していたら削除をしたく
下記のようなコードを組みました。

 Sub bat()
 変数宣言割愛

    If Dir(Range("D2").Text, vbDirectory) = "" Then
        MsgBox "Pathが間違っています"
        End
    End If

    Set fso = CreateObject("Scripting.FileSystemObject")

    inputFolder = Range("D2").Text & "\"
    work_pa = inputFolder & "work\"

    If Dir(work_pa, vbDirectory) = "" Then
        fso.CreateFolder work_pa
    Else
        fso.DeleteFolder work_pa
    End If

 以降割愛

 work_paが存在していないときは正常にフォルダ作成できるのですが、
 存在していないときの削除が「パスが見つかりません」のエラーが出てしまいます。
 直前にDirで確認しているので、存在はしているはずですし
 実際にwork_paの変数の中身をエクスプローラーに入力してもそこに移動できます。

 末尾の\ が悪さしているかと思い、lenとleftで切り取ってみてもダメでした。
 なぜパスが見つからないと言われているのでしょうか?
 よろしくお願いいたします。

< 使用 Excel:Microsoft365、使用 OS:Windows10 >


 >存在していないときの削除が「パスが見つかりません」
 存在しているときの話ですよね
 
 フルパスで指定しましょう

 fso.DeleteFolder fso.GetFolder(work_pa).Path 
 とする
 または
 fso.GetFolder(work_pa).Delete
 でも
(´・ω・`) 2024/07/26(金) 11:16:27

存在しているときです。すみません。
ありがとうございます!できました。
イミディエイトウィンドウで見た感じ、パス末尾の\がついてるかどうかの差しかなかったので
やはりそこの違いなのですかね…?ありがとうございました!fso.GetFolder(work_pa).path、覚えます。
(やわら) 2024/07/26(金) 15:26:39

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.