プロが教えるわが家の防犯対策術!

以下のようにOpenTextでファイルを開いてそれをオブジェクト変数に取得したいのですが
「Functionまたは変数が必要です」というエラーになります。
どなたかご教示ねがえませんでしょうか?
よろしくお願いいたします。


Set WorkBookObject =Workbooks.OpenText FileName:=strPath & strTxt, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, _
Comma:=True, Space:=False, Other:=False, FieldInfo:=aryCell

A 回答 (4件)

先ほど Excel2000でおっしゃる事柄を確認しました、


確かにエラーがでました(汗)。

OpenTextメソッドは、Workbookオブジェクトを返さないみたいです。
したがって、SETは不要で、下記のような記述で正常に動作しました。

Workbooks.OpenText FileName:=strPath & strTxt, _
 StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
 ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, _
 Comma:=True, Space:=False, Other:=False, FieldInfo:=aryCell

オブジェクト変数WorkBookObjectに開いたWorkBookを代入したければ、
上記文を実行後にはWorkbooksコレクションにWorkbookが1つ追加されていますので
下記方法で代入するといいです。ただし、括弧内の数字2は環境で変わります。

Set WorkBookObject =Workbooks(2)
    • good
    • 0

あ、No.2が正しそう。


No.1は取り下げます。
    • good
    • 0

OpenTextメソッドの後に引数を囲む括弧が必要だとおもいますよ。


下記のようにです。

Set WorkBookObject =Workbooks.OpenText ( FileName:=strPath & strTxt, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, _
Comma:=True, Space:=False, Other:=False, FieldInfo:=aryCell )

この回答への補足

すみません。補足です
アドバイスくださったように記述しているのですが、エラーになってしまうのです。
あ~~どうすれば・・・

補足日時:2002/07/30 11:03
    • good
    • 0

Workbooksってコレクションだから、ブック名を指定するか、ActiveWorkBookを参照する必要があるのでは。



あてずっぽうですが。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!