-- つづき --
// 置き換え処理
repeat
S_SearchNext( '\b[a-zA-Z]+(?=\b)', 22 ) // 半角英単語を検索
if( S_IsTextSelected = 0 ) then break; // 単語が無ければ終了
// 選択範囲ありの場合、範囲内の単語のみ置き換え対象とする
if( selectMode <> 0 ) then
begin
// 単語が選択範囲の終了位置をはみ出しているなら置き換え終了
if(( areaLineTo < S_GetSelectLineTo ) or (( areaLineTo = S_GetSelectLineTo ) and ( areaColmTo < S_GetSelectColmTo ))) then
begin
// 選択範囲の次行に移動する
S_Jump( areaLineTo, 0 );
S_Down();
break;
end;
if( selectMode = 2 ) then
begin
// 単語が選択範囲をはみ出している場合は置き換えない
if( areaColmFrom > S_GetSelectColmFrom ) then continue;
if( areaColmTo < S_GetSelectColmTo ) then continue;
end;
end;
S_CancelMode();
S_SearchNext( '\b[a-zA-Z]', 22 ); // 半角英単語の先頭を検索
S_ToUpper(); // 大文字に変換
S_SearchNext( '(?<=[a-zA-Z])[a-zA-Z]*(?=\b)', 22 ); // 2文字目以降を検索
S_ToLower(); // 小文字に変換
// 選択範囲なしの時は1回で終了する
if( selectMode = 0 ) then
begin
// 選択の見映えを戻すために半角英単語を選択し直した後
// 右に移動して選択状態をキャンセルする
S_SearchPrev( '\b[a-zA-Z]+(?=\b)', 22 );
S_Right();
break;
end;
until False;
end;