[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『特定のファイルが見つかったら削除する。』(やまとう)
同じフォルダの中に、A、B、Cというファイルがあります。 さらに、このフォルダの中に、Zというファイルが、保存されていたり、保存されていなかったりします。 フォルダ内のファイルを検索して、もしZファイルが見つかったら、Zファイルを削除する というマクロを作りたいのですがどうなりますか。 マクロは、Aファイルに作ります。 kill ステートメントを使うと思うのですが。 お願いします。
わからない部分はどこですか? 消すのがKillとわかっているのなら探す部分でしょうか Dir関数を調べてみてください。 (momo)
Killするなら、探す必要はないでしょ? On Error Resume Next Kill Path & FileName On Error GoTo 0 とか (seiya)
サービスで? >このフォルダの中に、Zというファイル なので、Aファイル(マクロブック)とZというファイルは同じフォルダ。 ということで、seiyaさんの Kill Path & FileName のうち、Path は Thisworkbook.Patn & "\"
(ぶらっと)
探す必要があるかどうかとエラー無視して実行は別じゃない? 自分がやるなら探すけどね (とおりがかり)
特定のファイルの有無が分かればいいのだから検索する必要性がわからん。 私だったら探さないね。
On Error Resume Next を使うにせよErr.Numberで条件分岐するという手もあるし。 もちろんDirの戻り値やFSOのFileExistsで判定、でもいいし。 いずれにせよ検索する必要性は??だ。
(カエムワセト)
>自分がやるなら探すけどね
は、seiyaさんの
>Killするなら、探す必要はないでしょ?
この投稿をご覧になってのことだと思いますが、違いますか? とおりがかりさんの 探す は、Dir等を使った検索だと思ったのですが・・・。
このように解釈しても私には、seiyaさんの方法でよいではないか?
>自分がやるなら探すけどね
というところの主張の違いが理解できません。 私は、もともと理解力に乏しい・・、つまり、頭は良い方ではないので この主張の違いをもう少し詳しく説明してください。
ichinose
なんか変な方向に行っていますね?
ちなみに、私の回答意図は質問者さんの >もしZファイルが見つかったら、Zファイルを削除する という事なのでDirで存在の有無を確認してIf分岐でKillしてはどうか? という事でした。
ただ「削除するだけなら」という意味ではseiyaさんのでも問題なさそうですね。
>自分がやるなら探すけどね
は、私の受け止め方は無暗にOnErrorで回避するのがお嫌いなポリシーを持っておられるのかな? という感じがしましたが、それはそれで良いのではないかと思います。 必要云々より、いろんな方向性があって良いと思います。
質問者さんがレスされてませんが、勉強されたい方向に合っていれば良いかな〜と。 ただ消す方法を知りたいのか、存在したら消す方法を知りたいのか ですよね? (momo)
第一に私の投稿は質問者さんにしたものです。
質問がもっと発展すると思ったのですがね...
この場合、ただ"探す"は不十分と感じただけす。
必要があればファイルの属性を取得/変更する。 他のユーザーが使用中であった場合の処理はどうするのか。
等を考慮する必要がなければ、探す必要はないと思っただけのことです。 (seiya)
momoさんへ
>OnErrorで回避するのがお嫌いなポリシーを持っておられるのかな? >という感じがしましたが、それはそれで良いのではないかと思います。 ↑これが本当に真意なら・・・、
OSのファイル管理周りの操作を On Error Resume より簡単で可読性のよい エラー検知方法があれば教えてほしいです!!
削除に関しては、seiyaさん記述の
>他のユーザーが使用中であった場合の処理はどうするのか。
なんて代表的なエラーですよね!!
他にもファイルの有無以外のエラーが発生する可能性はあります。 もし、リムーバブルな媒体(CD、FD、etc)でディスクがなかったら? これに関しては、Dir関数だって、エラーになりますよ!!
又、別プロセスで微妙なタイミングで対象ファイルがなくなっている なんてことも 想定できます。 どのみちOn Errorが必要なら、ここで一括してエラー処理をした方が わかりやすいと思いますけどねえ!!
好き嫌いはともかく、ファイル管理で On Error 〜 は、必要 と私は思います。
seiyaさんへ
>第一に私の投稿は質問者さんにしたものです。 想定外の方から反論があったということですかねえ!! だとしたらそれは、幸せなことですねえ、内容が是にせよ、非にせよ このことに関して、改めて考えることが出来ますからねえ 正に掲示板の真骨頂ですね!!
ichinose
ichinoseさんへ
> 想定外の方から反論があったということですかねえ!! その通りですね...
>自分がやるなら探すけどね は気にもしていませんでしたが、
> ただ「削除するだけなら」という意味ではseiyaさんのでも問題なさそうですね。 が引っ掛かりましたね。
On Error ステートメント以外で処理するのは面倒だし、殆ど無意味に近いと思いますね。 (seiya)
あぁ・・・ 発言する度に何方かに引っ掛かってしまうようで・・・ 私には何の意図もありません。 何のポリシーもありません。 私自身はOnErrorは使いたい時に使いますし、 定型句のように意味無く使っている場合以外に指摘もしません。 皆様のようなプロとしての知識など持ち合わせていないただの物好きですから。 すみませんでした。 (momo)
momoさんへ
もともとDirを使用した回答がついた段階で、突っ込もうと思っていたところですが 早々に、ichinoseさんからのレスがあったので少々様子を見ていたのですが...
みんなで仲良くやりましょう。 (seiya)
みなさん,回答ありがとうございました。 勉強になりました。
killステートメントで検索したら,適当なものが見つかりました。↓
[[20090325221636]]
上記のHANAさんの回答のようなことを知りたかったのですが。 他にも応用できますので。
私の質問が,説明不十分なところがありました。 ありがとうございました。
(やまとう)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.