連載[最終回(3)] 素朴なQ&A
|
|
ファイルメーカーProに「発行と引用」の機能を追加したいんですがAppleScriptでできるでしょうか。 |
|
先生
|
発行と引用の、どの機能を実現したいんだろうね? |
|
」
|
「発行と引用」って、あるアプリケーションのデータをほかのアプリケーションに貼り付けて、元のデータ(発行側)を変更すると引用側が自動更新される仕組みですよね。それにしても、これをAppleScriptでやるとは難しそうですね。 |
|
先生
|
そもそもAppleScriptはアプリケーションに機能を追加する目的ではなくて、アプリケーションの機能を外部から操作するためのものだ。だから、ファイルメーカーが現在備えていない機能を追加する、といったことはかなり無理があると言わざるを得ないね。 |
|
」
|
ちょっと勘違いしていますね。 |
|
|
ファイルメーカーProのデータを取り込むスクリプトがすごく遅いのですが、何とかなりませんか。 |
|
先生
|
速いマックを買いなさい。 |
|
」
|
先生、冗談を言ってる場合じゃありません。 |
|
先生
|
では後はスクリプトの書き方を工夫するしかないね。なるべくファイルメーカーPro側で処理を行うようにして、全部AppleScriptでやろうとしないのがコツだ。例えばフィールドがたくさんある時、1つひとつデータをgetして加工いたら時間がかかるよね。こういう場合は、計算フィールドを使うテクニックがある。例えばこんなデータベースとAppleScriptがあったとしよう。 |
![]() |
|
![]() |
|
|
」
|
これはファイルメーカーProから2つのフィールドを取ってきて、何やら新しい文字列を作って表示するスクリプトですね。 |
|
先生
|
でも、こうした文字列加工は、ファイルメーカーPro側でできてしまうんだ。こんな風にね。 |
![]() |
|
![]() |
|
|
」
|
さっきと同じメッセージですね。 |
|
先生
|
これはファイルメーカーProの計算フィールドで作ったものだよ。フィールド同士をつなぎ合わせて、新しい文字列を作っているんだ。 |
![]() |
|
|
」
|
そうすると、さっきのAppleScriptではこの「theMessage」とかいうフィールドを取り出せば一発じゃないですか。 |
|
先生
|
その通り。AppleScriptからは、このような命令で事足りるね。 |
![]() |
|
|
ファイルメーカーProのマクロとAppleScriptを組み合わせる方法を教えてください。 |
|
」
|
先生、やっと凄腕の質問が出て来ましたが、言っている意味がよく分かりません。 |
|
先生
|
おそらくファイルメーカーProが備えるスクリプトから外部にあるAppleScriptのアプリケーションにアクセスする方法を知りたいんじゃないかな。 |
|
」
|
ファイルメーカーProが備えるスクリプト? |
|
先生
|
ファイルメーカーProは、AppleScriptとは別に独自のマクロ機能を持っている。そのマクロから、スクリプト編集プログラムで作ったAppleScriptを呼び出すことができるんだ。 |
|
」
|
えっ、AppleScriptでファイルメーカーProを操作するんじゃなくて、ファイルメーカーProからAppleScriptを呼び出すんですか。それでどんなメリットがあるんですか。 |
|
先生
|
1つ前の質問で、速度を上げるにはなるべくファイルメーカーPro側で処理させた方がいいと言ったろう。AppleScriptに対応しているからといって、何でもかんでもAppleScriptに頼るのは、問題を複雑にするだけだ。まずそのアプリケーションのマクロ機能を最大限に利用することを考えた方がいい。で、その究極的な方法が、主な作業をファイルメーカーProのマクロでやって、AppleScriptをサブ的に使うってやり方なんだな。 |
|
」
|
具体的な例を見せてください。 |
|
先生
|
じゃぁ「ファイルメーカーからの呼び出し例」というこんなスクリプトを作成してファイルメーカー側から呼び出してみよう。 |
![]() |
|
| スクリプトをアプリケーション形式で保存するのが第1のポイントだ。 | |
![]() |
|
|
」
|
もしかして、ファイルメーカーPro側からこの「ファイルメーカーからの呼び出し例」アプリケーションを実行するとか? |
|
先生
|
大当たり。ファイルメーカーProのマクロでは、こういうように定義する。 |
![]() |
|
|
」
|
これは先生一体何のことなんでしょう? |
|
先生
|
「AppleEvent送信」という命令がポイントだ。この詳細をこんな風に設定しておく。「アプリケーション指定」でさっき作った「ファイルメーカーProからの呼び出し例」を指定すればいい。「対象アプリケーションをアクティブにする」をチェックしておくと、呼び出すと同時にそれを前面に持ってきてくれる。 |
![]() |
|
| 実行してみようか、ほらね。 | |
![]() |
|
|
」
|
へぇ〜、驚いた。 |
|
先生
|
ファイルメーカーProはスクリプトをボタンに割り当てられるから、適当なボタンを作成して、さっきのマクロを割り付ければ、ワンタッチで起動できるよね。 |
![]() |
|
|
」
|
これで先生、1年間の連載が終わったんですね。ありがとうございました! |
|
先生
|
そうだね。いやぁ、しかしきつかったよねこの1年は。あっと言う間に次の締切が来てしまうんだから。 楽しく勉強できて良かった! |
AppleScript救急隊事務局(ASQs) info-asqs@fsight.co.jp