- ベストアンサー
【ファイルメーカーPro5.5】 指定のフォルダを開く
当方看板屋なのですが、仕事の案件を管理するデータベースをファイルメーカーPro5.5(MacOS9.2)にて作成しています。 質問ですが、ファイルメーカーのデータベースから、その案件の製作データなどを格納したフォルダ(OS内のフォルダ)を開くというような操作をしたいのですが・・・ 1、ダイアログでフォルダを指定して、テキストフィールドにフォルダのパスを書き出す方法 2、書き出されたパスからフォルダを開く方法 を、それぞれ知りたいのですが、ご存知の方おられるでしょうか。 先日、別の質問(http://oshiete1.goo.ne.jp/qa2506230.html)にて、オブジェクトフィールドを使って画像データを開く方法を教えていただいたのですが、今度は同じようなことをフォルダでやれないかと考えまして・・・ ウインドウズなら「URLを開く」で、開くことは可能らしいのですが、Macで試してみましたができないみたいです。アップルスクリプトを使えば可能なような気がしてるのですが、当方、アップルスクリプトは勉強中でして、まだ実用するほどの知識がありません。 1のところで「ダイアログで指定」と書きましたが、入力が楽だろうと思ったからなんですが、別の方法でもかまいません。 ただ、パスを毎回手入力するのは避けたいです。(膨大な量なので) よろしくお願い致します。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
エラーが出るのはfilepathですかfolderpathですか? filepathは使っていないのでスクリプトの中にこれがあるとエラーになります。 下のスクリプトをコピーしてスクリプト記述窓にペーストしてみてください。 activate set folderPath to get data cell "Folder" of current record tell application "Finder" select folder folderPath reveal selection open selection end tell activate application "Finder"
その他の回答 (6)
- chieffish
- ベストアンサー率44% (1149/2554)
>傾向的に、パスの文字数に制限があるのかなと感じたのですが いくら深い階層のフォルダを指定してパスが長くなってももエラーは出ないようです。 同じような環境でテストするためOSXのクラシック環境でFM4で試しましたが、FM4でも フィールドの文字数制限は全角32,000文字です。フォルダ名に特殊な記号とかを使ってい ませんか?でもフォルダ名に使えない文字が入っているとOSが警告しますし・・・
お礼
そうですか。そちらでは普通にできましたか・・・ 試しに、問題のあったフォルダの名前を短く変更すると大丈夫でした。 ただ、不可解なのは、当該のフォルダよりも長い文字数の別のフォルダは大丈夫だったりします。 文字列も疑ってみたので名前をいろいろ変更して試したのですが、普通の全角文字でエラーが出るようです。 それと、普通に大丈夫だったフォルダも、下層のフォルダを指定すると、やはりダメでした。 現状思い当たるのはフォルダパスの文字数しか考えられないんですけど・・・ひとまず作業自体はできるようになったので、この件は一旦締め切って、別で質問を立てようと思います。ここの補足に新設の質問のURLを載せてから、質問を締め切ります。 親身にいろいろありがとうございました。 本当に助かりました。
補足
質問を新設しました。 【ファイルメーカーPro5.5】 ファイルパスの文字制限? http://oshiete1.goo.ne.jp/oshiete_new.php3
- chieffish
- ベストアンサー率44% (1149/2554)
小出しになってしまってすみません。(私も苦手なので) 親フォルダ表示があった方がいろいろと便利なこともあるので前述のスクリプト にしましたが、直接フォルダを開くのは activate set folderPath to get data cell "folder" of current record tell application "Finder" to open folder folderPath でいいようです。
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
なるほどchooseでいいのか。chieffishさんありがとう。 というわけで、最初の希望どおりダイアログを出してフォルダを選ぶスクリプトは、 AppleScriptを実行 set the folder_path to (choose folder) as text set cell "folderpath" of current record to Folder_Path になります。 開く方はAppleEvent一発なんだから、前回のfile_openをフィールド名だけ変えて流用すればいいんですよ。
お礼
この回答のスクリプトを試しましたが、うまく作動しませんでした。 OS9.2だからかなぁ・・・ とりあえず書き出しのほうは、No5のやりかたでいけましたが、今度は新たな不具合が・・・ フォルダを開くほうですが、No6のやりかたでいけたのですが、ウインドが前面に来てくれなかったんで、grumpyさんに教えていただいたAppleEventを使った方法と組み合わせたところ上手くいきました。 ありがとうございました!
- chieffish
- ベストアンサー率44% (1149/2554)
二つめのスクリプトでは親フォルダしか開きませんね。 reveal selectionのうしろにopen selectionを追加。
補足
open selection は最初、半角スペースの後に入れたらエラーになったんで、改行して入れると大丈夫でした。 いずれにしても、実行時の「filepath変数は定義されていません。」のエラーが出ます・・・
- chieffish
- ベストアンサー率44% (1149/2554)
ファイルメーカーのファイルにFolderというテキストフィールドを作り、 スクリプトAを作ります。スクリプトの内容は「Applescriptを実行」のみで記述は activate set folderPath to (choose folder with prompt "フォルダーを指定して下さい") set pathtext to folderPath as string tell application "ファイルメーカー Pro.5.5" activate set cell "Folder" of current Record to pathtext end tell このスクリプトを実行すれば、最初にファイルメーカー本体の場所を聞いてくるの で指定し、次に目的のフォルダーを指定すれば、そのパスがFolderフィールドに入 ります。 もうひとつスクリプトBを作って、同じように activate set folderPath to get data cell "Folder" of current record tell application "Finder" select folder folderPath reveal selection end tell activate application "Finder" として、このスクリプトを実行すれば現在のレコードのFolderフィールドに入って いるパス先のフォルダが開きます。
補足
目からウロコです! ありがとうございます!! とりあえずフォルダパスを書き出すほうのスクリプトは成功。 ただ、フォルダパスからフォルダを開くスクリプトでは 「folderpath変数は定義されていません(エラー -2753)」 とエラーメッセージが表示されます。 もう一息っぽいんですが・・・
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
前回の質問でのfilepathフィールドを見て下さい。 DATA:user:Graphics:chromchart.pdf のようになっているはずです。ここから最後のファイル名を削って フォルダ名までにしてみます。 DATA:user:Graphics: こんな感じになりますね。で、そのまま前回のfile_openスクリプト を走らせれば、Finderで該当するフォルダが開くことが判ります。 なるほどねってわけで、アプローチは2つ。 1.前回のfilepathフィールドを加工して「挿入した図を含むフォル ダ」を示すfilderpathフィールドを作ってやる。「最後のコロンま で」なんだから、 left(filepath,1,position(filepath,":",512,-1)) でオッケー。 2.前回とは独立にfolderpathを簡単に取り込むスクリプトを作る。 ある程度確認しながら作業することを考え、「Finderで一番手前の ウィンドウを取り込む」仕様にすると、 AppleScriptを実行 tell application "Finder" to set the folder_path to (folder of the front window) as text set cell "folderpath" of current record to Folder_Path みたいな感じ。実はファイルダイアログを表示してフォルダを指定 する方法を知らないんだけど。
お礼
前回も今回もありがとうございます! それにしてもみんなAppleスクリプトにお詳しいんですね^^ 自分ももっと勉強してファイルメーカーを使いこなしたいんですけど、どんな本読めばいいんでしょうか?
お礼
フォルダの選択、フォルダを開く作業、ともにほぼ作動しました。 ただ新たな問題点が・・・ どうもフォルダパスの文字数が長くなるとエラーが出るようなんです。 文字数が原因かはまだ調査中なんですが、いくつかフィールドに書き出せないフォルダがあって、それらにスクリプトを実行したら alias"パス名"をstringに型変換することはできません。(エラー-1700) とエラーメッセージが出ます。 同じように、書き出しができているフォルダの、さらに下層のフォルダも書き出せませんでした。 傾向的に、パスの文字数に制限があるのかなと感じたのですが・・・
補足
>エラーが出るのはfilepathですかfolderpathですか? すいません。描き間違えがありました。エラーは「folderpath」のほうです。 追加アドバイスを参考にいろいろ試してみますね。 成功したらまた報告させていただきます。 ありがとうございます。