• 締切済み

FileSystemObjectのオーバーフロー

FileSystemObjectで 1台のPCだけ、以下のプログラムで実行時エラー6オーバーフロー が発生します。 他の開発環境2台、実行環境2台では発生せず。 WinXP VB6+SP6です。 ~プログラム~ Set Fso = CreateObject("Scripting.FileSystemObject") 'ファイルの末尾から書き込みモード(第2引数=8)で開きます Set FsoTS = Fso.OpenTextFile(strPathFile, 8) lngファイル行数 = FsoTS.Line - 1 FsoTS.Close Set FsoTS = Nothing Set Fso = Nothing 質問内容 ・FSOを無効にする設定はありますか? ・FSOを無効にできた場合、「オブジェクトが作成できません」 のエラーになると思うのですが、そのエラーにはなりません。 ※実行環境が現在手元にないので、実証できない状態です。 以上

noname#86174
noname#86174

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

何処でエラーになっているのか確認したほうが良いでしょう lngファイル行数への代入でエラーになっているのなら Longの境界を越えているのでしょうから 2Gの壁を越えていればどの環境でも発生します lngファイル行数が 間違ってIntegerで宣言されているなら 32767行を超えるファイルに対しては同じことが言えるでしょう 当方で実験すると エラー429 ActiveXオブジェクトは作成できません のエラーになりましたが ・・・ fsoへの代入でこけているかと思います エラー91だと On Error Resume Next などで FSOの代入エラーがパスされていて OpenTextFileメソッドを実行しようとしたのかも このときは On Errorのトラップが無効になっているとか

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

regsvr32.exeを使えば レジストリの登録・解除が可能です 登録の解除は regsvr32 -u scrrun.dll 再登録は regsvr32 scrrun.dll scrrun.dllは C:\windows\system32に存在します コマンドプロンプトなどで実行しましょう

noname#86174
質問者

お礼

登録、設定はreg、unregで確認できました。 ありがとうございます。 ただし、unreg状態では、 Error Code = 91 オブジェクト変数または With ブロック変数が設定されていません。 のエラーでオーバーフローにはなりませんでした。

関連するQ&A

  • FileSystemObject Win2008Server

    FileSystemObject Win2008Server 今までのWin2003ServerをWindows2008サーバーに更新しました。 Accessデータベース関係は今まで通り処理出来るのですが FileSystemObjectを使ったTextファイルからの読み込みや加工が 出来なくなりました。 VBScriptで社内DBを稼働させています。 サーバーや設定の事はあまり詳しくないのですが 何をチェックすればいいのか、ご指導お願いします。 (1)これはエラーになりません Set connectObj = Server.CreateObject("ADODB.Connection") ConnectObj.Open "xxx" 以下Accessの読み書き (2)この実行でエラーになります。 Set fso = Server.CreateObject("Scripting.FileSystemObject") set tso = fso.OpenTextFile(fp,1) この実行でエラーになります。 以下テキストファイルの処理 お手数ですが宜しくお願いします。

  • 「Scripting.FileSystemObject」について

    ただいまASPでWebシステムの開発をしております。 「Scripting.FileSystemObject」で質問をさせてください。 ASPの処理の中でファイルの削除をやりたかったので「Scripting.FileSystemObject」でファイル操作をしようと思いました。 記述は以下の通りです。 Dim objFileDelete Set objFileDelete = CreateObject("Scripting.FileSystemObject") objFileDelete.DeleteFile 消したいファイルのパス & ファイル名 ,True Set objFileDelete = Nothing 実行後にファイルを確認しましたが、消されていませんでした。 実行時にエラーにもなりませんでした。 調べてみると「Scripting.FileSystemObject」オブジェクトが作成されていないようなのです。 疑問に思ったことですが、そもそも「Scripting.FileSystemObject」はなにに入っている(表現がおかしいかもしれません)ものなのでしょうか? Windowsのシステムなのでしょうか? それともIISに依存するものでしょうか? 御存知の方がおりましたら教えてください。 お願いします。

  • VB4でエラーが出ます CreateObject Scripting.FileSystemObject

    VB6で Set fso = CreateObject("Scripting.FileSystemObject") と書いてうまく動いていたbasを VB4のプログラムに移植したところうまく動かないのですが、 どなたか分かりませんでしょうか?

  • VBSでテキストファイルを作成

    こんにちは。 set fso = createobject("Scripting.FileSystemObject") fso.createfolder("倉庫") を実行すると、実行したスクリプトが存在する場所に「倉庫」という名のフォルダが作成されます。 その倉庫というフォルダの中にテキストファイルを作成するにはどうすればよいでしょうか? set fso = createobject("Scripting.FileSystemObject") fso.createfolder("倉庫") set fo = fso.opentextfile(FILENAME) close.fo 相対的にファイルの場所を指定する方法がわかりません。 絶対パスでないとだめなのでしょうか?

  • FileSystemObjectでエクセル作成

    エクセル2003です。 Sub test() Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") With FSO.CreateTextFile("C:\test.xls") .Close End With Set FSO = Nothing End Sub これでエクセルファイルを作成することが出来るのですが サイズが0KBであり、中身を開いて文字を入れて保存しようとすると 「テキスト(タブ区切り)と互換性のない機能が含まれている可能性があります」 と言うメッセージが表示されます。 普通のエクセルファイルとは違うファイルが作成されてしまってるのでしょうか? CSVファイルではなく普通のエクセルファイルをFileSystemObjectで作成する方法をご教授ください。

  • FileSystemObject エラー

    お世話になります。 閲覧ありがとうございます。 質問ですが、WSHの'Scripting.FileSystemObjectで質問があります。 VBSにて'Scripting.FileSystemObject'を利用するスクリプトを自端末上に作成しました。 しかし、『CreateObject("Scripting.FileSystemObject") 』にてエラーが発生してしまします。 エラー内容は以下のとおりです。 エラー: ActiveX コンポーネントはオブジェクトを作成できません。: 'Scripting.FileSystemObject' コード: 800A01AD ソース: Microsoft VBScript 実行時エラー 他のPCでは同じVBSで稼働しておりますので、構文等の間違いはないかとおもいます。 エラーが発生しているPCも稼働しているPCもすべてWindows XP sp2です。 以下を試みましたが、改善しませんでした。 (1)IEの[プロパティ]→[セキュリティ]→[レベルのカスタマイズ]→[スクリプトを実行しても安全とマークされていない ActiveX コントロールの 初期化とスクリプトの実行] を有効 ※インターネット & ローカルイントラネットの両方とも↑にしました。 (ローカルディスク上にVBSは作成してあります。) (2)Windows Script 5.6の再インストール ソースは以下のようになっております。 お手数をお掛け致しますが、よろしくお願い致します。 Option Explicit Const HKEY_LOCAL_MACHINE = &H80000002 Dim objTextFile Dim objFSO '保存するためのファイルオブジェクト Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.CreateTextFile("C:\Test.txt", True) objTextFile.WriteLine "Test!!" msgbox "処理が終了しました。"

  • FileSystemObjectについて

    御観覧有難うございます。 基礎FSOなんですが、スパテクという本を買って、一から順に excelを学んでいるのですが、本の通りにやっても、 記述ミスになってしまうので、お聞きしたいんですけども、 記入して、ミスになるのは、 Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFile(ThisWorkbook.Path & "\" & ThisWorkbook.Name) MsgBox "最終更新日時=" & f.DateLastModified という文法の、Set f = fso.GetFile(ThisWorkbook.Path & "\" & ThisWorkbook.Name)の部分で¥マークの部分があやしい感じですが、 文法自体が記述ミスだそうで… excel2007なんですが、対応していて、本の通りにやって、 出来ない場合ってあるんでしょうか… ご回答よろしくお願いします。

  • VB6でFileSystemObjectで読込

    Visual BasicV6でFileSystemObjectを(もし必要ならTextStream オブジェクトも)使って、テキストファイルを変数に読み込む実例を作っていただけませんでしょうか。 UTF-8コードのテキストファイルを読み込みたいのですが、当方、VB.NETは使えないし、MS社などのFileSystemObjectの使い方についての下記説明を見ても、どこで変数に入っていることが分からないため、お願いいたします。 Dim fso, MyFile Set fso = CreateObject("Scripting.FileSystemObject") Set MyFile = fso.CreateTextFile("c:\testfile.txt", True) MyFile.WriteLine("This is a test.") MyFile.Close Visual BasicV6自体は十分使えますが、FileSystemObjectなどについては全く分かりません。よろしくお願いいたします。

  • テキストファイルに一行文字を追加したい

    バッチ処理でテキストファイルの最後に文字列を追加する作業をやりたいのです。 普通の文字列ですと、1)のようにして上手くいきます。 ところが「"」の入った文字列を一行加えようと2)のようにすると、エラーになってしまいます。どうしたら前に進めるでしょうか? --------- 1)上手くいくケース ----------- Set fso = CreateObject("Scripting.FileSystemObject") Set tmpFile = fso.GetFile("C:\test\hoge.txt") Set f = tmpFile.OpenAsTextStream(8, -2) f.Write("一行追加しました") f.close Set f = Nothing Set tmpFile = Nothing Set fso = Nothing --------- 2)上手くいかないケース ----------- Set fso = CreateObject("Scripting.FileSystemObject") Set tmpFile = fso.GetFile("C:\test\hoge.txt") Set f = tmpFile.OpenAsTextStream(8, -2) f.Write("一行"追加"しました") f.close Set f = Nothing Set tmpFile = Nothing Set fso = Nothing

  • 同名でもエラーにならない理由

    Sub バックアップ作成() Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") FSO.CopyFile CurrentProject.FullName, "C:\test.mdb" Set FSO = Nothing End Sub このコードを実行すると、同じファイルがあってもエラーになりません。 Sub DiskOprate4() MkDir "C:\バックアップ" End Sub なら同名のフォルダがあればエラーになります。 ファイルはエラーにならないがフォルダならエラーになるのでしょうか? それともFSOというのを使うとエラーにならないのですか? よろしくお願いします。

専門家に質問してみよう