日付と時刻を取得するマクロ関数
Office2010に替えてから、昔つくったエクセル2003のマクロが使っているうちにコンパイルエラーを起こすようになった。2003以前と2007以降ではオブジェクトモデルが大幅に変更されたらしいので、廃止された関数とかは書き直さなくてはいけない。今回は日付と時刻を取得する関数がエラーになっていたので同じような関数に置き換えた。内容をメモしておく。
Date関数・Time関数→Now関数に書き換え
Year関数・Month関数・Day関数・Hour関数・Minute関数→DatePart関数に書き換え
これでコンパイルエラーは出なくなった。稼働テストをしても問題ないみたいなので、とりあえず終了。かなり昔に作ったものなので、エラー部分以外にも書き直したいと思う部分があったりするので、コード全体の見直しも必要かもしれない。
【InDesignCS4】スクリプト2件ご紹介
Inomotoです.今日は,InDesign CS4向けのAppleScriptを2つ紹介します.
段落のtext style rangeを正しく取得
InDesignCS4での不具合を発見しました.AppleScriptで,段落内のtext style rangeを取得しようとすると,次の段落の頭の方まで段落内と認識されてしまうという現象です.
text style rangeのparentを再起的に取得していくと,paragraphではくstoryに行き着くので,おそらくそのあたりが関係しているのではないかと思われます.
正しく段落内のみのtext style rangeを取得するようスクリプトを作成しました.paragraphと,text frame内のtext 1のobject referenceを渡すとtext style rangeのリストを返します.
あまり多くの条件でテストしていないので,エラーが出たりするケースがあると思います.そのときはコメントなどいただけると幸いです.
スクリプト名:段落のtext style rangeを正しく取得.scpt |
tell application “Adobe InDesign CS4″ activate tell document 1 tell text frame 1 set tgtTxt to object reference of text 1 –text frame内のtext全て set allParas to object reference of every paragraph repeat with aPara in allParas set tStyleRanges to getStyleRanges(aPara, tgtTxt) of me repeat with aRange in tStyleRanges select aRange delay 0.5 end repeat display dialog “paragraph end” giving up after 1 end repeat end tell end tell end tell –段落のtext style rangeを正しく取得 |
▼新規書類にペースト ▼カーソル位置にペースト ▼ドキュメント末尾にペースト |
ライブラリからアンカーオブジェクトを配置
あらかじめライブラリにassetを登録しておき,このスクリプトを実行すると,指定の場所にアンカーオブジェクトとしてassetを配置します.
このサンプルでは1ページ目の最前面のtext frameの一番始めのinsertion pointに配置します.
スクリプト名:ライブラリからアンカーオブジェクトを配置.scpt |
set assetName to “xxxx” –ここにassetの名前を入れる
tell application “Adobe InDesign CS4″ –————————————– –————————————– |
▼新規書類にペースト ▼カーソル位置にペースト ▼ドキュメント末尾にペースト |