title1
navigation bar3



[ 1 | 2 | 3 |4 |5 | 6 | 7 | 8 | 9 | 10 | 11 | 12-p1 | 12-p2 | 12-p3 ] [日経マック連載Index ]



連載[最終回(3)] 素朴なQ&A


ファイルメーカーProに「発行と引用」の機能を追加したいんですがAppleScriptでできるでしょうか。
先生
発行と引用の、どの機能を実現したいんだろうね?
「発行と引用」って、あるアプリケーションのデータをほかのアプリケーションに貼り付けて、元のデータ(発行側)を変更すると引用側が自動更新される仕組みですよね。それにしても、これをAppleScriptでやるとは難しそうですね。
先生
そもそもAppleScriptはアプリケーションに機能を追加する目的ではなくて、アプリケーションの機能を外部から操作するためのものだ。だから、ファイルメーカーが現在備えていない機能を追加する、といったことはかなり無理があると言わざるを得ないね。
ちょっと勘違いしていますね。

ファイルメーカーProのデータを取り込むスクリプトがすごく遅いのですが、何とかなりませんか。
先生
速いマックを買いなさい。
先生、冗談を言ってる場合じゃありません。
先生
では後はスクリプトの書き方を工夫するしかないね。なるべくファイルメーカーPro側で処理を行うようにして、全部AppleScriptでやろうとしないのがコツだ。例えばフィールドがたくさんある時、1つひとつデータをgetして加工いたら時間がかかるよね。こういう場合は、計算フィールドを使うテクニックがある。例えばこんなデータベースとAppleScriptがあったとしよう。
サンプルデータベース
サンプルスクリプト
これはファイルメーカーProから2つのフィールドを取ってきて、何やら新しい文字列を作って表示するスクリプトですね。
先生
でも、こうした文字列加工は、ファイルメーカーPro側でできてしまうんだ。こんな風にね。
ダイアログ
ファイルメーカーProでの文字列加工
さっきと同じメッセージですね。
先生
これはファイルメーカーProの計算フィールドで作ったものだよ。フィールド同士をつなぎ合わせて、新しい文字列を作っているんだ。
ファイルメーカーProの計算フィールド
そうすると、さっきのAppleScriptではこの「theMessage」とかいうフィールドを取り出せば一発じゃないですか。
先生
その通り。AppleScriptからは、このような命令で事足りるね。
AppleScriptで「theMessage」を取り出す
TOP

ファイルメーカーProのマクロとAppleScriptを組み合わせる方法を教えてください。
先生、やっと凄腕の質問が出て来ましたが、言っている意味がよく分かりません。
先生
おそらくファイルメーカーProが備えるスクリプトから外部にあるAppleScriptのアプリケーションにアクセスする方法を知りたいんじゃないかな。
ファイルメーカーProが備えるスクリプト?
先生
ファイルメーカーProは、AppleScriptとは別に独自のマクロ機能を持っている。そのマクロから、スクリプト編集プログラムで作ったAppleScriptを呼び出すことができるんだ。
えっ、AppleScriptでファイルメーカーProを操作するんじゃなくて、ファイルメーカーProからAppleScriptを呼び出すんですか。それでどんなメリットがあるんですか。
先生
1つ前の質問で、速度を上げるにはなるべくファイルメーカーPro側で処理させた方がいいと言ったろう。AppleScriptに対応しているからといって、何でもかんでもAppleScriptに頼るのは、問題を複雑にするだけだ。まずそのアプリケーションのマクロ機能を最大限に利用することを考えた方がいい。で、その究極的な方法が、主な作業をファイルメーカーProのマクロでやって、AppleScriptをサブ的に使うってやり方なんだな。
具体的な例を見せてください。
先生
じゃぁ「ファイルメーカーからの呼び出し例」というこんなスクリプトを作成してファイルメーカー側から呼び出してみよう。
ファイルメーカーからの呼び出し
スクリプトをアプリケーション形式で保存するのが第1のポイントだ。
ファイルメーカーからの呼び出し
もしかして、ファイルメーカーPro側からこの「ファイルメーカーからの呼び出し例」アプリケーションを実行するとか?
先生
大当たり。ファイルメーカーProのマクロでは、こういうように定義する。
「AppleScriptを呼び出す」のスクリプト編集
これは先生一体何のことなんでしょう?
先生
「AppleEvent送信」という命令がポイントだ。この詳細をこんな風に設定しておく。「アプリケーション指定」でさっき作った「ファイルメーカーProからの呼び出し例」を指定すればいい。「対象アプリケーションをアクティブにする」をチェックしておくと、呼び出すと同時にそれを前面に持ってきてくれる。
AppleEventの指定
実行してみようか、ほらね。
実行画面
へぇ〜、驚いた。
先生
ファイルメーカーProはスクリプトをボタンに割り当てられるから、適当なボタンを作成して、さっきのマクロを割り付ければ、ワンタッチで起動できるよね。
AppleScriptを呼び出すボタン
これで先生、1年間の連載が終わったんですね。ありがとうございました!
先生
そうだね。いやぁ、しかしきつかったよねこの1年は。あっと言う間に次の締切が来てしまうんだから。
楽しく勉強できて良かった!

TOP

AppleScript救急隊事務局(ASQs) info-asqs@fsight.co.jp

主催 株式会社フォーサイト   後援 アップルコンピュータ株式会社

(c)1996-2010 The ForeSight Inc. All rights reserved.Appleは、米国アップルコンピュータ社の登録商標です。
AppleScriptは、米国アップルコンピュータ社の商標です。
その他記載の会社名・製品名・ソフトウェア名は一般にその会社の登録商標または商標です。