初めまして。プログラミング初心者です。
現在VBAを使ってあるプログラムを作成しています。
【実行したい処理】
以下のfor文で、ファイルのパスを取得したい。
【現状】
if文内にMsgBoxを入力し、FilePath(i)と入力すればパスがきちんと表示される。
しかし、For文を抜けた(Nextの後ろ)にMsgBoxを記述すると中身が表示されない。
(メッセージボックスが1度表示され、ブランクの状態)
このコードの後ろに、ここで取得したパスのファイルを開くというプログラムを
追加したいのですが、パスが取得できていない(正しく表示されない)ため
次に進めません。どうしたらいいのか教えてください。よろしくお願いします。
Dim FilePath As Variant ReDim FilePath(1 To 200) '指定フォルダ内の.txtファイルを探索します i = 0 For Each File In FSO.GetFolder(Fname).Files If InStr(File.Name, "sh") > 0 Then i = i + 1 Else If InStr(File.Name, ".log") > 0 Then i = i + 1 FilePath(i) = File.path 'ファイルのフルパスを取得 'MsgBox FilePath(i) 4件のパスが正常に表示されることを確認 End If End If Next
その、表示されないというコードも含めて、提示しましょう
iをカウントアップ(+1する)ことの意味って、なんなんでしょうね? +1することと、FilePath(i) = File.path が直接連動していない場面があるのが、どうしても気になってしまう。そもそも、このコードは何を目的にして書いていて、FilePathなる配列にどういうふうにデータを詰めることを期待しているのでしょうか? そこがわかっていないから、曖昧なコードになっているのではないでしょうか? 仕様を正しく解釈してコードを書かないと。
すみません。初めて書いたコードなので無駄が多くあいまいなコードになってしまっていますよね。
何をしたいのかを明確にしたうえでどのような結果を期待するのかをしっかり考えて
プログラムを作成できるよう今後はより一層頑張ってまいります。
コメントいただきありがとうございました。
回答1件
あなたの回答
tips
プレビュー