Mac でこれをもう少しうまく行うには、Apple Script を使用する必要があると思います。次のコードにより、ユーザーは、関数から配列として返されるテキスト ファイルを選択できます。Apple Script を変更して、他のファイル タイプを返し、ディレクトリを選択するだけで済みます。それはあなたに任せます。
関数を呼び出し、すべてのファイルを含むメッセージ ボックスを表示するコード:
Sub GetTextFilesOnMac()
Dim vFileName As Variant
'Call the function to return the files
vFileName = Select_File_Or_Files_Mac
'If it's empty then the user cancelled
If IsEmpty(vFileName) Then Exit Sub
'Loop through all the files specified
For ii = LBound(vFileName) To UBound(vFileName)
MsgBox vFileName(ii)
Next ii
End Sub
Apple Script を実行する関数は次のとおりです。
Function Select_File_Or_Files_Mac() As Variant
'Uses AppleScript to select files on a Mac
Dim MyPath As String, MyScript As String, MyFiles As String, MySplit As Variant
'Get the documents folder as a default
On Error Resume Next
MyPath = MacScript("return (path to documents folder) as String")
'Set up the Apple Script to look for text files
MyScript = "set applescript's text item delimiters to "","" " & vbNewLine & _
"set theFiles to (choose file of type " & " {""public.TEXT""} " & _
"with prompt ""Please select a file or files"" default location alias """ & _
MyPath & """ multiple selections allowed true) as string" & vbNewLine & _
"set applescript's text item delimiters to """" " & vbNewLine & _
"return theFiles"
'Run the Apple Script
MyFiles = MacScript(MyScript)
On Error GoTo 0
'If there are multiple files, split it into an array and return the results
If MyFiles <> "" Then
MySplit = Split(MyFiles, ",")
Select_File_Or_Files_Mac = MySplit
End If
End Function
最後に、さまざまなファイル タイプを指定するのは少し面倒です。Word ドキュメントのみを指定する場合は、 に置き換えますpublic.TEXT
が、これはファイルcom.microsoft.word.doc
を許可しません。これらにはそれぞれとを使用する必要があります。これらの詳細については、https ://developer.apple.com/library/mac/#documentation/FileManagement/Conceptual/understanding_utis/understand_utis_conc/understand_utis_conc.html を参照してください。.docx
.docm
org.openxmlformats.wordprocessingml.document
org.openxmlformats.wordprocessingml.document.macroenabled