| ▲ | (1)辞書を調べる (2)試しにget (3)恐る恐るset …これぞスクリプティングの極意普段使っているソフトでも知らないソフトでも、辞書を見てやれば何とかなる。 |
|
|
| ▲ | と言うより、辞書を見ながら自分で試行錯誤するしかないのが現状。 ぜひメーカーは、アプリケーションのスクリプティング・マニュアルを出してほしい。 |
連載[3-1] 自分でスクリプティングするための極意
|
《 デスクトップ上のアイコンを動かしてみよう
》
|
|
|
」
|
先生っ、おはようございます。 |
|
先生
|
おやおや、また今日はずいぶん早いお出ましだね。 |
|
」
|
いやぁ、今月は山ほどスクリプトを見せていただけるって話なんで、本部長から正式に出張扱いにしてもらったんです。 |
|
先生
|
そうか、それではもう少し真剣にやらないとね。 今回はショート・スクリプトの大全集をやってみるつもりだけれど、まずはいくつか君に作ってもらうことにしようか。 |
|
」
|
えっ、僕が作るんですか? |
|
先生
|
平気平気。手順は逐次教えて上げるから。話を聞いているだけではなかなか身に着かないでしょ。 |
|
」
|
分かりました。それじゃあ、アイコンを整理するスクリプトっていうのはどうでしょう。僕でもできそうですか? |
|
先生
|
もちろん、できないことはない。だが今回はとりあえず、デスクトップ上にある1個のフォルダ・アイコンの位置を動かすところからやってみよう。 |
|
《 困った時には辞書を見る 》
|
|
|
」
|
えーと、まず何から始めましょう。動かすオブジェクトを決めるんでしょうか。 |
|
先生
|
もちろんそれは必要だね。それから? |
|
」
|
うーん、移動先の場所を指定する必要がありますよね。 |
|
先生
|
そうだね。ではそのためには? |
|
」
|
えっ、後はスクリプトを書けばいいんでしょ? |
|
先生
|
そうかな? では書いてごらん。 |
|
」
|
えー、Finderに命令してデスクトップのフォルダを操作するのだから、 tell application "Finder" (作業内容) end tell って形になりますね。で、次はどうしましょう? |
|
先生
|
ほら、前回のぞいて見たでしょ。困った時に役立ちそうなものを。 |
|
」
|
あぁ、思い出しました。「辞書」ですね。そうか、Finderの辞書を見ればいいんだ。 |
|
先生
|
そう。正式には「Finder 用語説明」だったね。 |
![]() |
|
|
《 アイコンの位置は辞書のどこに?
》
|
|
|
」
|
ですが先生、この辞書の見方がよく分かりません。左の単語リストから選べばその解説が右側に表示されるってことは分かります。だけど一体どの単語を選び出せばいいか見当がつきません。 |
|
先生
|
うーん、そうか。ではもう一度,今やろうとしていることを考えてごらん。フォルダの位置を移動させるんでしょ。すると「フォルダ(folder)」の「位置(position)」が問題だよね。 |
|
」
|
あっ、そうですね。まずリストからfolderを探すんですね。ありました。斜体の用語が「クラス」なんでしたね。でも先生、ここにはElementsだけで属性が何もありませんよ。 |
|
先生
|
ほら、前回も同じようなことがあったでしょ。ファイルにはnameなんていう属性がなかったのを覚えているかな。 |
|
」
|
思い出しました。folderやfileはitemクラスの属性を継承しているんでしたね。するともしや今回もitemかな。 おっ、ありますねぇ。 |
|
先生
|
そこから位置に関係しそうな属性を探してごらん。 |
|
」
|
あっ、ありました。まさに位置を示すpositionというのが見つかりました。 |
![]() |
|
|
《 辞書で見当をつけてgetしてみる
》
|
|
|
先生
|
じゃあ、それが使えるかどうか試してみなさい。 |
|
」
|
えっ、試すってどうすればいいんですか? |
|
先生
|
前回ちょっと見せたでしょ。EGWORDの文書から「Pippin」の「P」の字を取り出すのにどんな命令を使ったかな? |
|
」
|
あぁ、「get」ですね。ではこう書けばいいんですね。
tell application "Finder" to get position of folder "私のフォルダ"
|
|
先生
|
さぁ、どうだい。 |
|
」
|
では、実行開始します。おっ、動きました、先生。ちゃんと答が結果に表示されましたよ。 この{364, 325}というのがこのフォルダのデスクトップ上の位置なんですね。 |
|
先生
|
うん、これは画面の左上から計算した位置でね、最初の364が水平方向で、2番目の325が垂直方向だ。 さぁ、これでpositionが使えるのが分かったから、本題に戻ろうか。 |
![]() |
|
|
《 getできたら今度はsetしてみよう
》
|
|
|
」
|
はい。今度は位置を指定しなければなりませんよね。どうすればいいんでしょうかねぇ。 |
|
先生
|
君はもうその命令を知っているはずだけど。1回目でさんざん出てきたじゃないの。 |
|
」
|
思い出しました。「set」です。うん、これで書けそうな気がします。 tell application "Finder" to set position of folder "私のフォルダ" to {50, 50} |
|
先生
|
よしよし、では動かしてみたまえ。 |
|
」
|
おおっ、アイコンがテレポーションみたいに一瞬で移動しましたよ。 |
![]() |
|
|
先生
|
ひとまずは大成功だな。 |
|
」
|
でも、これくらいのことで大成功とか言ってていいのでしょうか。 |
|
先生
|
何を言っているんだ。千里の道も一歩からだ。もっと実用的なものを作るにしても、基本は同じなんだ。 「itemクラス(デスクトップ上のアイテム)のpositionという属性をsetすればアイコンの位置が変わる」ってことを辞書から読み取れたのだから立派だ。 後は応用次第でどうにでもなるわい。 |
|
」
|
応用と言いますと。 |
|
先生
|
前々回で出てきたrepeat文やevery句で複数のアイコンをまとめて処理したり、変数を使って{50,50}の代わりに規則的な数値をsetしていけば、デスクトップ整理スクリプトが出来るじゃないか。 |
|
」
|
なるほど。まずは辞書を読みこなすのが第一ってわけですか。 |
|
《 EGWORDのワープロ機能を自動操縦
》
|
|
|
先生
|
では今度は、EGWORD6.0で文字を操作してみよう。前回もEGWORDを使ったが、どんなクラスがあったか覚えているかな? |
|
」
|
今、辞書を開いているところです。Finderと違って、クラスも命令もあまり多くないんですね。 |
![]() |
|
|
先生
|
では今度は,EGWORD6.0で文字を操作してみよう。前回もEGWORDを使ったが、どんなクラスがあったか覚えているかな? |
|
」
|
今、辞書を開いているところです。Finderと違って、クラスも命令もあまり多くないんですね。 |
|
先生
|
そうだね。EGWORD6.0の場合、スクリプティングできるのは主にワープロ機能だけで、グラフィックス機能とかはできないんだよ。じゃあ、EGWORDを起動して同じフォルダに入っている「ミッキー」というファイルを開いてみよう。これも練習だから、EGWORDをスクリプトで起動してみなさい。 |
|
」
|
「ミッキー」という名前のファイルを開くんだから、こんな感じでしょうか。 tell application "EGWORD6.0" to open file "ミッキー" |
|
先生
|
やるじゃないか。さて、次は何をやってみようかねぇ。 |
![]() |
|
AppleScript救急隊事務局(ASQs) info-asqs@fsight.co.jp