ついさっきまで出なかったのに、同じコードでコンパイルエラー

解決


Polaris  2005-10-16 17:06:08  No: 126294  IP: [192.*.*.*]

以下のコードで、コンパイルエラー  function  または変数が必要です。とでます。  つい先ほどまでいけたのに、なぜなんでしょうか?

参照設定では、OfficeのObjectにはチェックが入ってます。

  Dim TargetBook As Workbook
  
            Set TargetBook = Workbooks.Open(FolderPath + "\" + File_list.Name)

よろしくお願いします。

編集 削除
名無し  2005-10-16 17:45:03  No: 126295  IP: [192.*.*.*]

Workbook  と  Workbooks  は関係ないよね?

編集 削除
Polaris  2005-10-16 18:26:33  No: 126296  IP: [192.*.*.*]

ええ、関係ないようです。

編集 削除
ガッ  2005-10-16 18:40:53  No: 126297  IP: [192.*.*.*]

…"Workbooks"の型がわからないなぁ…
コチラで Microsoft Office 10.0 Object Library を参照設定して、
オブジェクトブラウザで"Workbooks"を検索してみたけど、該当するのがありませんでした。
(もしかして、VBAをそのまま移植した…?)

編集 削除
ガッ  2005-10-16 18:51:38  No: 126298  IP: [192.*.*.*]

…ぁー、参照設定ってもしかして
"Microsoft Office 10.0 Object Library"じゃなくて、
"Microsoft Excel 8.0 Object Library"の方かな…
後者ならちゃんとWorkbooksクラスがあるみたい。
…それだけです(orz

編集 削除
Polaris  2005-10-16 21:34:50  No: 126299  IP: [192.*.*.*]

”ガッ” さんフォローありがとうございます。

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)

↑  
ここでエラー・・・・・。

以下省略

編集 削除
Dental  2005-10-16 23:11:21  No: 126300  IP: [192.*.*.*]

環境が書いてないけど、これって VB.NET? VB6? Excel VBA?
それぞれ、適切な書き方がまるっきり異なるから、きちんと明記しないと。


> Workbooks.Open(FolderPath + "\" + File_list.Name)

単に Workbooks と書くのではなく、どのApplicationオブジェクトの Workbooks プロパティを参照しているのかを記すようにすべきかな。そうしないと、Excel のゾンビ ( 非表示状態の Excel) が発生しやすくなるし、もし発生した場合に、2 回目以降の処理が、正常に動作しなくなったりするから。

> ここでエラー・・・・・。
Windows を再起動しても駄目?
どうしても駄目なら、エラーになる最小限のコードを、一切省略せずに掲示板に貼り付ければ、他の人の環境でも試してもらえるんじゃないかな。

編集 削除
Polaris  2005-10-17 23:43:47  No: 126301  IP: [192.*.*.*]

皆様、ありがとうございました。Applicationオブジェクトを指定すれば、動きました。

編集 削除