参照する必要があるものはありますか?これをどのように使用しますか:
Dim fso As New FileSystemObject
Dim fld As Folder
Dim ts As TextStream
これらのオブジェクトを認識しないため、エラーが発生します。
参照する必要があるものはありますか?これをどのように使用しますか:
Dim fso As New FileSystemObject
Dim fld As Folder
Dim ts As TextStream
これらのオブジェクトを認識しないため、エラーが発生します。
回答:
Excel内で、VBスクリプトランタイムライブラリへの参照を設定する必要があります。関連ファイルは通常次の場所にあります\Windows\System32\scrrun.dll
Microsoft Scripting Runtime
」の横にあるチェックボックスをオンにしますscrrun.dll
ファイルのフルネームとパスがリストボックスの下に表示されますこれは、VBAオブジェクトモデルへのアクセスが有効になっている場合は、コードで直接行うこともできます。
アクセスは、チェックボックス刻々と過ぎで有効にすることが可能Trust access to the VBA project object model
で見つけ]> [オプション]> [セキュリティセンター]> [セキュリティセンターの設定]> [マクロの設定ファイルを
参照を追加するには:
Sub Add_Reference()
Application.VBE.ActiveVBProject.References.AddFromFile "C:\Windows\System32\scrrun.dll"
'Add a reference
End Sub
参照を削除するには:
Sub Remove_Reference()
Dim oReference As Object
Set oReference = Application.VBE.ActiveVBProject.References.Item("Scripting")
Application.VBE.ActiveVBProject.References.Remove oReference
'Remove a reference
End Sub
Excel 2013では、オブジェクト作成文字列は次のとおりです。
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
上記の答えのコードの代わりに:
Dim fs,fname
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Dim fso As Object
これらの人たちは、ファイルシステムオブジェクトhttp://www.w3schools.com/asp/asp_ref_filesystem.aspの使用方法の優れた例を持っています
<%
dim fs,fname
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fname=fs.CreateTextFile("c:\test.txt",true)
fname.WriteLine("Hello World!")
fname.Close
set fname=nothing
set fs=nothing
%>
上記のようにスクリプトランタイムをインポートした後、Excel 2010(私のバージョン)で動作するように少し変更する必要があります。次のコードには、ユーザーがファイルを選択するために使用するコードも追加しています。
Dim intChoice As Integer
Dim strPath As String
' Select one file
Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False
' Show the selection window
intChoice = Application.FileDialog(msoFileDialogOpen).Show
' Get back the user option
If intChoice <> 0 Then
strPath = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
Else
Exit Sub
End If
Dim FSO As New Scripting.FileSystemObject
Dim fsoStream As Scripting.TextStream
Dim strLine As String
Set fsoStream = FSO.OpenTextFile(strPath)
Do Until fsoStream.AtEndOfStream = True
strLine = fsoStream.ReadLine
' ... do your work ...
Loop
fsoStream.Close
Set FSO = Nothing
お役に立てば幸いです。
宜しくお願いします
ファビオ