[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