メールに添付されたマクロ
…………………………………………………………………………………………
===== year.def 年表記変換 =====
; 年表記変換マクロ YEAR.DEF
; (VZ Editor version 1.5/1.6 共通)
; (C) T.Tanomura, 1992/9/15, 1994/3/5
【機能】
年表記を西暦から元号に変換したり、元号から西暦に変換したり、両様
の表記の併記に変換したりします。
【用法】
年表記の上にカーソルを置いてマクロを起動します。1回目は、変換結
果の出力形式のメニューが出ますので、どれかを選択します。
試しに、次の最初の年表記(「1888年」)の上にカーソルを置いてマク
ロを起動し、メニューの2番を選択してみてください。その後、マクロを
続けて4回起動してみてください。
1868(明治元年)
1912(大正元)年
1926(昭和元)年
1989(平成元)年
明治27(1894)
【補足】
処理できるのは、1868(明治元)年から2088(平成100)年までです。
年数の記述は、半角数字「0」〜「9」の組合せか「元」(元年)で行い
ます。全角数字や漢数字で記述されたものは処理できません。
「年」の文字はあってもなくてもかまいません。
2回目以後の実行時に変換結果の出力形式を変更したいときは、[SHIFT]
キーを押した状態でマクロを実行してください。メニューが再び表示され
ます。(J-3100、IBM PC でお使いの場合は、マクロ中の「ks&1」という部
分を「ks&3」に書き換えてください。)
1回目からメニューが出ないようにするには、マクロ中の「y="$(1)",」
という箇所を変更してください。n 番目の出力形式を基本とするには、括
弧内の数値を n+1 にします。例えば、3番目の出力形式にしたければ
「y="$(4)",」とします。このようにした場合も、[SHIFT]キーを押して実
行すればメニューを表示させることができます。
「■」の付いた行を変更すれば、元年の出力形式と処理後のカーソル位
置についてカスタマイズすることができます。
* M
89 ^\ "年表記変換"
? . a[, b[, f[, g[, i[, m[, n[, x[, y[, kx[,
a-, ; ■ 元年の出力形式(「a-,」なら「平成元」、「a+,」なら「平成1」)
b-, ; ■ 処理後のカーソル移動(「b-,」なら下、「b+,」なら右)
(cd=='年') ? #s
x="0123456789元明治大正昭和平成",
&f(cd,x) (r<0) ? >X
y="$(1)", (y.0<2 || ks&1) ? { !01 (r<0) ? >Y y.0=r+2, } y=y.0-1,
&s &>
&f(cd,x) (f=10<r) ? { g=(r-11)/2+1, >A }
&n ((n=r)<1868 || 2088<n) ? >X ; 西暦→元号
(n<1912) ? { g=1, m=n-1867, >B }
(n<1926) ? { g=2, m=n-1911, >B }
(n<1989) ? { g=3, m=n-1925, >B }
g=4, m=n-1988, >B
:A &f(cd,x+11) (0<=r) ? { #d >A } ; 元号→西暦
(cd=='元') ? m+, ? { &n ((m=r)<1) ? >X }
(g==1 && m<46) ? { n=m+1867, >B }
(g==2 && m<16) ? { n=m+1911, >B }
(g==3 && m<65) ? { n=m+1925, >B }
(g==4 && m<101)? { n=m+1988, >B }
>X
:B &> i-, ; 変換結果を出力
:C &f(cd,x) (0<=r) ? { #g i++, >C }
#J (i) { #u } #[
mi[, mi-,
(y==1) ? { (f) ? &01 ? &02 }
(y==2) ? { &01 '(' &02 ')' }
(y==3) ? { &02 '(' &01 ')' }
(y==4) ? &01
(y==5) ? &02
mi],
(b) ? { r], (cd=='年') ? #d (0) } ? { &x(r]) #x } >Z
:X &b(5)
:Y &x(r])
:Z y], x], n], m], i], g], f], b], a], &d .
0: &f(cd,x) (0<=r) ? { #s (r) ? . >^ } #d .
1: &?("%d",n) .
2: (a || 1<m) ? r="%4s%d", ? r="%4s元", &?(r,x+8+g*4,m) .
* P
1 "【出力形式】",15,5
"1 西暦<->元号"
"2 1993(平成5)"
"3 平成5(1993)"
"4 1993"
"5 平成5"
*===== year.def 年表記変換 =====
; 年表記変換マクロ YEAR.DEF
; (VZ Editor version 1.5/1.6 共通)
; (C) T.Tanomura, 1992/9/15, 1994/3/5, 2019/4/12(新元号対応:mezala)
【機能】
年表記を西暦から元号に変換したり、元号から西暦に変換したり、両様
の表記の併記に変換したりします。
【用法】
年表記の上にカーソルを置いてマクロを起動します。1回目は、変換結
果の出力形式のメニューが出ますので、どれかを選択します。
試しに、次の最初の年表記(「1888年」)の上にカーソルを置いてマク
ロを起動し、メニューの2番を選択してみてください。その後、マクロを
続けて4回起動してみてください。
1868(明治元年)
1912(大正元)年
1926(昭和元)年
1989(平成元)年
明治27(1894)
【補足】
処理できるのは、1868(明治元)年から2118(令和100)年までです。
年数の記述は、半角数字「0」〜「9」の組合せか「元」(元年)で行い
ます。全角数字や漢数字で記述されたものは処理できません。
「年」の文字はあってもなくてもかまいません。
2回目以後の実行時に変換結果の出力形式を変更したいときは、[SHIFT]
キーを押した状態でマクロを実行してください。メニューが再び表示され
ます。(J-3100、IBM PC でお使いの場合は、マクロ中の「ks&1」という部
分を「ks&3」に書き換えてください。)
1回目からメニューが出ないようにするには、マクロ中の「y="$(1)",」
という箇所を変更してください。n 番目の出力形式を基本とするには、括
弧内の数値を n+1 にします。例えば、3番目の出力形式にしたければ
「y="$(4)",」とします。このようにした場合も、[SHIFT]キーを押して実
行すればメニューを表示させることができます。
「■」の付いた行を変更すれば、元年の出力形式と処理後のカーソル位
置についてカスタマイズすることができます。
* M
89 ^\ "年表記変換"
? . a[, b[, f[, g[, i[, m[, n[, x[, y[, kx[,
a-, ; ■ 元年の出力形式(「a-,」なら「平成元」、「a+,」なら「平成1」)
b-, ; ■ 処理後のカーソル移動(「b-,」なら下、「b+,」なら右)
(cd=='年') ? #s
x="0123456789元明治大正昭和平成令和",
&f(cd,x) (r<0) ? >X
y="$(1)", (y.0<2 || ks&1) ? { !01 (r<0) ? >Y y.0=r+2, } y=y.0-1,
&s &>
&f(cd,x) (f=10<r) ? { g=(r-11)/2+1, >A }
&n ((n=r)<1868 || 2088<n) ? >X ; 西暦→元号
(n<1912) ? { g=1, m=n-1867, >B }
(n<1926) ? { g=2, m=n-1911, >B }
(n<1989) ? { g=3, m=n-1925, >B }
(n<2019) ? { g=4, m=n-1988, >B }
g=5, m=n-2018, >B
:A &f(cd,x+11) (0<=r) ? { #d >A } ; 元号→西暦
(cd=='元') ? m+, ? { &n ((m=r)<1) ? >X }
(g==1 && m<46) ? { n=m+1867, >B }
(g==2 && m<16) ? { n=m+1911, >B }
(g==3 && m<65) ? { n=m+1925, >B }
(g==4 && m<31) ? { n=m+1988, >B }
(g==5 && m<101)? { n=m+2018, >B }
>X
:B &> i-, ; 変換結果を出力
:C &f(cd,x) (0<=r) ? { #g i++, >C }
#J (i) { #u } #[
mi[, mi-,
(y==1) ? { (f) ? &01 ? &02 }
(y==2) ? { &01 '(' &02 ')' }
(y==3) ? { &02 '(' &01 ')' }
(y==4) ? &01
(y==5) ? &02
mi],
(b) ? { r], (cd=='年') ? #d (0) } ? { &x(r]) #x } >Z
:X &b(5)
:Y &x(r])
:Z y], x], n], m], i], g], f], b], a], &d .
0: &f(cd,x) (0<=r) ? { #s (r) ? . >^ } #d .
1: &?("%d",n) .
2: (a || 1<m) ? r="%4s%d", ? r="%4s元", &?(r,x+8+g*4,m) .
* P
1 "【出力形式】",15,5
"1 西暦<->元号"
"2 1993(平成5)"
"3 平成5(1993)"
"4 1993"
"5 平成5"
*> LXerにあるまじき方向へ進んでいます。
> いや,それはまったく正しい方向だと思いますよ.いつも携帯するモノで使えるようにする…これ最高に便利なことですから.(^^)
> 人生の終わりのほうが現実的でしょう(涙)。