|
皆さん今日は、Iranoan です。
http://www.maruo.co.jp/hidesoft/2/x21002_.html
(hidesoft.2:21002| 特殊文字の入力について(UNICODE))
のマクロをこちらに記載します。
//フランス語のアクサン付き文字
//発音記号付き文字
//ダイアクリティカル付き文字
//等呼び方は幾つかあるが、特殊文字の入力を支援するマクロ
//主な西欧/東欧の文字には多分対応している
//マクロは、起動時に押されているキーによって変化するので、登録したマクロを
//[Alt]+[0] 等 [0] (ゼロ、~が刻印されている) と何かの組み合わせで頭に ~ の付
く文字
//[Alt]+[2] 等 [2] と何かの組み合わせで頭に " の付く文字
//[Alt]+[7] 等 [7] と何かの組み合わせで頭に ' の付く文字
//[Alt]+[O]/[「] 等 [O] (オー) か [「] (゜が刻印されている)
// と何かの組み合わせで頭に ' の付く文字
//[Alt]+[V] 等 [V] と何かの組み合わせで頭に v の付く文字
//[Alt]+[:] 等 [:] と何かの組み合わせで頭に .. の付く文字
//[Alt]+[,] 等 [,] と何かの組み合わせで下に , の付く文字
//[Alt]+[-] 等 [-] と何かの組み合わせで頭に - の付く文字
//[Alt]+[.] 等 [.] と何かの組み合わせで頭に . の付く文字
//[Alt]+[@] 等 [@] (`が刻印されている) と何かの組み合わせで頭に ` の付く文字
//[Alt]+[^] 等 [^] と何かの組み合わせで頭に ^ の付く文字
//モードなる。それ以外は、メイン・メニューが表示される。
// ae, oe 等はこのメニューから入力できる。
disablebreak;
if( iskeydown( 0x30 ) )call tilde;
else if( iskeydown( 0x32 ) )call quote;
else if( iskeydown( 0x37 ) )call dash;
else if( iskeydown( 0x4F ) || iskeydown( 0xDB ) )call circle;
else if( iskeydown( 0x56 ) )call inverce_hat;
else if( iskeydown( 0xBA ) )call colon;
else if( iskeydown( 0xBC ) )call comma;
else if( iskeydown( 0xBD ) )call minus;
else if( iskeydown( 0xBE ) )call dot;
else if( iskeydown( 0xC0 ) )call backquote 0;
else if( iskeydown( 0xDE ) )call backquote 2;
while( 1 ){
menu
"&` &@\t\u00C0",
"&\' &7\t\u00C1",
"&^ \t\u00C2",
"~ &0\t\u00C3",
"&: \t\u00C4",
"&(I_(B &「\t\u00C5",
"&, \t\u00C7",
"&- \t\u0100",
"&v \t\u0102",
"&. \t\u0106",
"&\" &2\t\u150",
"&ae \t\u0006",
"&oe \t\u0152",
"&d- アイスランド語、フェロー語\t\u00D0",
"o/ &/\t\u00D8",
"&p ルーン文字、アイスランド語 &th\t\u00DE",
"β ドイツ語&ss\t\u00DF",
"&Quit";
##shift = iskeydown( 0x10 );
if( (!result) || result == 19 )endmacro;
else if( result == 1 )call backquote 0;
else if( result == 2 )call dash;
else if( result == 3 )call backquote 2;
else if( result == 4 )call tilde;
else if( result == 5 )call colum;
else if( result == 6 )call circle;
else if( result == 7 )call comma;
else if( result == 8 )call minus;
else if( result == 9 )call inverce_hat;
else if( result == 10 )call dot;
else if( result == 11 )call quote;
else{
if( result == 12 )##u_code = 230;
else if( result == 13 )##u_code = 339;
else if( result == 14 )##u_code = 240;
else if( result == 15 )##u_code = 248;
else if( result == 16 )##u_code = 254;
else if( result == 17 )##u_code = 223;
if( ##shift ){
if( ##u_code == 339 )##u_code = 338;
else if( ##u_code == 223 )##u_code = 223;
else ##u_code = ##u_code - 32;
}
insert unichar( ##u_code );
break;
}
}
endmacro;
inverce_hat://^ を逆にした v の様な記号が尻につく文字
menu "&a", "&c", "&d", "&e", "&l", "&n", "&r",
"&s", "&t", "&z", "&back";
##shift = iskeydown( 0x10 );
if( !result )return;
else{
if( result == 1 )##u_code = 259;
else if( result == 2 )##u_code = 269;
else if( result == 3 )##u_code = 271;
else if( result == 4 )##u_code = 283;
else if( result == 5 )##u_code = 318;
else if( result == 6 )##u_code = 328;
else if( result == 7 )##u_code = 345;
else if( result == 8 )##u_code = 353;
else if( result == 9 )##u_code = 357;
else if( result == 10 )##u_code = 382;
else if( result == 11 )return;
if( ##shift )##u_code = ##u_code - 1;
}
insert unichar( ##u_code );
endmacro;
dot://.が頭につく文字
menu "&e", "&z", "&back";
##shift = iskeydown( 0x10 );
if( !result )return;
else{
if( result == 1 )##u_code = 279;
else if( result == 2 )##u_code = 380;
else if( result == 3 )return;
if( ##shift ) ##u_code = ##u_code - 1;
}
insert unichar( ##u_code );
endmacro;
quote://"が頭につく文字
menu "&o", "&u", "&back";
##shift = iskeydown( 0x10 );
if( !result )return;
else{
if( result == 1 )##u_code = 337;
else if( result == 2 )##u_code = 369;
else if( result == 3 )return;
if( ##shift ) ##u_code = ##u_code - 1;
}
insert unichar( ##u_code );
endmacro;
minus://-が頭につく文字
menu "&a", "&d (南スラブ諸語、ベトナム語)",
"&e", "&i", "&l", "&o", "&u", "&back";
##shift = iskeydown( 0x10 );
if( !result )return;
else{
if( result == 1 )##u_code = 257;
else if( result == 2 )##u_code = 273;
else if( result == 3 )##u_code = 275;
else if( result == 4 )##u_code = 299;
else if( result == 5 )##u_code = 322;
else if( result == 6 )##u_code = 333;
else if( result == 7 )##u_code = 363;
else if( result == 8 )return;
if( ##shift ) ##u_code = ##u_code - 1;
}
insert unichar( ##u_code );
endmacro;
comma://,が尻につく文字
menu "&a", "&c", "&e", "&g", "&i", "&k",
"&l", "&n", "&r", "&s", "&t", "&u", "&back";
##shift = iskeydown( 0x10 );
if( !result )return;
else{
if( result == 1 )##u_code = 261;
else if( result == 2 )##u_code = 231;
else if( result == 3 )##u_code = 281;
else if( result == 4 )##u_code = 291;
else if( result == 5 )##u_code = 303;
else if( result == 6 )##u_code = 311;
else if( result == 7 )##u_code = 316;
else if( result == 8 )##u_code = 326;
else if( result == 9 )##u_code = 343;
else if( result == 10 )##u_code = 351;
else if( result == 11 )##u_code = 355;
else if( result == 12 )##u_code = 371;
else if( result == 13 )return;
if( ##shift ){
if( ##u_code == 231 )##u_code = ##u_code - 32;
else ##u_code = ##u_code - 1;
}
}
insert unichar( ##u_code );
endmacro;
circle://○が頭につく文字
menu "&a","&u", "&back";
##shift = iskeydown( 0x10 );
if( !result )return;
else if( result == 1 ){
if( ##shift )insert "\u00C5";
else insert "\u00E5";
}
else if( result == 2 ){
if( ##shift )insert "\u016E";
else insert "\u016F";
}
else return;
endmacro;
colum://: を横にしたもの ("ではない) が頭につく文字
menu "&a", "&e", "&i", "&o", "&u", "&y", "&back";
##shift = iskeydown( 0x10 );
if( !result )return;
else{
if( result == 1 )##u_code = 228;
else if( result == 2 )##u_code = 235;
else if( result == 3 )##u_code = 239;
else if( result == 4 )##u_code = 246;
else if( result == 5 )##u_code = 252;
else if( result == 6 )##u_code = 255;
else if( result == 7 )return;
if( ##shift ){
if( ##u_code == 255 )##u_code = ##u_code + 121;
else ##u_code = ##u_code - 32;
}
}
insert unichar( ##u_code );
endmacro;
tilde://~が頭につく文字
menu "&a", "&n", "&o", "&back";
##shift = iskeydown( 0x10 );
if( !result )return;
else{
if( result == 1 )##u_code = 227;
else if( result == 2 )##u_code = 241;
else if( result == 3 )##u_code = 245;
else if( result == 4 )return;
if( ##shift )##u_code = ##u_code - 32;
}
insert unichar( ##u_code );
endmacro;
dash://'が頭につく文字
menu "&a", "&c", "&e", "&i", "&l", "&n", "&o",
"&r", "&s", "&u", "&y", "&z", "&back";
##shift = iskeydown( 0x10 );
if( !result )return;
else{
if( result == 1 )##u_code = 225;
else if( result == 2 )##u_code = 263;
else if( result == 3 )##u_code = 233;
else if( result == 4 )##u_code = 237;
else if( result == 5 )##u_code = 314;
else if( result == 6 )##u_code = 324;
else if( result == 7 )##u_code = 243;
else if( result == 8 )##u_code = 341;
else if( result == 9 )##u_code = 347;
else if( result == 10 )##u_code = 250;
else if( result == 11 )##u_code = 253;
else if( result == 12 )##u_code = 378;
else if( result == 13 )return;
if( ##shift ){
if( ##u_code >= 263 )##u_code = ##u_code - 1;
else ##u_code = ##u_code - 32;
}
}
insert unichar( ##u_code );
endmacro;
backquote://` (##1 == 0) や ^ (##1 == 2) が頭につく文字
menu "&a", "&e", "&i", "&o", "&u", "&back";
##shift = iskeydown( 0x10 );
if( !result )return;
else{
if( result == 1 )##u_code = 224 + ##1;
else if( result == 2 )##u_code = 232 + ##1;
else if( result == 3 )##u_code = 236 + ##1;
else if( result == 4 )##u_code = 242 + ##1;
else if( result == 5 )##u_code = 249 + ##1;
else if( result == 6 )return;
if( ##shift )##u_code = ##u_code - 32;
}
insert unichar( ##u_code );
endmacro;
|
|