2004/02/19
選択範囲に含まれる英単語の先頭を大文字にそれ以降を小文字に変換します。
//Capitalizeマクロ var nFind=eeFindNext | eeFindReplaceCase | eeFindReplaceOnlyWord | eeFindReplaceRegExp; var wordFind; var selMode; var bX,bY,nX,nY,lX,lY; with(document.selection){ selMode= mode & eeModeMask //選択されていないときまたは箱型選択の場合は全選択します。 if( selMode == eeModeNone || selMode == eeModeBox) SelectAll(); bX=GetBottomPointX(eePosView); bY=GetBottomPointY(eePosView); SetActivePoint(eePosView,GetTopPointX(eePosView),GetTopPointY(eePosView)); while(Find("[a-zA-Z]+",nFind)){ nX=GetBottomPointX(eePosView); nY=GetBottomPointY(eePosView); if(nY > bY || (nY==bY && nX >bX)) break; wordFind=Text; Text= wordFind.substr(0,1).toUpperCase() + wordFind.substr(1).toLowerCase() lX=GetActivePointX(eePosView); lY=GetActivePointY(eePosView); } document.HighlightFind = false; SetActivePoint(eePosView,lX,lY); }
Tips: 14行目を以下のようにすれば、英語以外の文字でも使える。
while(Find("[[:alpha:]]+",nFind)){