特殊文字入力マクロNo.05103
Iranoan さん 06/03/10 23:51
 
 皆さん今日は、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;

[ ]
RE:05103 特殊文字入力マクロNo.05104
Iranoan さん 06/03/11 00:50
 
 今日は、Iranoan です。自己フォローです。
>  http://www.maruo.co.jp/hidesoft/2/x21002_.html
> (hidesoft.2:21002| 特殊文字の入力について(UNICODE))
> のマクロをこちらに記載します。
 一つ説明を忘れていましたが、最後の英字の選択 (タイプ) 時に [Shift]
キーを押していると、大文字が入力されます。

[ ]