2011-01-13 21 views
0

How can I install/use “Scripting.FileSystemObject” in Excel 2011 for MAC?への回答は、Excel 2010でScripting.FileSystemObjectを使用しているのは、ではなく、が可能であることを示しています。Mac用のExcel 2011 VBAにScripting.FileSystemObjectの代替手段がありますか?

  • は、各ファイル内の各ワークシートを介して特定のディレクトリに
  • 反復をすべてのExcelファイルのコレクションを取得し、それをエクスポートします。代替は私がすることができます利用可能である他のどのような

    a .csvファイル

現在この各ファイルの6つのステッププロセスです:

--how to create CSV files for all worksheets in a file: 
1. open file 
2. click "Developer" 
3. click editor 
4. click ThisWorkbook 
5. copy in: 
Sub save_all_csv() 
    On Error Resume Next 
    Dim ExcelFileName As String 
    ExcelFileName = ThisWorkbook.Name 
    For Each objWorksheet In ThisWorkbook.Worksheets 
     Filename = "FILE-" & ExcelFileName & "-WORKSHEET-" & objWorksheet.Name & ".csv" 
     objWorksheet.SaveAs Filename:="Macintosh HD:Users:edward:Documents:temporaryNoBackup:" & Filename, FileFormat:=xlCSV, CreateBackup:=False 
    Next 
    Application.DisplayAlerts = False 
    Application.Quit 
End Sub 
6. click run (it closes by itself) 

私はへの道を探していますが、理想的には、Mac上で(?cronジョブ?,サービス)これを自動化が開きます10分ごとにファイルを読み込み、ディレクトリ内を調べ、他のすべてのExcelファイルを.csvファイルに変換した後、それを閉じます。

Scripting.FileSystemObjectを使用しないと、MacでこのExcelからCSVへの変換を完全自動化するにはどうすればよいですか?

答えて

1

私が考えることができる唯一の方法は、「Dir」機能を使用することです。 Macはファイル名に余分な文字をサポートしているので、 "Dir"関数ではワイルドカードは機能しません。ここにサンプルがあります。

Function GetFileList(folderPath As String) As Collection 
'mac vba does not support wildcards in DIR function 

    Dim file As String 
    Dim returnCollection As New Collection 

    If Right$(folderPath, 1) <> "\" Then 
     folderPath = folderPath & "\" 
    End If 

    file = Dir$(folderPath) 'setup initial file 

    Do While Len(file) 
     returnCollection.Add folderPath & file 
     file = Dir$ 
    Loop 

    Set GetFileList = returnCollection 
End Function 
関連する問題