みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

実行時エラー 5 ファイル名の書き出し

これはどういう意味のエラーなのでしょう?

Const FolderName As String = "C:\Users"
Sub ファイル名を書き出す()
Dim myFile As String

myFile = Dir(FolderName & "\*.*", vbDirectory)

Do While myFile <> ""

Debug.Print myFile
myFile = Dir
Loop

End Sub

このようにしてフォルダの中のファイル名を書き出していますが
ある特定のファイル名になると、myFile = Dirの部分で、

実行時エラー 5
プロシージャーの呼び出し、または引数が不正
が発生します。

ファイル名をただ読み込んでるだけなのに、どうしてエラーが発生するのでしょうか?

投稿日時 - 2013-12-21 21:40:34

QNo.8395732

暇なときに回答ください

質問者が選んだベストアンサー

これはおそらく、繰り返し処理を行っている途中で、繰り返すかどうかを判断する為の基準となる変数の値を変更しようとしているからだと思います。別の表現をすれば、For i=1 to 10 ... Next i のコードがあったとして、そのループの中に i=2 を記述するようなものです。
「ある特定のファイル名になると」と記載されていますが、複数のファイルがあるフォルダでエラーが発生するのではありませんか? もしそうではなく、どんなフォルダでも、ある特定のファイル名で引っかかるようであれば、それは自分の間違いです。

他のフォルダではどのような挙動になるか、あと、ご自身の記述されたコードについての検証をお願いします。

それでは。

投稿日時 - 2013-12-31 12:09:43

お礼

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

投稿日時 - 2014-01-01 14:28:11

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

No.1 の者です。
すみません思いっきり勘違いしてました。ご質問の内容にてDo Loop の使用方法に問題はありません、失礼しました。
Dir関数の引数がvbDirectoryなのに「ファイル名を書きだしている」という記述が気になりますが、特に問題は無いように思います。
お役に立てずすみません <(_ _)>

投稿日時 - 2013-12-31 16:30:19

お礼

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

投稿日時 - 2014-01-01 14:28:09

あなたにオススメの質問