
VB6.0について質問です。
指定のフォルダ内にあるMDBファイル名をうまく取得できないのでお知恵をお貸しください。
最初のファイル名は取得できるのですがitem = Dirで次のファイル名を取得できないでいます。
INIfile_readでiniファイルから設定値を取得しています。
エラーメッセージは「プロシージャの呼び出し、または引数が不正です」
最初にファイル名を取得できているときにDirをウォッチ式の追加でみてみたらちゃんと次のファイル名は表示されます。
この場合どのような処理ミスが考えられますか??
path = INIfile_read("PATH", "HD")
item = Dir(path & "\" & "*.mdb", vbNormal)
Do While item <> "" ' ループを開始します。
date1 = Mid(item, 1, 4) & "/" & Mid(item, 5, 2) & "/" & Mid(item, 7, 2)
count = DateDiff("d", date1, Date) '今日とファイル作成日との差を取得
bkup = INIfile_read("DateDiff", "DATE") 'iniファイルから削除す日数を取得
If count > bkup Then
Kill (path & "\" & item)
End If
item = Dir
Loop
No.4ベストアンサー
- 回答日時:
dir()のLoopの中で、
Kill (path & "\" & item)
を実行しているからじゃないですか?
取得するファイル名のリストがどんどん変化(この場合は削除されて減っている)するので
削除後のファイル名は隙間が開くと思います。
例えば
2番目のファイル名を取得した後で、それを削除すると
次のDir()で取得した3番目のファイル名は
削除前の4番目のファイル名になって3番目のファイル名が取得できない
ということだと思います。
ファイルを削除した場合は、Dir()を最初からやり直したらどうでしょう?
No.5
- 回答日時:
Hayashi_Trek さんのおっしゃる通りだと思います。
私も以前同じ様なことを経験していました。
その時は、FileSystemオブジェクトを使って作り直しました。
参考URLをご覧下さい。
参考URL:http://msdn2.microsoft.com/ja-jp/library/y32kbeb …
No.3
- 回答日時:
どの行でエラーが発生いているのか不明のためはっきりとした原因がわかりません。
INIfile_read()の不具合、MDBのファイル名の定義ミス、count という変数名、その他にエラーの原因があると思われます。
下記コードで実行させてみましたが itemにはちゃんとファイル名が入っていました。
path = "c:\work"
item = Dir(path & "\" & "*.mdb", vbNormal)
Do While item <> "" ' ループを開始します。
Debug.Print item
item = Dir
Loop
No.2
- 回答日時:
ステップ実行で
item = Dir
のところでエラーが出ているのを確認しましたか?
bkup = INIfile_read("DateDiff", "DATE")
で次の項目を読みにいってエラーとなっているって事はないですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) VBA GetAttrについて教えてください 2 2022/12/22 15:25
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Visual Basic(VBA) Excel VBA でデータ転記について 1 2023/03/07 19:11
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
ExcelVBAのDirでスペース含むフ...
-
コマンドプロンプトでファイル...
-
word VBA ファイル名 保存
-
access,vbaでフォルダ内のファ...
-
コマンドプロンプトで変数が数...
-
【DOSバッチ開発】末尾のタブの...
-
バッチコマンドでファイル名の...
-
バッチファイルで、iniファイル...
-
前日日付のファイルGETバッチ
-
ExifToolでの文字化け対策
-
[DOS] コピー先に同じファイル...
-
フォルダ内の更新日時が一番新...
-
ファイル名に ” を使うと エク...
-
バッチ処理で16進数でファイル...
-
エクセルVBAを使用してJPGファ...
-
テキストファイルのファイル名...
-
ファイル名を該当フォルダ内か...
-
コマンドプロンプトでのCSV...
-
ファイル名を変更して移動させ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
バッチファイルで、iniファイル...
-
コマンドプロンプトでファイル...
-
ftp処理でmove(移動)を行いたい
-
コマンドプロンプトで変数が数...
-
ExcelVBAのDirでスペース含むフ...
-
[DOS] コピー先に同じファイル...
-
ファイル名の頭5桁と同名のフォ...
-
サブフォルダからファイルをコ...
-
フォルダ内の更新日時が一番新...
-
.batでファイル名から抽出して...
-
access,vbaでフォルダ内のファ...
-
バッチファイルで同一フォルダ...
-
バッチコマンドでファイル名の...
-
Windowsコマンドプロンプトで、...
-
スタートアップのファイルをバ...
-
ファイル名に ” を使うと エク...
-
ファイル名を該当フォルダ内か...
-
aタグのhrefにネットワークパス...
-
【DOSバッチ開発】末尾のタブの...
おすすめ情報