[[20120125162535]] 『ファイル数を読み込んでいたのですが突然読めなく』(おさむ) ページの最後に飛ぶ

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

 

『ファイル数を読み込んでいたのですが突然読めなくなった』(おさむ)

Dim fc As Long 'ファイル数

Dim fn As String 'ファイル名

fc = 0

fn = Dir("..\幼稚部\幼*.xls")

Do While fn <> ""

   fc = fc + 1
   fn = Dir()
Loop

MsgBox "ファイル数は" & fc & "です。"

 For x = 1 To fc
        Workbooks.Open ("..\幼稚部\幼" & CStr(x) & ".xls")

        勤務日数 = 勤務日数 + Cells(gyou, 4).Value
        年休日数 = 年休日数 + Cells(gyou, 5).Value
        年休時間 = 年休時間 + Cells(gyou, 6).Value
        勤務内実労働 = 勤務内実労働 + Cells(gyou, 7).Value
        勤務外実労働 = 勤務外実労働 + Cells(gyou, 8).Value

        Workbooks("幼" & CStr(x) & ".xls").Close SaveChanges:=False
 Next x

作成段階では順調に動いていたのですが、この作業を6回繰り返して、保存したらファイル数は0というMsgboxからのメッセージで、エラーもでず、マクロが終了します。
何が悪いのでしょうか?

変数の宣言はすべて正確に行っています。

エクセル2003です。

よろしくお願いします


 パスを省略しているのでカレントディレクトリからの相対パスがずれているのではないでしょうか?
 「..\幼稚部\幼」という2カ所の所をフルパスにしてみてはどうでしょうか?
 (momo)

 一応、その他の所で気になった個所も・・・
 >変数の宣言はすべて正確に行っています。
 ですが
 >For x = 1 To fc
 の、xが宣言されていませんね。

 あと
 >勤務日数 = 勤務日数 + Cells(gyou, 4).Value
 とかのCellsの親オブジェクトがわからないのでActiveなブックが変わると
 思わぬエラーになる可能性があります。

 For x = 1 To fc
   With Workbooks.Open("..\幼稚部\幼" & CStr(x) & ".xls")
       勤務日数 = 勤務日数 + .ActiveSheet.Cells(gyou, 4).Value
       年休日数 = 年休日数 + .ActiveSheet.Cells(gyou, 5).Value
       年休時間 = 年休時間 + .ActiveSheet.Cells(gyou, 6).Value
       勤務内実労働 = 勤務内実労働 + .ActiveSheet.Cells(gyou, 7).Value
       勤務外実労働 = 勤務外実労働 + .ActiveSheet.Cells(gyou, 8).Value
       .Close SaveChanges:=False
   End With
 Next x

 くらいにはしておいた方が良さそうですね。
 (momo)

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

やはり、ファイル読み込みができていませんでした。

フルパスは持ち運び上無理なので、

ThisWorkbook.Path を使ってやったらうまく動きました。

ご迷惑をおかけしました。

(おさむ)


コメント返信:

[ 一覧(最新更新順) ]


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