dポイントプレゼントキャンペーン実施中!

現在FileMakerとAppleScriptを組み合わせて開発を行っています。
下記のような作業をしたくコーディングをしたのですが、うまく動作させる事ができません。何が原因なのでしょうか?

作業:特定のフォルダに入っているパワーポイントのファイルを特定のバージョンのパワーポイントで開きたい。
環境:MacOS X 10.5.6、PowerPC G4、FileMaker 9

コード:
tell application "Finder"
repeat with i in folder "Data" of startup disk
if file type of i = "SLD8" then i select
open selection using file "Microsoft PowerPoint" of folder "Microsoft Office 2004" of folder "Applications" of startup disk
end repeat
end tell

問題1:ファイルを開く事はできるが「Macintosh HD:Data:test.pptはUser1が編集中です。読取専用で開きますか?」とエラーが表示され、延々とループしてしまう。
問題2:そもそもPPTのファイルを開いてくれない時がある。

PPTファイルのフルパスを指定すれば、問題なく開く事ができるのですが、
業務都合上色々なファイル名のPPTが入ってくるため、対象フォルダの中をFileTypeで探してオープンしています。

そもそものコードの部分から間違っているなどご指摘頂けると幸いです。
何か解決方法をお持ちの方、お力をお貸し下さい。
よろしくお願い致します。

A 回答 (1件)

--ファイル名末尾の拡張子らしき物を判定


--単純に最後の4文字がpExtと一致するかを判定
on mFileNameExtChk(pFileName, pExt)
set len to length of pFileName
set ext to text (len - 3) thru len of pFileName
--display dialog ext
if pExt = ext then
return true
else
return false
end if
end mFileNameExtChk

on run
set appPath to "\"/Applications/iWork '08/Keynote.app\""
set extStr to ".ppt"
tell application "Finder"
repeat with i in folder "テストデータ日本語パス" of startup disk
--keynote(08)で試しています
--Keynote(08)は".ppt"書き出し時にファイルタイプ値"SLD8"を設定しないようです
--手動でタイプ設定して試しました
--
--Keynote、もしくは他OS環境からやってくる".ppt"の場合
--リソースフォークが無くてタイプ判定を素通りすると思います
--タイプ判定、拡張子判定、両方行った方が確実です
i select
set fileNameStr to POSIX path of (selection as text)
set filePath to "\"" & fileNameStr & "\""
set cmdStr to "open -a " & appPath & " " & filePath

if file type of i = "SLD8" then
--確実に開けるようにシェルスクリプトとして実行してみました
--コマンド:open -a App File
do shell script cmdStr
else
if (my mFileNameExtChk(fileNameStr, extStr)) then
do shell script cmdStr
end if
end if
end repeat
end tell
end run
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!