|
こんにちは。かみちゃん です。
>いざやってみると、「フォルダが読み取り専用です」と
>メッセージが出て止まってしまいました。
メッセージが出た箇所はわかりますでしょうか?
Workbooks.Open ActiveWorkbook.Path & ListBox1
で、出ると思いますが、これは、ListBox1だけでは何番目のデータかがわからないからです。
MsgBox ListBox1
としてみてください。データが取得できていないことがわかると思います。
そこで・・・
>Do While ActiveWorkbook.Path & ListBox1.Value <> ""
>
>'最初に開いているファイルはそのまま作業する
>If ListBox1.Value = open_file Then
> data_drain '作業マクロ
>Else '同フォルダ内のエクセルファイル
> Workbooks.Open ActiveWorkbook.Path & ListBox1
> data_drain '作業マクロ
> ActiveWorkbook.Close False '保存せずに閉じる
>End If
> xlname = Dir
>Loop
を以下のようにしてみてください。
With ListBox1
For i = 0 To .ListCount - 1
If .List(i) = open_file Then
data_drain '作業マクロ
Else '同フォルダ内のエクセルファイル
Workbooks.Open ActiveWorkbook.Path & "\" & .List(i)
data_drain '作業マクロ
ActiveWorkbook.Close False '保存せずに閉じる
End If
Next
End With
data_drainがどういう処理をしているのかがわからないのですが、値を取得するだけだと、ファイルを開く必要はないと思います。
また、さきほども書きましたが、ListBoxをなぜ使わないといけないのかがわかりません。
|
|