Power Automate Desktop(PAD)で自動化フローを組んでいると、必ずと言っていいほど直面する壁があります。それが「テキストの改行処理」です。
「変数に改行を入れたいだけなのに、なぜか1行になってしまう」「Excelから読み取ったデータの改行が消えた」「改行コードでテキストを分割したいのに上手くいかない」といった経験はありませんか?
実はこれ、PAD開発者の多くが通る道です。具体的な悩みとしては、以下のようなものが挙げられます。
- テキスト内に自由に改行(CRLFやLF)を挿入したい
- スクレイピングした不要な改行をキレイに削除したい
- ExcelやTeams連携時に改行が無視されるのを防ぎたい
PADには「改行を意味する専用の標準コード(定数)」が存在しません。そのため、ちょっとした工夫が必要になります。
この記事では、PADを骨の髄まで愛する私が、改行コードの挿入・置換・削除・分割といったあらゆる処理手法を、どこよりもマニアックかつ分かりやすく解説します。
【結論】PADの改行コードはどう扱うべきか?
PAD 改行 コードの結論は、「テキストに行を追加」アクションで改行変数を作るか、「テキストを置換する」アクションでエスケープシーケンス(\r\n など)を有効化することです。
理由は、PADには「改行だけを表す標準機能」がないものの、正規表現オプションや標準アクションの裏技的活用により、文字列として改行をシステムに認識させることが可能だからです。
PADでテキストに改行コードを挿入・追加する基本手法

PADでテキストに改行を入れる方法は、大きく分けて2つあります。状況に合わせて使い分けるのがプロの鉄則です。
方法1:「テキストに行を追加」アクションで作る
最も直感的で初心者におすすめなのが、「テキストに行を追加」アクションを使う方法です。
アクション一覧の「テキスト」グループから「テキストに行を追加」を選びます。ここで「追加するテキスト」をあえて「空白(何も入力しない)」にして実行します。
すると、対象の文字列の末尾に改行コード(Windows標準の \r\n)が付与されます。改行だけを含んだ変数(例えば %NewLine%)を作っておくと、後から様々なアクションで使い回せて非常に便利です。
方法2:「テキストを置換する」で正規表現を活用
文字列の途中にピンポイントで改行を差し込みたい場合は、「テキストを置換する」アクションを使います。
例えば、スペース区切りの文章を改行区切りに直すケースです。「検索するテキスト」に %' '% などを指定します。
重要なのはここからです。設定内の「検索と置換に正規表現を使う」と「エスケープシーケンスをアクティブ化」を必ずオン(有効)にしてください。
そして「置き換え先のテキスト」に \r\n または \n と入力します。これを有効にしないと、そのまま「\r\n」という文字として出力されてしまうので注意が必要です。
取得したテキストの改行コードを削除・置換・分割するテクニック

Webからスクレイピングしたデータや、Excelから読み込んだデータは、目に見えない改行コードの嵐です。これを自在に操れてこそ一人前です。
ExcelやWebの改行コード(LFとCRLF)の罠
「Excelのセル内改行をPADで読み取って、別のアプリに貼り付けたら改行が消えた!」というトラブルは頻発します。
原因は、Excelセル内の改行コードが \n(LF:ラインフィード)であるためです。Windowsの標準的な入力欄は \r\n(CRLF:キャリッジリターン+ラインフィード)を要求することが多いため、LF単体だと改行として認識されません。
この場合、「テキストを置換する」アクションで、\n を \r\n に変換してから貼り付けることで解決します。
改行を完全に削除・トリミングする
文章の中から改行をすべて消し去り、1行の文字列にしたい場合はどうでしょうか。
単純に \r\n を空白に置換しようとしてもうまくいかないことがあります。確実な方法は以下の通りです。
- 「テキストに行を追加」で改行のみの変数(%NewLine%)を作る
- 「テキストの分割」アクションで、%NewLine% を区切り文字としてテキストを分割する
- 「テキストの結合」で、リスト化されたテキストを再度結合する
少し回りくどいですが、この手順を踏むことでPAD上で確実に改行を排除できます。
長文を改行コードで分割(Split)する
テキストを改行ごとに分けてリスト化したい場合は、「テキストの分割」アクションの出番です。
「標準の区切り記号」の項目で「新しい行」を選択するだけで、自動的に改行を認識してリスト型の変数に分割してくれます。非常にシンプルで強力な機能です。
Power Automate(クラウド版)での改行トラブルと解決策
PAD(デスクトップ版)ではなく、クラウド版のPower AutomateでTeamsやメール送信を行う際にも、改行のトラブルは付き物です。
「Teamsにメッセージを投稿する」アクションやメール送信で改行が反映されない場合、大抵はHTML形式として処理されているのが原因です。
この場合は、変数の文字列内に直接 <br> や <br/> というHTMLの改行タグを埋め込むことで、綺麗に改行させることができます。また、数式(式)を使う場面では、uriComponentToString('%0A') などを活用して強制的にLFを生成する上級テクニックもあります。
PAD改行コードに関するよくある質問(Q&A)
Q. 改行コードの「<br/>」とは何ですか?
A. <br/> はHTMLにおける改行タグです。Webブラウザ上でテキストを表示する際に、ここで改行しろという指示になります。Webスクレイピングをした際、内部的にこれが \n や \r\n として取得されるブラウザの仕様があります。
Q. そもそも改行コードの種類(CR, LF, CRLF)って何?
A. OSや環境による改行の表現ルールです。Windowsは「CRLF(キャリッジリターン+ラインフィード)」、Mac(最近のもの)やLinux系、Excelのセル内改行は「LF」を主に使用します。PADではデータの出所に合わせてこれらを意識する必要があります。
Q. TeraTermで改行コードを設定するには?
A. TeraTerm(ターミナルエミュレータ)側で改行がずれる場合、設定の「端末(Terminal)」メニューから、受信(Receive)と送信(Transmit)それぞれの改行コード(CR, LF, CR+LF)をサーバー環境に合わせて変更する必要があります。
まとめ:改行コードを制してPAD開発をスムーズに!
PADにおける改行コードの扱いは、最初は戸惑うかもしれません。しかし、仕組みさえ理解すれば決して難しくありません。
重要なのは、エスケープシーケンスを有効にした置換と、改行変数の作成です。データの出所(Excelなのか、Webなのか、システムなのか)によって改行コードがLFとCRLFのどちらかを見極めることで、エラーを未然に防ぐことができます。
この記事のテクニックをマスターすれば、あなたのPADフローはより堅牢で実用的なものになるはずです。ぜひ実際のフロー作成で試してみてくださいね!