

お世話になっております。  
この画像の最後の行まで再変換を繰り返すという方法です。  
記述は一回で、あとは最後の行まで繰り返しと言う記述だと思います。  
できれば、もとのひらがなは、●■マークで囲みをいれて変換後も前に残るようにしたいです

変換後は、  
●おきなわ■沖縄  
●かごしま■鹿児島

よろしくお願いいたします。  
[![画像の説明をここに入力](https://i.stack.imgur.com/qqOtw.png)](https://i.stack.imgur.com/qqOtw.png)


CC BY-SA 4.0
2021-03-29T04:45:20.000
74959
2021-04-01T22:54:20.777
43999
question
emeditor
EmEditorでのループの記述について


**2021/4/2 更新** \- **EmEditor v20.6.905** 以上では、`SendKeys`
メソッドが改善されました。次のマクロを一度だけ実行してください。

**Reconvert.jsee**

[code]

    document.selection.Replace("^.+?$","●\\0■\\0",eeFindReplaceCase | eeReplaceAll | eeFindReplaceRegExp,0);
    document.selection.StartOfDocument(false);
    while( document.selection.Find("(?<=■).+?$",eeFindNext | eeFindReplaceCase | eeFindReplaceRegExp,0) ) {
        editor.ExecuteCommandByID(4199);  // 再変換
        shell.SendKeys( "~" );
    }
    
[/code]

**EmEditor v20.6.904以前の場合**

~~残念ながら、`SendKeys` メソッドは、マクロの途中で、現在実行中の EmEditor
ウィンドウ自身あてには使用することができません。使用しようとすると、最後にまとめて実行されてしまいます。~~

そこで、妥協案として、次の2つのマクロを使用されてはいかがでしょうか? 最初のマクロ `Reconvert1.jsee` では、まず `おきなわ` を
`●おきなわ■おきなわ` というように、各行を `●` `■` で囲みをいれてコピーします。

2つめのマクロ `Reconvert2.jsee` では、カーソル位置の次の `■`
の後の文字列を再変換して最初の候補で確定します。このマクロを行数分だけ繰り返して実行してください。

**Reconvert1.jsee**

[code]

    document.selection.Replace("^.+?$","●\\0■\\0",eeFindReplaceCase | eeReplaceAll | eeFindReplaceRegExp,0);
    document.selection.StartOfDocument(false);
    
[/code]

**Reconvert2.jsee**

[code]

    document.selection.Find("(?<=■).+?$",eeFindNext | eeFindReplaceCase | eeFindReplaceRegExp,0);
    editor.ExecuteCommandByID(4199);  // 再変換
    shell.SendKeys( "~" );
    
[/code]

**Recovert1.jsee 実行後のサンプル**

[code]

    ●おきなわ■おきなわ
    ●かごしま■かごしま
    ●みやざき■みやざき
    ●くまもと■くまもと
    ●ふくおか■ふくおか
    ●おおいた■おおいた
    ●さが■さが
    
[/code]

**Recovert2.jsee を7回実行後のサンプル**

[code]

    ●おきなわ■沖縄
    ●かごしま■鹿児島
    ●みやざき■宮崎
    ●くまもと■熊本
    ●ふくおか■福岡
    ●おおいた■大分
    ●さが■差が
    
[/code]


CC BY-SA 4.0
2021-03-29T17:23:31.057
74973
2021-04-01T22:54:20.777
2021-04-01T22:54:20.777
40017
40017
74959
answer