3

ちょっとした身だしなみチェックを期待しています。Mac 用の Word アドイン (Word 2010 用の VBA で記述)、具体的には現時点では Word 2011 を採用しています。違いの多くは認識していますが、見つけることができませんでした。に関する多くのドキュメントは、FileDialog の明らかな欠如です。私が答えに最も近いのは、http: //www.rondebruin.nl/mac.htmで、著者は Application.GetOpenFilename を使用しています。ただし、その方法は Word には存在しないようです (そのサイトの焦点は Excel です)。

FileDialog が利用可能にするファイルとフォルダーのピッカーダイアログの使用方法を知っている人はいますか? 私は実際には Applescript に精通していませんが、Word 2011 のファンキーなファイル管理の問題 (Dir、FileCopy など) を回避するために少し学ぶ必要がありました。それで、それが答えなら、コードが Applescript でどのように見えるかについての感覚があれば大歓迎です。(それをVBAに変換する方法は多かれ少なかれ知っています)。

4

1 に答える 1

4

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.docmorg.openxmlformats.wordprocessingml.documentorg.openxmlformats.wordprocessingml.document.macroenabled

于 2013-03-21T11:40:27.663 に答える