2017-08-23 6 views
0

ディレクトリを検索し、そのディレクトリ内のすべてのファイルの名前を含む.csvを作成するVBAスクリプトを作成しようとしています。"dir/b file.csv"を作成しようとすると "アクセスが拒否されました"

私が正常に手動でシフト+右クリックし、フォルダ>オープンコマンドプロンプト>で、これを行うことができ

「DIR/B> file.csvになり、」

しかし

、私は以下のコマンドラインを使用して私のスクリプトで実装しようアクセス拒否エラーが発生します。このエラーを特定する上での助けに感謝します。 、

Access Denied Error

dir /b [Folderpath] > [PathtoFile]ありがとう

+0

どのVBAコードを試しましたか? – braX

+0

「*アクセス拒否*」はアクセス拒否を意味します!あなたの '[Folderpath]'か '[PathtoFile]'のどちらかです。そしてあなたのスクリーンショットでは、 '[PathtoFile]'はファイルではないフォルダなので、おそらくそれが問題です。また、あなたのスクリーンショットは 'dir/b [Folderpath]>' [PathtoFile] 'のように' dir [Folderpath]/b> [PathtoFile] 'のように見えます。 –

+0

ありがとうございます。以前に書いたコードをもう一度やったが、まだアクセス拒否エラーが出ている。 – Liam

答えて

0

れていない情報の唯一の1列がある場合、CSVファイルを必要とする理由を確認してください、これはあなたの場合はトリックを行う必要があります。

コマンドがありますそれをVBAでやりたいsFolderを見たいフォルダに調整してください。

Public Sub MakeFileCSV() 
    Dim sFiles() As String 
    ReDim sFiles(0) 
    Const sFolder = "C:\" 
    Dim sOutput As String 
    sOutput = "C:\Users\" & Environ$("Username") & "\Desktop\Output.csv" 
    Dim sFilename As String 
    Dim nIndex As Integer 

    ' read the files 
    sFilename = Dir(sFolder) 
    Do Until sFilename = "" 
    ReDim Preserve sFiles(UBound(sFiles) + 1) 
    sFiles(UBound(sFiles)) = sFilename 
    sFilename = Dir() 
    Loop 

    ' output data 
    Open sOutput For Output As #1 
    For nIndex = 1 To UBound(sFiles) 
    Print #1, sFiles(nIndex) 
    Next 
    Close #1 

    MsgBox "done" 

End Sub 
関連する問題