0

注: Visual Studio を使用し、VB6 および VBA 以外でコードを作成するのは初めてです。また、IO.File を使用して問題を解決しました。

ただし、これが機能しない理由を本当に知りたいです。

Dim FSO As New FileSystemObject
Dim FSOts As TextStream
FSOts = FSO.OpenTextFile(filepath1, IOMode.ForReading, True)
While FSOts.AtEndOfStream = False
    temp = FSOts.ReadLine()
    MsgBox(temp)
    tempcollection.Add(temp)
 End While
 FSOts.Close()

私のコンピューターでは動作しますが、何らかの理由で他のコンピューターでは動作しません。以前にこのオブジェクトを vb スクリプトで使用したことがありますが、その状況では 2 番目の引数は「ForReading」であり、32 ビット scrrun.dll を参照する別の IDE (FEMAP) で記述されていました。Visual Studio で、スクリプト ライブラリが syswow64 を指していることに気付きました。それが違いを生むかどうかはわかりません。すべての分散サイトは 64 ビット OS を実行し、このライブラリを持っています。いずれにせよ、使用しようとするとエラー 438 が発生します。

FSOts = FSO.OpenTextFile(filepath1, IOMode.ForReading, True)  

VS では、'ForReading' だけでコンパイルすることはできません。

繰り返しますが、以前に vb6 でこのオブジェクトを使用しましたが、2 番目の引数は iomode.forreading ではなく「ForReading」でした。その状況では、問題を引き起こしているのと同じマシンで問題なく動作しました(もちろん、私のマシンを除く)。

4

0 に答える 0