Power Automateでリストの改行が反映されない?Teamsで改行して表示する方法

Power Automate for desktop(PAD)で取得したリスト型のデータをPower Automateへ渡し、Teamsに投稿したところ、リスト内の改行が反映されず、1行につながって表示されてしまうことがあります。
例えば、Power Automate for desktopで複数のデータを取得し、リスト型の変数に格納したとします。
元となるリスト型の変数

このリスト型の変数をPower Automateへ渡し、Teamsのメッセージとして投稿すると、リスト内の各項目が改行されず、次のように表示されてしまうことがあります。

本来は、次のようにリストの項目ごとに改行して表示したいところです。

この記事では、Power Automateの式を使って、リスト内の改行をTeams上でも反映させる方法を紹介します。
リスト型の変数をそのままTeamsに投稿してみる
先ほどのリスト型の変数を、Power AutomateからTeamsへそのまま渡してみます。
Power Automateでは、Teamsのメッセージを投稿するアクションを使用し、メッセージ欄にリスト型の変数を設定します。

この状態でフローを実行すると、Teamsには次のように表示されます。

元のリストでは項目ごとに分かれていたにもかかわらず、Teamsでは各項目が改行されず、1行につながって表示されています。
このままでは複数のデータを一覧で確認しにくいため、リストの項目ごとに改行して表示できるようにします。
リストを改行してTeamsに投稿する方法
ここからは、Power Automate for desktopから引き継いだリスト型の変数を、Teams上で改行して表示する方法を紹介します。
今回は、Teamsの「チャットまたはチャネルでメッセージを投稿する」アクションを使用します。
Power Automateで、「チャットまたはチャネルでメッセージを投稿する」アクションを追加します。
今回は、以下のように設定します。
- 投稿者:フローボット
- 投稿先:フローボットとチャットをする
- Recipient:投稿先となる相手のメールアドレス
- メッセージ:ここにリスト型の変数を設定

メッセージ欄には、先ほどPower Automate for desktopから引き継いだリスト型の変数を設定します。
ただし、今回は変数をそのまま設定するのではなく、式を使ってリスト内の改行を変換します。
メッセージ欄をクリックすると、右側に「動的なコンテンツ」が表示されます。
「動的なコンテンツ」の上部にある「式」を選択し、以下の式を入力します。
ここで、リスト型の変数の部分には、Power Automate for desktopから引き継いだ実際の変数を指定します。
先ほどの式を貼り付けたら、式の中にある「この部分を自分の変数に変更」というプレースホルダー部分を削除します。すると、これより前のアクションで取得した変数の一覧が下に表示されるので、その中からPower Automate for Desktopから引き継いだリスト型の変数を選択します。
入力が完了したら、「OK」をクリックしてください。

今回のポイントは、リスト内に含まれる改行を%0D%0Aから<br>へ置き換えていることです。
式を入力しただけでは、まだ改行タグ(<br>)が文字列としてそのまま表示されてしまいます。これを実際の改行として反映させるには、メッセージ欄をHTML形式に切り替える必要があります。
メッセージ欄の右上にある「</>」のアイコンをクリックしてください。

クリックすると、メッセージ欄の表示が切り替わり、<p></p>のようなHTMLタグで囲まれた形式になります。この状態になっていれば設定は完了です。
設定が完了したら、フローを保存して実行してみます。
Teamsを確認すると、今度はリストの項目ごとにきちんと改行されて表示されているはずです。

これで、Power Automate for Desktopから引き継いだリスト型の変数を、Teams上でも見やすい形で投稿できるようになりました。
使用した式を解説
先ほど使用した式は、次のような構成になっています。
uriComponentToString(replace(uriComponent(変数), ‘%0D%0A’, ”))
一見複雑に見えますが、内側から順に処理を追っていくと理解しやすくなります。それぞれの関数がどのような役割を持っているか、詳しく見ていきましょう。
uriComponent:変数をURIエンコードする
uriComponent(変数)
まず、Power Automate for Desktopから引き継いだリスト型の変数をuriComponentでURIエンコードします。
リスト内の改行は、通常は目に見えない特殊な文字として扱われているため、そのままではreplaceで置換の対象にできません。そこで一度URIエンコードすることで、改行を%0D%0Aという文字列に変換し、置換できる状態にします。
replace:改行コードをHTMLタグに置換する
replace(uriComponent(変数), ‘%0D%0A’, ”)
次に、replace関数を使って、先ほどエンコードした%0D%0A(改行を表す文字列)を、HTMLの改行タグである<br>に置き換えます。
これにより、見えなかった改行が、Teams上で改行として認識できる<br>タグに変換されます。
uriComponentToString:文字列としてデコードする
uriComponentToString(replace(uriComponent(変数), ‘%0D%0A’, ”))
最後に、uriComponentToStringを使って、エンコードされていた文字列を元の読める形の文字列にデコードします。
この処理を挟むことで、URIエンコードされたままの状態(%xx形式の文字列)ではなく、<br>タグを含んだ通常の文字列としてTeamsに渡すことができます。
こうして3つの関数を組み合わせることで、「改行を検出できる形に変換 → HTMLタグに置き換え → 読める文字列に戻す」という流れが完成し、Teams上でもリストの項目ごとに改行して表示できるようになります。
この方法が活躍する場面
今回ご紹介した式は、Teamsへの投稿だけでなく、次のような場面でも応用できます。
- リスト型の変数を文字列として他のアクションに渡すとき
- 改行を含むデータをHTML形式で表示したいとき
- Teams以外のサービスに、改行を保ったままデータを渡したいとき
改行が反映されないとお困りの方へ
Power Automate for Desktopから引き継いだリスト型の変数をTeamsに投稿した際、改行が反映されず1行にまとまってしまうという方は、ぜひ今回ご紹介した式を試してみてください。
AI・Microsoft 365 活用を業務改善につなげたい企業向けに、研修・導入支援・活用サポートを行っています。
「どんなことを依頼できる?」「実際の活用事例は?」という方は、ぜひ無料資料をご覧ください。
\ 業務効率化・補助金情報をお届け/
\ 活用事例も掲載しています /
ご質問やご相談などがございましたら、ぜひお気軽にお問い合わせください。
\2営業日以内にご返信! /

