2010-12-15 3 views
0

Excel 2003(Windows XP)からExcel 2004(OS X)に一部のVBAを移植します。 Excel 2004には、MacScript()機能を使用してAppleScriptにいくつかのコマンドを送ることができるVBAインタプリタが含まれています。VBAの "MacScript"関数を使用してApplescriptコマンドを渡すときに「POSIXパス」を使用できない

これは、デフォルトのアプリケーションでファイルを起動することです(Windows版ではAPI呼び出しを使用し、Mac版とは互換性がありません)。私はAppleScriptを生成するために使用しているコードは次のようなである:私が行われ、読んだ

sScript = "set filepath to POSIX path of """ & path & """" & Chr(13) 
sScript = sScript & "try" & Chr(13) 
sScript = sScript & "set command to ""open "" & quoted form of filepath" & Chr(13) 
sScript = sScript & "do shell script command" & Chr(13) 
sScript = sScript & "end try" 
MacScript(sScript) 

今、すべてはこれが働くべきことを私に伝えます。それはAppleScriptエディタから実行すると機能します。それでも、何があっても常に失敗します。明らかに失敗しているのは、 "POSIX path"の部分です。これは、一般的なエラー5 "無効なプロシージャ呼び出しまたは引数"を投げます。これはあまり啓発されません。

これは、その操作にはかなり重要だと思われます。私は、他の人が私の前でこの問題を抱えているという証拠は何も見つかりませんでした。私は怒っている。 "POSIX path"はApplescript定義の標準的な部分のようですが、ここでは常に失敗します。 (ファイルをMacintosh HD:Users:MyUserName:Blahから/ Users/MyUserName/Blahに変換します)

誰にも提案はありますか?私は、MacScript()関数がそれ自身でそれを行うことを拒否した場合、私は自分のPOSIXパス関数をこのコードで動作させるためにVBAに書く必要があると考えています。しかし、文字列の解析などについては、半分しか理解できない関数については気をつけています(上記の場合は簡単ですが、明らかにそれがどれくらい複雑か分かりません)。

答えて

2

シェルコマンドを使用してこれを行う必要はなく、 "posix path"の使用を避けることができます。試してみてください...

tell application "Finder" to open file path 
+0

OK! – grupo

関連する問題