IT

VBA에서 FileSystemObject를 어떻게 사용합니까?

lottoking 2020. 8. 12. 07:25
반응형

VBA에서 FileSystemObject를 어떻게 사용합니까?


참조해야 할 것이 있습니까? 어떻게 사용합니까?

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

이러한 개체를 인식하지 못하기 때문에 오류가 발생합니다.


Excel 내에서 VB 실행 실행 라이브러리에 대한 참조를 설정해야합니다. 관련 파일은 일반적으로 다음 위치에 있습니다.\Windows\System32\scrrun.dll

  • 이 파일을 참조하십시오. Visual Basic Editor ( ALT+ F11)를 로드하십시오.
  • 드롭 다운 메뉴에서 도구> 참조를 선택합니다.
  • 사용 가능한 참조 목록 상자가 표시됩니다.
  • ' Microsoft Scripting Runtime' 옆의 선택을 선택하십시오.
  • scrrun.dll파일 의 전체 이름과 경로가 목록 상자 아래에 표시됩니다.
  • 버튼을 클릭하십시오 OK.

VBA 개체 모델에 대한 액세스가 활성화 된 경우 코드에서 직접 수행 할 수도 있습니다.

액세스 체크 박스 딱으로 활성화 할 수 있습니다. Trust access to the VBA project object model에서 설정 > 옵션> 보안 센터> 보안 설정> 매크로 설정 파일을

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


이 사람들은 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 2013에서 생성 높이는 다음과 가변 개체입니다.

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

위 답변의 코드 대신 :

Dim fs,fname
Set fs=Server.CreateObject("Scripting.FileSystemObject")

높은 수준의 스크립팅 작동을 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

도움이 되셨기를 바랍니다.

친애하는

파비오


참조를 추가 한 후

Dim fso As New Scripting.FileSystemObject

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

반응형