source

VBA에서 File System Object를 사용하려면 어떻게 해야 합니까?

lovecheck 2023. 4. 22. 09:44
반응형

VBA에서 File System Object를 사용하려면 어떻게 해야 합니까?

제가 참고해야 할 것이 있나요?사용방법:

Dim fso As New FileSystemObject
Dim fld As Folder
Dim ts As TextStream

이러한 오브젝트가 인식되지 않기 때문에 에러가 발생합니다.

Excel에서 VBScript 런타임 라이브러리에 대한 참조를 설정해야 합니다.관련 파일은 보통 다음 위치에 있습니다.\Windows\System32\scrrun.dll

  • 이 파일을 참조하려면 Visual Basic ALTF11Editor(+)를 로드하십시오.
  • 드롭다운 메뉴에서 [Tools]> [ References ]를 선택합니다.
  • 사용 가능한 참조 목록 상자가 표시됩니다.
  • 옆에 있는 체크박스를 켜겠습니다.Microsoft Scripting Runtime'
  • 의 풀네임과 패스scrrun.dll파일이 목록 상자 아래에 표시됩니다.
  • 버튼을 클릭합니다.

VBA 오브젝트모델에의 액세스가 유효하게 되어 있는 경우는, 코드로 직접 실시할 수도 있습니다.

체크 박스를 온으로 하면, 액세스를 유효하게 할 수 있습니다.Trust access to the VBA project object model[ File ] > [ Options ]> [ Trust Center Settings ]> [ Macro Settings ]에서 찾을 수 있습니다.

VBA 매크로 설정

참조를 추가하려면:

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")

이들은 파일 시스템 오브젝트 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
%> 

레퍼런스를 추가한 후에

Dim fso As New Scripting.FileSystemObject

위에서 설명한 대로 스크립트 실행 시간을 Import한 후 Excel 2010(My version)에서 작동시키려면 약간의 수정을 해야 합니다.다음 코드에 파일을 선택하기 위해 사용자에게 사용되는 코드도 추가했습니다.

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

언급URL : https://stackoverflow.com/questions/3233203/how-do-i-use-filesystemobject-in-vba

반응형