以下のコードで、コンパイルエラー function または変数が必要です。とでます。 つい先ほどまでいけたのに、なぜなんでしょうか?
参照設定では、OfficeのObjectにはチェックが入ってます。
Dim TargetBook As Workbook
Set TargetBook = Workbooks.Open(FolderPath + "\" + File_list.Name)
よろしくお願いします。
Workbook と Workbooks は関係ないよね?
ええ、関係ないようです。
…"Workbooks"の型がわからないなぁ…
コチラで Microsoft Office 10.0 Object Library を参照設定して、
オブジェクトブラウザで"Workbooks"を検索してみたけど、該当するのがありませんでした。
(もしかして、VBAをそのまま移植した…?)
…ぁー、参照設定ってもしかして
"Microsoft Office 10.0 Object Library"じゃなくて、
"Microsoft Excel 8.0 Object Library"の方かな…
後者ならちゃんとWorkbooksクラスがあるみたい。
…それだけです(orz
”ガッ” さんフォローありがとうございます。
Microsoft Excel も Ofiice も Object Libraryは参照されてます。
でも、動かないんですよね・・・・・。
なんで?? ご指摘通り、VBAでも動くはずなので、VBAに持って行きましたが、VBAでも同じエラーが出ます。
”コンパイルエラー:Functionまたは変数が必要です”といわれて怒られます。
VBAでは、以下のようにしてます。
Sub GET_List_ofFile(FolderPath)
Dim File_Collection As Object
Dim File_list As Variant
Dim cnt As Integer
Dim ReturnBook As Workbook
Dim TargetBook As Workbook
Set File_Collection = CreateObject("Scripting.FileSystemObject") _
.GetFolder(FolderPath).Files
cnt = 1
For Each File_list In File_Collection
If (File_list.Name = ThisWorkbook.Name) Then
Else:
Set ReturnBook = ActiveWorkbook
Set TargetBook = Workbooks.Open(FolderPath + "\" + File_list.Name)
↑
ここでエラー・・・・・。
以下省略
環境が書いてないけど、これって VB.NET? VB6? Excel VBA?
それぞれ、適切な書き方がまるっきり異なるから、きちんと明記しないと。
> Workbooks.Open(FolderPath + "\" + File_list.Name)
単に Workbooks と書くのではなく、どのApplicationオブジェクトの Workbooks プロパティを参照しているのかを記すようにすべきかな。そうしないと、Excel のゾンビ ( 非表示状態の Excel) が発生しやすくなるし、もし発生した場合に、2 回目以降の処理が、正常に動作しなくなったりするから。
> ここでエラー・・・・・。
Windows を再起動しても駄目?
どうしても駄目なら、エラーになる最小限のコードを、一切省略せずに掲示板に貼り付ければ、他の人の環境でも試してもらえるんじゃないかな。
皆様、ありがとうございました。Applicationオブジェクトを指定すれば、動きました。
ツイート | ![]() |