Excel VBA質問箱 IV

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

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


10317 / 13646 ツリー ←次へ | 前へ→

【22480】更新日時によりファイルを削除 真咲 05/2/22(火) 16:50 質問[未読]
【22481】Re:更新日時によりファイルを削除 Jaka 05/2/22(火) 16:57 回答[未読]
【22482】Re:更新日時によりファイルを削除 真咲 05/2/22(火) 17:07 質問[未読]
【22483】Re:更新日時によりファイルを削除 kazu 05/2/22(火) 18:31 発言[未読]
【22485】Re:更新日時によりファイルを削除 真咲 05/2/22(火) 19:14 質問[未読]
【22500】Re:更新日時によりファイルを削除 kazu 05/2/22(火) 22:53 発言[未読]
【22512】Re:更新日時によりファイルを削除 Jaka 05/2/23(水) 10:19 回答[未読]
【22522】Re:更新日時によりファイルを削除 真咲 05/2/23(水) 13:17 お礼[未読]

【22480】更新日時によりファイルを削除
質問  真咲  - 05/2/22(火) 16:50 -

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

ある、フォルダ内のエクセルファイルに対して、更新日時が2004/2/30以前の
ファイルを削除するというマクロを作成しているのですが
下記ですと →部分でファイル名が不正ですとエラーがでてしまいます。。
どなたか良い方法を教えていただけるようお願いいたします。


Sub 更新日の確認()

  Dim Mydate As Date, Comdate As Date
  Dim Fil1 As String
  
 → Fil1 = "C:\\デスクトップ\*.xls"
  Mydate = FileDateTime(Fil1)
  Comdate = 2004 / 2 / 31

  If Mydate > Comdate Then
    Kill Fil1
   
  End If
  
End Sub

【22481】Re:更新日時によりファイルを削除
回答  Jaka  - 05/2/22(火) 16:57 -

引用なし
パスワード
   こんにちは。

ここ見てみてね。
[#22336]

>  Comdate = "2004/2/31"

【22482】Re:更新日時によりファイルを削除
質問  真咲  - 05/2/22(火) 17:07 -

引用なし
パスワード
   ▼Jaka さん:

返信ありがとうございます。

>ここ見てみてね。
>[#22336]

ありがとうございます。みてみました。

>>  Comdate = "2004/2/31"

上記は [#22336]のように一度セルに値として格納しないと
いけないということでしょうか?


FlDPass = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
  FilNm = Dir(FlDPass)
  Do Until FilNm = ""
    If FilNm Like "*.xls" Then
     i = i + 1
     Cells(i, 1).Value = FilNm
     Cells(i, 2).Value = FileDateTime(FlDPass & FilNm)
    End If
    FilNm = Dir()
  Loop

【22483】Re:更新日時によりファイルを削除
発言  kazu  - 05/2/22(火) 18:31 -

引用なし
パスワード
   真咲 さん、Jaka さん:

こんばんは。

デスクトップの場合って、めんどいですよね。

通常はUserプロファイルのデスクトップにあるものと
ALL USERのデスクトップにあるもの両方が表示されてしまうんで・・・。

CreateObject("WScript.Shell").SpecialFolders("Desktop")
ではUSERプロファイル上のデスクトップの内容しか取得できません。

通常はそれで充分なのですが・・・使い方とか、会社での使い方とか
色々な事情でALL USERプロファイルのデスクトップに割り付けられるファイルが存在することも考慮した方が親切かもです。

上記は [#22336]のように一度セルに値として格納しないと
いけないということでしょうか?
↑セルに書き出す必要は無いです。
そのまんまFlDPass & FilNm をKillしちゃって下さい。ぜんぜん問題ないですよ。

【22485】Re:更新日時によりファイルを削除
質問  真咲  - 05/2/22(火) 19:14 -

引用なし
パスワード
   ▼kazu さん:Jaka さん:

こんばんわ。
返信ありがとうございます。

ディスクトップでの作業をやめてみたのですが、
一番最初の質問と同じようなエラーがでてしまいます。。
もう、どうしてよいかわかりません。。
ファイル名の指定がおかしいのでしょうか?
ご教授お願いいたします。

【22500】Re:更新日時によりファイルを削除
発言  kazu  - 05/2/22(火) 22:53 -

引用なし
パスワード
   真咲 さん:

現状のコードは、最初に投稿されたもののままでしょうか?

コードを元に何処が間違いなのか解った方がより理解出来ると思いますので一応確認です。

違う様なら現状のコードを返信してもらっていいですか?

【22512】Re:更新日時によりファイルを削除
回答  Jaka  - 05/2/23(水) 10:19 -

引用なし
パスワード
   こんにちは。

パスの書き方がわからなかったら、下記コードを書いたブックを、該当のフォルダに移動して実行すれば、該当フォルダのパスの書き方が解ります。

Range("A1").Value = "このブックがあるフォルダパス"
Range("A2").Value = ThisWorkbook.Path
Range("A4").Value = "このブックのフルネーム"
Range("A5").Value = ThisWorkbook.FullName

>[#22336]のように一度セルに値として格納しないと
>いけないということでしょうか?

できたら、22336下のスレッドも見てくださいね。
読んでくれれば、変数&コードの中身が解りやすいようにセルに書き込んだだけと言うのが解ると思います。
(変数や実行結果の中身を知らないと、その後のプログラムは書けませんから...。

【22522】Re:更新日時によりファイルを削除
お礼  真咲  - 05/2/23(水) 13:17 -

引用なし
パスワード
   ▼Jaka さん:,Kazuさん

返信ありがとうございます。
コードは最初のコード部分のファイルパス部分を
C:\test\としてみたら、正常に起動できました。

原因はよくわかりませんでしたが
みなさんのご教授によりいろいろと勉強になりました。

ありがとうございます。

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