2016-07-28 12 views
-1

次のコードを使用して、ユーザーがフォルダを選択し、各ファイルが最後に変更された時刻を一覧表示することができます。 3番目の列はファイルの名前です。フォルダ内のファイルを一覧表示する

Sub ListFils() 
Dim f As Object, fso As Object, flder As Object 
Dim folder As String 
Dim wb As Workbook, ws As Worksheet 

Set wb = ActiveWorkbook 
Set ws = ActiveSheet 
Set fso = CreateObject("Scripting.FileSystemObject") 

With Application.FileDialog(msoFileDialogFolderPicker) 
    .Show 
    If .SelectedItems.Count = 0 Then 
     MsgBox "Cancel Selected" 
     End 
    End If 
    folder = .SelectedItems(1) 
End With 

Range("A2").Select 
Range(Selection, Selection.End(xlToRight)).Select 
Range(Selection, Selection.End(xlDown)).Select 
Selection.ClearContents 


For Each f In fso.GetFolder(folder).Files 
    ws.Range("A" & ws.Rows.Count).End(xlUp).Offset(1, 0) = f.DateLastModified 
    ws.Range("B" & ws.Rows.Count).End(xlUp).Offset(1, 0) = f.DateLastModified 
    ws.Range("C" & ws.Rows.Count).End(xlUp).Offset(1, 0) = f.Name 


Next 
Columns("A:C").Columns.AutoFit 
Range("A2").Select 
Range(Selection, Selection.End(xlToRight)).Select 
Range(Selection, Selection.End(xlDown)).Select 
End Sub 

コードはWindowsでは動作しますが、Macでは動作しません。どのように私はそれを働かせることができる任意のアイデア?ティムとして

+0

"...全く動作しません" - エラーがありますか?それは実行されますが、ものをスキップしますか?それはまったく動かないのですか?通知を受け取りますか?あなたはMacでそれを実行するとどうなりますか? – BruceWayne

+2

ScriptingライブラリのようなActivexオブジェクトはMacでは利用できません。あなたは同じことをするのに 'Dir()'を使うことができるはずです。 –

+0

@ BruceWayne、それは私に何も得られません。デバッグポップアップが表示されます。 @TimWilliams、ヒントありがとうございましたが、私はコーディングの第一歩を踏み出しました。使用方法はわかりません。私は 'Dir()'を使ってみましたが、このコマンドを使ってファイルを検索できました。 –

答えて

0

は彼のコメント、ラインSet fso = CreateObject("Scripting.FileSystemObject")に言って、fsoに依存しているものは、Mac上では動作しませんが、あなたは更新日時を取得するために、ファイル名を取得するためにDir()を使用して、FileDateTime("filename")ことができます。

関連する問題