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


112

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

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

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

답변:


178

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

Mac에서 무엇을합니까?
Thomas Fankhauser 2013

라이브러리 등을 포함하는 것과 같이 명령 줄을 통해이 작업을 수행 할 수있는 방법이 없습니까?
LuizAngioletti

확인란 'Microsoft Scripting Runtime'을 자동으로 선택하는 방법이 있습니까? 모든 Excel 파일에 대해? Excel 2016을 사용하고 있습니다
compski

이 질문에 대한 대답을 살펴보십시오. stackoverflow.com/questions/9879825/…
Robert Mearns

13

Excel 2013에서 개체 생성 문자열은 다음과 같습니다.

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

위 답변의 코드 대신 :

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

좀 더 명시 적으로, 나는 일반적으로 볼Dim fso As Object
Marcucciboy2

12

이 사람들은 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
%> 

3
이 코드는 엑셀하지 IIS / ASP에서 FSO를 사용하는 방법을 보여줍니다
Spangen


2

위에서 설명한대로 스크립팅 런타임을 가져온 후 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

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

친애하는

파비오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.