2016-03-29 18 views
3

"ScorBase"と呼ばれるプログラム用のVBAスクリプトを作成しています。私は "メートルこのエラーに遭遇した『506』はまだテキストファイルを作成し、サブルーチンを呼び出すようにしようとしているエラー506:クラスが定義されていません: 'FileSystemObject'

を、これは私が悶えてるコードです:。

Sub emailFile() 

' Declare a TextStream. 
Dim stream 
'As TextStream 

dim fso 
Set fso = New FileSystemObject 

' Create a TextStream. 
Set stream = fso.CreateTextFile("C:\Users\eladt\Desktop\creatFile\Mail.txt", True) 

stream.WriteLine "user Email." 
stream.WriteLine "Maki" 
stream.WriteLine "Nigeri" 
stream.WriteLine "Sashimi" 
stream.Close 


End Sub 
+0

'set fso = new Scripting.FileSystemObject'または' Set fso = CreateObject( "Scripting.FileSystemObject") 'の場合はどうなりますか? –

+0

はまだ同じエラーをスローする –

+0

明白なことは嫌いですが、「リファレンス」として「Microsoft Scripting Runtime」が追加されていますか? –

答えて

1

アンはるかに簡単なアプローチ:

Sub MM_Email_To_File() 

Dim FF As Integer 
FF = FreeFile 

'// The file will be created if it doesn't exist 
Open "C:\Users\eladt\Desktop\creatFile\Mail.txt" For Output As #FF 

    Print #FF, "User Email" 
    Print #FF, "Maki" 
    Print #FF, "Nigeri" 
    Print #FF, "Sashimi" 

Close #FF 

End Sub 

VBAでのI/O操作の詳細については、this MSDN articleを参照してください。

0

元の下のコメントMicrosoft Scripting Runtimeが使用できない、またはPCにインストールされていないことを示唆しているようですが、意図しない問題かもしれませんが、IT管理者がそのライブラリのアクセスを制限している可能性もあります。テキストファイルを書く方法の数。あなたはストリームを書くためにADOライブラリを使うことができるかもしれません..

だけMicrosoft ActiveX Data Objects 2.8 Libraryへの参照を追加して、あなたのコードを置き換える:おそらくそれは、後半に別のアプリケーションからバインディングが動作する場合は、あなたのサードパーティアプリケーションがホストしているVBA環境での問題がある

Sub emailFile() 

    ' Declare an ADO Stream. 
    Dim stream As ADODB.stream 

    ' Create an ADO Stream. 
    Set stream = New ADODB.stream 
    stream.Open 
    stream.Type = adTypeText 
    stream.WriteText "user Email.", stWriteLine 
    stream.WriteText "Maki", stWriteLine 
    stream.WriteText "Nigeri", stWriteLine 
    stream.WriteText "Sashimi", stWriteLine 
    stream.SaveToFile "C:\Users\eladt\Desktop\creatFile\Mail.txt", adSaveCreateOverWrite 
    stream.Close 

End Sub 
1

何らかのタイプのサンドボックスを実行します。

あなたは、ファイルへの書き込みを任意の外部ライブラリを必要としない、あなたはネイティブにそれをしようとすることができます任意の外部参照を使用せずに

Dim hf As Integer 
hf = FreeFile 

Open "C:\Users\eladt\Desktop\creatFile\Mail.txt" For Output As #hf 

Print #hf, "user Email." 
Print #hf, "Maki" 
Print #hf, "Nigeri" 
Print #hf, "Sashimi" 

Close #hf 
+0

ありがとうAlex K.それは仕事をした:) –

関連する問題