72634
```

    a■あああ■いい■ううう■え■おおおお……
    
```

というデータをマクロで

```

    aあああ
    aいい
    aううう
    aえ
    aおおおお……
    
```

に変換したいのですが、区切りの「■」の数は不定で、「a」や「あああ」などの長さも不定です。

下記のような形でいちおう得られるのですが、同じ命令を十分な数だけコピペしています。

```

    document.selection.Replace("^([^■]+)■([^■]+)(■.+)$","\\1\\2\\n\\1\\3", eeFindReplaceRegExp | eeReplaceAll )
    document.selection.Replace("^([^■]+)■([^■]+)(■.+)$","\\1\\2\\n\\1\\3", eeFindReplaceRegExp | eeReplaceAll )
    document.selection.Replace("^([^■]+)■([^■]+)(■.+)$","\\1\\2\\n\\1\\3", eeFindReplaceRegExp | eeReplaceAll )
    document.selection.Replace("^([^■]+)■([^■]+)(■.+)$","\\1\\2\\n\\1\\3", eeFindReplaceRegExp | eeReplaceAll )
    document.selection.Replace("^([^■]+)■([^■]+)(■.+)$","\\1\\2\\n\\1\\3", eeFindReplaceRegExp | eeReplaceAll )
    document.selection.Replace("^([^■]+)■([^■]+)$","\\1\\2", eeFindReplaceRegExp | eeReplaceAll )
    
```

このような繰り返しを避けるにはどのようにすればよいでしょうか。  
初心者のため、if文などをどのように書けばいいか分かりません。  
よろしくお願いいたします。
CC BY-SA 4.0
2020-12-13T09:29:33.680
72630
2020-12-13T16:30:09.167
2020-12-13T16:30:09.167
3060
43123
question
emeditor
マクロでヘッダーを割り振る方法
次のようにマクロを書いてください。

```

    document.selection.StartOfDocument(false);  // 文頭に移動
    document.selection.Find("([^■]+)(?=■)", eeFindNext | eeFindReplaceCase | eeFindReplaceRegExp, 0);
    str = document.selection.Text;  // 最初の文字列 "a" を取得して str に代入
    document.selection.Replace("■", "\\n" + str, eeFindReplaceCase | eeFindReplaceEscSeq | eeReplaceAll, 0);
    document.selection.StartOfDocument(false);  // 以下、最初の行を削除
    document.selection.SelectLine();
    document.selection.Delete(1);
    
```
CC BY-SA 4.0
2020-12-13T15:16:21.083
72634
2020-12-13T15:16:21.083
40017
72630
answer