Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5362 / 13644 ツリー ←次へ | 前へ→

【51226】フォルダの削除 07/9/4(火) 20:13 質問[未読]
【51229】Re:フォルダの削除 りん 07/9/4(火) 21:30 発言[未読]
【51230】Re:フォルダの削除(補足) りん 07/9/4(火) 21:49 発言[未読]
【51242】Re:フォルダの削除(補足) 07/9/5(水) 18:03 質問[未読]
【51243】Re:フォルダの削除(補足) りん 07/9/5(水) 18:42 発言[未読]
【51244】Re:フォルダの削除(補足) 落第生 07/9/5(水) 19:10 発言[未読]
【51259】Re:フォルダの削除(補足) 07/9/6(木) 14:56 質問[未読]
【51260】Re:フォルダの削除(補足) Jaka 07/9/6(木) 16:41 発言[未読]
【51261】Re:フォルダの削除(補足) Jaka 07/9/6(木) 17:18 発言[未読]
【51292】Re:フォルダの削除(補足) 07/9/10(月) 15:52 お礼[未読]

【51226】フォルダの削除
質問    - 07/9/4(火) 20:13 -

引用なし
パスワード
   はじめまして初心者です。よろしくお願いします。
Office2007を使用しています。
VBAで新規フォルダとファイルを作成し編集後、
不要になったので作成したフォルダとファイルを削除しようと思い
ファイルを削除後、フォルダも削除しようとしたらエラーになります。
エラー内容は
実行時エラー75 パスが無効です。
RmDir("C:\編集中\20070904\")で発生します。
Office2003では問題なく動いていたのですが...。
お手数をかけますが教えてください。

【51229】Re:フォルダの削除
発言  りん E-MAIL  - 07/9/4(火) 21:30 -

引用なし
パスワード
       鈴 さん、こんばんわ。

>Office2007を使用しています。
>VBAで新規フォルダとファイルを作成し編集後、
>不要になったので作成したフォルダとファイルを削除しようと思い
>ファイルを削除後、フォルダも削除しようとしたらエラーになります。

>Office2003では問題なく動いていたのですが...。
XL2007(WinXP)で、
Sub test()
  MkDir "C:\編集中\20070904\"
  MsgBox "Del"
  RmDir "C:\編集中\20070904\"
End Sub
最初は普通に動作していましたが、何度か実行するとエラー(75)になりました。
理由はよくわかりません。

Sub test()
  MkDir "C:\編集中\20070904"
  MsgBox "Del"
  RmDir "C:\編集中\20070904"
End Sub

最期の¥を取ったらエラーは発生しませんでした。ちゃんとフォルダも作成→削除されています。

解決したような、してないような微妙な答ですみません。

【51230】Re:フォルダの削除(補足)
発言  りん E-MAIL  - 07/9/4(火) 21:49 -

引用なし
パスワード
   鈴 さん、こんばんわ。
>XL2007(WinXP)で、
>Sub test()
>  MkDir "C:\編集中\20070904\"
>  MsgBox "Del"
>  RmDir "C:\編集中\20070904\"
>End Sub
>最初は普通に動作していましたが、何度か実行するとエラー(75)になりました。
>理由はよくわかりません。
今度は、再現できませんでした。何度ためしてもエラーになりません。

ただ、さっきエラーになった時に確かに

>最期の¥を取ったらエラーは発生しませんでした。ちゃんとフォルダも作成→削除されています。

ということでしたので、やはりこれを試してみてください。

【51242】Re:フォルダの削除(補足)
質問    - 07/9/5(水) 18:03 -

引用なし
パスワード
   りんさん

色々試していただきありがとうございます。

こちらで"\"をとって実行してみたのですが
結果は同じで実行時エラー75になります。


フォルダの中にファイルが残っていたり
とかもないですし…
すいませんが解決方法があれば教えてください。

【51243】Re:フォルダの削除(補足)
発言  りん E-MAIL  - 07/9/5(水) 18:42 -

引用なし
パスワード
   鈴 さん、こんばんわ。

>こちらで"\"をとって実行してみたのですが
>結果は同じで実行時エラー75になります。

FileSystemObjectを使ってもだめですか?

Sub test()
  ''C:\Work\フォルダを削除します
  Dim FSO As Object, a As String
  '削除するフォルダ
  a = "C:\編集中\20070904"
  '
  Set FSO = CreateObject("Scripting.FileSystemObject")
  '
  If FSO.FolderExists(a) Then
    MsgBox "DEL", vbInformation
    FSO.DeleteFolder a
  Else
    MsgBox a & " がみつかりません", vbExclamation
  End If
  '
  Set FSO = Nothing
End Sub

これでもダメでしたら、他の部分に原因があるとおもうので、差しさわりのない範囲でコードを見てみたいです。

【51244】Re:フォルダの削除(補足)
発言  落第生  - 07/9/5(水) 19:10 -

引用なし
パスワード
   FSO.DeleteFolder a ,true

Forceもしておいたらどうでしょうか?

【51259】Re:フォルダの削除(補足)
質問    - 07/9/6(木) 14:56 -

引用なし
パスワード
   りんさんいろいろありがとうございます。

りんさんに教わったFSOを使用した方法も同じエラーメッセージが出ました。
ソースは

  Set FSO = CreateObject("Scripting.FileSystemObject")

  '編集ファイル作成
  FSO.CopyFile "C:\AAAA\20070904\"& "リスト編集20070904.xls",
         "C:\編集中\20070904\"& "リスト編集20070904.xls"

  〜編集処理(中略)〜

  '削除処理
  Kill("C:\編集中\20070904\リスト編集20070904.xls")
  RmDir("C:\編集中\20070904\")

です。

なかなか難しいのかと思い
ロジック変更を考えています。

【51260】Re:フォルダの削除(補足)
発言  Jaka  - 07/9/6(木) 16:41 -

引用なし
パスワード
   どこでエラーになったのかも書いておいた方が良いです。

▼りん さん:
>>最期の¥を取ったらエラーは発生しませんでした。ちゃんとフォルダも作成→削除されています。
>
>ということでしたので、やはりこれを試してみてください。
とのことなので、

>  RmDir("C:\編集中\20070904\")
    ↓
   RmDir("C:\編集中\20070904")
を試されたのでしょうか?

RmDirの前に
Doevents
を入れてみたらどうかも試してみた方が良いかも...。
1個でダメだったら2つとか。
2007見たこと無いけど。

【51261】Re:フォルダの削除(補足)
発言  Jaka  - 07/9/6(木) 17:18 -

引用なし
パスワード
   因みに(2002ですが)

Sub foldmak()
PT = CreateObject("WScript.Shell").SpecialFolders("Desktop")
MkDir (PT & "\練習")
DoEvents

'CreateObject("WScript.Shell").CurrentDirectory = PT & "\練習\"
 '↑コメントを外してカレントディレクトリを移すとエラーになる。
MsgBox CurDir()

RmDir (PT & "\練習")
DoEvents
End Sub

【51292】Re:フォルダの削除(補足)
お礼    - 07/9/10(月) 15:52 -

引用なし
パスワード
   Jakaさん、りんさんいろいろありがとうございました。

DoEventsでも解決できなかったため
ファイルをcloseしている箇所を変更したら
RmDirで削除できるようになりました。

低レベルの質問に長々答えていただきありがとうございます。
勉強になりました。

5362 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free