;;ddwin自由 String DDpath, ddwin2, SearchWord, str,m Integer I,x1,y1,x2,y2,x3,y3,x4,y4,lstr,l ;設定 setstr(DDPath , 'c:\ddwin') ;ddwin.exe のあるパス(フォルダ)をドライブとともに指定。最後に \ を入れない ;setstr(ddwin2 ,' ,1,英和・和英辞典,,') ;辞書グループがある場合 ;setstr(ddwin2 ,' ,1,国語辞典,,') ;setstr(ddwin2 ,' ,1,百科事典,,') setstr(ddwin2 ,' ,2,,,') ;辞書グループがない場合 ;設定終了 GetSelection(SearchWord) ;showmessage(searchword,0) Cmpstr(SearchWord,'<>','') JumpIfTrue(select) ;範囲指定がない場合************************************* ;単語の区切り確定のための作業 GetCurPos(x1, y1) CurWordRight ;カーソル一語右へ GetCurPos(x2, y2) GetCurLineStr(Str); StrLen(lstr,str); dec(lstr) cmpint(lstr,'=',x2) JumpIffalse(backchar) ;単語が行末にある場合 StrRight(str,Str,3); strLeft(str,str,2); GetCharType(i,str,0); switchcall(i,l000,l001,l002,l003,l004) cmpint(l,'>',-1) ;最後に区切り記号がないなら getpos にジャンプ jumpiffalse(getpos) :backchar CurLeft ;カーソルを一字左へ :getpos GetCurPos(x3, y3) ;単語の最後の位置の次をget ただし,about DecBy(y3, y1) ;範囲指定していない時の範囲指定 switch(y3,l0,l1) :l0 ;単語が1行に収まっている場合 For(i,x1, x3) SelectToLeft GetCurPos(x2,y2) BreakForInt(x2, '<=', x1) EndFor Jump(select); :l1 ;単語が2行にわたる場合 For(i,0, x3) SelectToLeft GetCurPos(x2,y2) BreakForInt(x2, '=', 0) EndFor For(i,0, 5000) SelectToLeft GetCurPos(x2,y2) BreakForInt(x2, '<=', x1) EndFor ;以上範囲指定をしていない場合************************* :select GetSelection(searchword); CurWordRight ;カーソル一語右へ addstr(ddwin2,searchWord) ShellExecute('Open' , 'ddwin.exe', ddwin2,ddpath, 5) exit :l000 :l004 showmessage('文字コードに異常がありました。',0) exit; :l001 :l003 StrRight(str,str,1) StrFind(l,'({[「,.")}]」 /・',Str); return :l002 ;全角第1バイト StrFind(l,'、。.?!()〔〕[]{}「」『』【】, ’”・',Str); return //ddwin 辞書引きマクロを作成しました。 使用法: 引きたい語を反転させるか,先頭にカーソルをもっていくかしてこのマクロを起動 します。 ddwin を起動していなければ,起動して辞書を引きます。 すでに起動していればそのまま辞書を引きます。 (1)最初にddwin のあるパスを設定してください。c:\ddwin ならば設定の必要は ありません。 マクロの中の setstr(DDPath , 'c:\ddwin') の部分です。 パスの最後に\は入れません。 (2)辞書グループを設定している場合は,辞書グループの名前を自分のと同じにし て複数のddwin 辞書引きマクロを作成してください。 私の場合は,(a)国語辞典,(b)英和・和英辞典,(c)百科事典の3つのグループが あるので3つの辞書引きマクロにしています。 それぞれ, (a)setstr(ddwin2 ,' ,1,国語辞典,,') 上にあるようにsetstr(ddwin2 ,'') の設定をし, setstr(ddwin2 ,' ,2,,,') の最初に; をつけコメントアウトする。 ;setstr(ddwin2 ,' ,2,,,') (b)マクロの最初の ;;ddwin自由 を ;;ddwin国語 のようにグループがわかるように変更する。これはマクロ一覧のときのタイトルに なる。 (c)ファイル名を ddwin国語.tmc のように付けて保存する。 というように変更すれば辞書グループで検索できます。