[[20120510223240]] 『一つ上のフォルダ内のファイル名を取得したい』(おさむ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『一つ上のフォルダ内のファイル名を取得したい』(おさむ)

エクセルファイルからひとつ上の「産業技術課」の中にある、

ファイル数とファイル名を取得し、ファイル名をエクセルシートに書き込みしたい。

以下が私の書いたコードです!

    fc = 0

        fn = Dir(ThisWorkbook.Path & "\..\*.xls")

        Do While fn <> ""
                fc = fc + 1
                fn = Dir()
        Loop

        cnt = 1
        buf = Dir(ThisWorkbook.Path & "\..\*.xls")

        For b = 2 To 20
        Cells(b, 39) = ""
        Next b

        Do While buf <> ""
        cnt = cnt + 1

        Cells(cnt, 39) = buf
        buf = Dir()
        Loop

ファイル名を数えるところでエラーになります。どこがおかしいのかさっぱりです!
よろしくご教授ください。

             


 別にエラーに成りませんでしたが。。。
 何というエラーになりましたか?

 >ファイル名を数えるところ
 っていうと、具体的には
                fc = fc + 1
 ですか? 

 (HANA)


以下の2行も記述しています。

Set myFSO = CreateObject("Scripting.FileSystemObject")
OpenFolder = myFSO.GetFolder(ThisWorkbook.Path).ParentFolder

    fc = 0

        fn = Dir(ThisWorkbook.Path & "\..\*.xls")
    ここで、デバックエラーで、行全体が黄色く表示されます。

(おさむ)


すみませんでした、コードを見直したら、初歩的なエラーでした

fnを数値型で変数宣言していました!

申し訳ございませんでした。

(おさむ)


質問とは別件ですが(マナ)

 2回にわけてループする必要はないですよ

 Do While fn <> ""
    fc = fc + 1
    Cells(fc + 1, 39).Value = fn
    fn = Dir()
 Loop


 >fnを数値型で変数宣言していました! 
 そしたら、そう言ったメッセージ
   実行時エラー 13 型が一致しません
 が出ませんでしたか?

 こちらも質問とは別件ですが
        For b = 2 To 20
        Cells(b, 39) = ""
        Next b
 ループせずに直接書き込んでも良さそうです。
        Range(Cells(2, 39), Cells(20, 39)) = ""
 プロパティは省略しない事が推奨されていますので
        Range(Cells(2, 39), Cells(20, 39)).Value  = ""
 ただ、おそらくセルの内容をクリアしたいのだと思いますので
        Range(Cells(2, 39), Cells(20, 39)).ClearContents
 でも良いと思います。

 何かのタイミングで、20行目より後にファイル名が書き出されていた場合
 その部分は消えない事に成りますので、改善を検討されても良いと思いますが。。。

 fcの値を書き出すセルを作ってあるなら
 そのセルを参照して、削除する範囲を決めても良いと思います。

 (HANA)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.