[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(DTPtechNote:1467) [AS_Indesign CS2]add_index
(*
add_index 0.1 (c)2006 www.seuzo.jp
2006.10.14 とりあえず書いてみた。なんだかキーボードマクロっぽくてかっこわるい。
選択文字を索引に追加します。読みを自動入力します。
「Monzai」が必要です。
http://www.oomori.com/soft/monzai/index.html
●使い方
1)文字列を選択します。
2)このスクリプトを走らせます。
3)ダイアログが出ます。読みがまちがっていたら直して追加またはOKボタンをクリックします。
●注意
索引ウインドウを出す時に、ショートカット(コマンド+u)を使っています(だってUI作るのめんどいから)。ショートカットを変更したらそこも変更すること。
クリップボードを書き換えます。
*)
tell application "Adobe InDesign CS2_J"
activate
--my ver() --よく使うならここは外してよい
--my doc_exists() --ドキュメントを開いていないときに実行しないなら外してよい
if not (exists selection) or class of selection is not in {text, text column, story, paragraph, line, word, character} then
my my_error("索引に加えたい文字列を選択してください", true) --テキスト以外を選択しているなら中止
end if
--読みをget
set my_contents to contents of selection --選択文字をget
set ans to do script ("'" & my_contents & "'.match(/^[ -~ぁ-ヶ]+$/);") language javascript
if ans is nothing then
tell application "monzai"
set my_yomi to convert controller 1 mode 2 moji my_contents
set the clipboard to my_yomi --クリップボードに入れる
end tell
else
set the clipboard to my_contents
end if
--実行
try
tell application "System Events"
tell process "Adobe InDesign CS2_J"
keystroke "u" using command down
keystroke tab
keystroke tab
keystroke tab
keystroke tab
keystroke "v" using command down
end tell
end tell
on error errMsg number errNum
my my_error(errMsg & return & errNum, true) --エラーが起こったら中止
end try
end tell
--------------------------------------------------------●InDesignバージョン確認ルーチン
to ver()
tell application "Adobe InDesign CS2_J"
set my_version to (version of script preferences) as real
if my_version < 4 or my_version > 4.9 then
activate
my my_error("このプログラムはInDesign CS2以外では動作しません", true)
end if
my_version
end tell
end ver
--------------------------------------------------------●ドキュメントが開かれているかどうか
to doc_exists()
tell application "Adobe InDesign CS2_J"
if not (exists document 1) then
my my_error("ドキュメントが開かれていません", true)
end if
end tell
end doc_exists
----------------------------------●エラー処理
on my_error(err_str, my_stop)
if my_stop then
set my_stop to {"中止"}
else
set my_stop to {"中止", "続行"}
end if
tell application "Adobe InDesign CS2_J"
activate
set ans to button returned of (display dialog err_str buttons my_stop with icon 0) --警告ダイアログ出してストップ
if ans is "中止" then error number -128
end tell
end my_error