[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(DTPtechNote:1503) Re: [AS_Indesign CS]選択している数字に和暦を追加
CS2用に書き直し
tell application "Adobe InDesign CS2_J"
tell document 1
if not (exists selection) then my my_error("テキストを選択してください", true)
if class of selection is not in {text, text column, story, paragraph, line, word, character} then my my_error("テキスト(半角数字)を選択してください", true)
if (contents of selection is "") then my my_error("半角数字を選択してください", true)
try
set seireki to (contents of selection) as integer
on error
my my_error("半角数字のみを選択してください", true)
end try
set tmp to my wareki(seireki)
if seireki = false then my my_error("明治以降にしか対応していません", true)
set contents of selection to (seireki as Unicode text) & "(" & tmp & ")"
end tell
end tell
-- 西暦年を和暦(明治・大正・昭和・平成)に変換
to wareki(Y)
if Y > 1988 then --平成
set W to "平成" & (Y - 1988) -- & "年"
else if Y > 1925 then --昭和
set W to "昭和" & (Y - 1925) -- & "年"
else if Y > 1912 then --大正
set W to "大正" & (Y - 1912) -- & "年"
else if Y > 1867 then --明治
set W to "明治" & Y - (1867) -- & "年"
else --それ以前はとりあえずfalseを返しておく^^
set W to false
end if
return W
end wareki
----------------------------------●エラー処理
on my_error(err_str, my_stop)
set err_str to err_str as Unicode text
if my_stop then
set my_stop to {"中止"}
else
set my_stop to {"中止", "続行"}
end if
tell application "Adobe InDesign CS2_J"
activate
beep
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