NiftyServe FPRINT 2番会議室で連載した,「QuarkXPressを操ろう」の内容をそのまま載せています。

QuarkXPressを操ろう(その1)「プロパティを制する者は・・・(1)」
QuarkXPressを操ろう(その2)「プロパティを制する者は・・・(2)」
QuarkXPressを操ろう(その3)「プロパティを制する者は・・・(3)」
QuarkXPressを操ろう(その4)「プロパティを制する者は・・・(4)」
QuarkXPressを操ろう(その5)「プロパティを制する者は・・・(5)」
QuarkXPressを操ろう(その6)「今後のお勉強会のために必要なもの」

02631/02632 GGC00677 [,た]     QuarkXPressを操ろう(その1)
( 2)  96/02/28 00:05

毎度どーも[,た]です。
ご要望が,多いか少ないかわかりませんが,QuarkでのAppleScript
の講座というより,勉強会をやってみたいと思います。これが,
AppleScript Programmingへの橋渡し的な役目を果たせたらいいな
と思っています。では,スタート!
////////////////////////////////////////////////////////////
QuarkXPressを操ろう(その1)
 突然ですが,QXをAppleScriptで操るためのお勉強を始めましょ
う。今回のタイトルは,「プロパティを制する者は・・・(1)」
です。
-----------------------------------------------------------
tell application "QuarkXPress"
  activate
  get properties
end tell
-----------------------------------------------------------
まずは,点線に挟まれたスクリプトを実行しましょう。
具体的には,
 1)スクリプト編集プログラムを起動します
 2)編集―書式...を選択します。表現形式を「英語」にしてくだ
   さい
 3)ファイル―新規スクリプトを選択します
→ウインドウが開きます
 4)カーソルが点滅している部分に,点線に挟まれたスクリプト
   をコピーします
 5)実行ボタンを押す
 です。すると,
→"QuarkXPress"はどこにありますか? と聞いてきます
 ←QuarkXPress本体を選択して,開くボタンを押します
→QuarkXPressが起動します。
→「結果」ウインドウが表示され,そこに文字が沢山表示されたで
しょう。

これが,QXの"application"のプロパティです。その中に,こんな表
記があるでしょう。
auto backup: XXX
auto lib save: XXX
auto save: XXX
auto save interval: XXX    (XXXは個人個人で異なります)

これは,QXで環境設定―アプリケーションの
自動バックアップ
ライブラリへの自動保存
自動保存
自動保存?分おきに    の設定状況を表しています。

つまり,QXをAppleScriptで操るには,これらプロパティをどうゲッ
トして,どう加工するかということになります。これら手順を組み
立てることが,AppleScriptでのプログラミングになるわけです。
(その1 完)

GGC00677 [,た] 鎌田 幸雄

02632/02632 GGC00677 [,た]     QuarkXPressを操ろう(その2)
( 2)  96/02/28 00:05

では,引き続き「プロパティを制する者は・・・(2)」です。
今回は,何かドキュメントを開いてから,下記を実行してくださ
い。
-----------------------------------------------------------
tell application "QuarkXPress"
  activate
  tell document 1
     get properties
  end tell
end tell
-----------------------------------------------------------
→「結果」ウインドウが表示され,前回同様に文字が表示されま
す。

前回との違いは何かといいますと,
今開かれている"document"のプロパティです。
        ^^^^^^^^
tell document 1が追加されましたね。

tell〜 の〜は,オブジェクトといいます。〜に対して命令します
よ,そして,その命令はプロパティをgetしろということです。

上記スクリプトは,ドキュメントオブジェクトの,前回はアプケー
ションオブジェクトのプロパティをゲットするものです。

 では,QXには,どういうオブジェクトがあるのか。それに,どう
いうプロパティが設定してあるのかを知ることが,「操る」ための
第一歩になります。(その2 完)

GGC00677 [,た] 鎌田 幸雄

02645/02647 GGC00677 [,た]     QuarkXPressを操ろう(その3)
( 2)  96/02/29 00:28

「プロパティを制する者は・・・(3)」です。
前回の,「QXには,どういうオブジェクトがあるのか。それに,ど
ういうプロパティが設定してあるのかを知ること・・・」について
です。まずは,オブジェクトです。

オブジェクトの階層状況
┌────────────────────────────┐
│           application            │
└────────────────────────────┘
       ↓               ↓
┌────────────┐  ┌────────────┐
│document/master document│  default document  │
└────────────┘  └────────────┘
       ↓
┌────────────┐
│     spread     │
└────────────┘
       ↓
┌────────────┐
│     page     │
└────────────┘
       ↓
┌────────────┐  ┌────────────┐
│   generic box    │  │     text      │
│┌──────────┐│  │┌──────────┐│
││   text box   │──→││    story     ││
│└──────────┘│  │└──────────┘│
│┌──────────┐│  │      ↓      │
││   line box   ││  │┌──────────┐│
│└──────────┘│  ││ text style range  ││
│┌──────────┐│  │└──────────┘│
││  picture box   ││  │      ↓      │
│└─────┬────┘│  │┌──────────┐│
└──────│─────┘  ││   paragraph   ││
       ↓        │└──────────┘│
 ┌──────────┐   │      ↓      │
 │    image    │   │┌──────────┐│
 └──────────┘   ││    line    ││
                │└──────────┘│
                │      ↓      │
                │┌──────────┐│
                ││    word    ││
                │└──────────┘│
                │      ↓      │
                │┌──────────┐│
                ││   character   ││
                │└──────────┘│
                └────────────┘
(Apple Events Scripting with QuarkXPress より抜粋)
これらのオブジェクトに対して,命令していくわけです。
(その3 完)

GGC00677 [,た] 鎌田 幸雄

02647/02647 GGC00677 [,た]     QuarkXPressを操ろう(その4)
( 2)  96/02/29 00:28

「プロパティを制する者は・・・(4)」
前回の最後に簡単に
「これらのオブジェクトに対して,命令していくわけです。」
と言いましたが,前々と同様にプロパティをゲットしましょう。
新規のドキュメントのページに画像ボックスを作って,何か画像を
読み込んでください。その画像のプロパティをゲットします。
-----------------------------------------------------------
tell application "QuarkXPress"
  activate
  tell document 1
    tell page 1
      tell picture box 1
        tell image 1
          get properties
        end tell
      end tell
    end tell
  end tell
end tell
-----------------------------------------------------------
同じことを,もっと短くもかけます
-----------------------------------------------------------
tell application "QuarkXPress"
  activate
  tell image 1 of picture box 1 of page 1 of document 1
    get properties
  end tell
end tell
-----------------------------------------------------------
こんな感じで,ほかのオブジェクトにもtell〜してみて,どんな
プロパティがあるか確かめてみてください。
(その4 完)

GGC00677 [,た] 鎌田 幸雄

02663/02666 GGC00677 [,た]     QuarkXPressを操ろう(その5)
( 2)  96/03/01 10:26

「プロパティを制する者は・・・(5)」
いろいろなプロパティがあったと思います。これらは何を見れば
もっとよくわかるでしょうか

[方法1]用語説明を開く
 スクリプト編集プログラムで,ファイル―用語説明を開く...
 を選択し,Quark本体を開くと,用語説明が出てきます。
 範囲を指定してプリントしてみましょう。
(用語説明をpdfファイルにしたものが,CompuServe,QuarkHomeページ
あります)

[方法2]Quark Homeページから次のドキュメントをDownする
 Quarkのホームページのアドレスは,http://www.quark.com
 そのライブラリのスクリプティングの中に
 1 AdvancedScripting.hqx
 2 Ch4AdvScripting.hqx
 この二つで,一冊の本になります。
 前半が,QXPでのAppleScriptの概説,
 後半にプロパティの説明が載っています。

[方法3]US版の3.2 or 3.3をもっている人を捜す
 2のドキュメントは,US版の3.2 or 3.3には付属しています。
 Apple Eventというフォルダを捜してください。
(3.2と3.3の違いは,3.3にprint record propertiyが1つ追加
 されているだけなので,支障はありません)

 US版のドキュメントのクリエータはXPR3ですから,
 J版で読むにはXPRaに変更する必要があるでしょう。

[2,3]のドキュメントは,Quarkのスクリプティングには必須の
ものです。これがあれば,ある程度プログラミングに心得があれば
この勉強会を参考にしなくても,スクリプティングできると思いま
す。是非,なんとかしてゲットしましょう!
 でも,当面は,このドキュメントがなくてもスクリプティングで
きるように勉強会進めていきます。

(その5 完)

GGC00677 [,た] 鎌田 幸雄

02666/02666 GGC00677 [,た]     QuarkXPressを操ろう(その6)
( 2)  96/03/01 10:26

「今後のお勉強会のために必要なもの」

●AppleScriptそれ自体
 7.5で標準搭載されましたので,それで結構です。
機能拡張にAppleScriptとスクリプティング機能追加があれば動作し
ます。
●スクリプト編集プログラム
 上記をインストールする時に同時にセットされるはずです。
プログラミングする際,必要です。
●スクリプタブルファインダー
 これは,ファインダーをAppleScriptで制御する場合必要ですが,
 この勉強会では,まだ必要ではありません。ただし,ご自分の
 ファインダーが,スクリプタブルかどうか知ってて下さい。
 V7.1.4以降ならば,スクリプタブルです。
●AppleScriptの解説書
 1「AppleScript道入門」¥3,500-
 2「ダニーグッドマンのAppleScriptハンドブック」¥4,500-
 3「AppleScript入門」¥2,900-
 4「AppleScriptでゼンマイびゅんびゅん」¥1,400-
 5「AppleScript活用講座」¥2,800-
 6「AppleScriptリファレンス」¥1,800-
1〜5のうち,どれか一冊を選べばよいと思います。
(私が始めたときは,1〜3までの選択肢しかありませんでしたの
で,安い,翻訳本でないということで3にしました。)
6は最近で出たものです。常備したほうがなにかと便利です。
●Apple Events Scripting with QuarkXPress
 これは,前回述べた,QuarkのHomePageにあるやつです。当面は使
用しなくても済むような配慮をしますが,いずれは必要になるで
しょう。

×買わなくてもいいもの
 『AppleScript Scripters Toolkit 日本語版』という製品があり
ますが,現在ではあえて購入しなくてもいいと思います。
理由は(私の考えですが)
 1 7.5では標準搭載されている
 2 マニュアルは,全て「日本語表記」のため,使えない。せめ
   て,日英併記していてくれたら(併記してくれているのが,
   「AppleScriptリファレンス」という本で出ているので,これ
   で十分。
ですから,日本語表記で記述したい方,同梱されてくるFaceSpanと
いうものが欲しい方(これもUSでは2.0にV upされているのに・・)
以外は魅力のない商品です。

◎参考までに・・・
本格的なツールをプログラミングしていくと,デバッグ環境が整っ
ていないことに不満を持つようになるでしょう。
次のようなツールがありますので,興味のあるかたは,お調べ下さ
い(APDA 95/12 PriceListより)
AppleScript Software Development Toolkit v1.1  ¥17,100
ScriptDebugger                 ¥21,500
Scripter                    ¥31,700
ScriptWizard                  ¥15,600

ScriptDebuggerとScriptWizardはデモ版があります。
ScriptDebugger -- FMACPRO Lib14 -No.610
ScriptWizard --  FJAMEA Lib 9 -No.475

GGC00677 [,た] 鎌田 幸雄