1

「Scripting.FileSystemObject」を Excel 2011 for MAC にインストール/使用するにはどうすればよいですか?への回答 Scripting.FileSystemObjectMac 版 Excel 2010 での使用はできないようです。

私ができるように、他にどのような選択肢がありますか:

  • 特定のディレクトリにあるすべての Excel ファイルのコレクションを取得する
  • 各ファイル内の各ワークシートを反復処理し、 .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 ファイルを開き、ディレクトリを調べて、他のすべての Excel ファイルを次のように変換します。 .csv ファイルを開き、自動的に閉じます。

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

4

2 に答える 2

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
于 2011-01-13T21:43:44.317 に答える