2025年7月16日水曜日

PowerAutomateでメールを作成する際に改行を入れる方法

PowerAutomateで、Formsでの回答文を使ってメールを作る場合、改行は無視されてしまう。

原理はおそらく、Formsの改行コードと Outlookの改行コードに互換性がないため。

単純に replace(文字列, Formsの改行コード, メーラーの改行コード) のように置き換えられれば簡単だが、Formsの改行コードが不明のため、何を置き換えればよいかわからないし、苦労して分かったとしても今後どうなるか心配なので、別の方法を使うのが賢明。方法としては次の機能を使う。

  • uriComponent は文字列を %0A%1B%?? のようなuriエンコードする関数だが、これを使うと改行コードは一貫して %0A として返してくれる。
  • 一方、PowerAutomateでのメール作成は、HTMLが標準となっているので <br> という文字列で改行してくれる。

これらを利用すると、以下のコードで、Formsの回答文章を、改行ありのメール文章に変換することができる。

uriComponentToString(
  replace(
    uriComponent(Formsの回答文章),
      '%0A',
      uriComponent('<br>')
    )
  )

細かい説明をすると、
  • uriComponentToString はuriエンコードされた文字列を普通の文字列に戻している。
  • replace は単純な置き換え関数
  • 最初の uriComponent は、文章を uriエンコードして、改行を %0A に変換してくれる。
  • 次の uriComponent は、<br> を uriエンコードする。
方法を説明しているサイトを参照しましたが、<br> をuriエンコードしていない場合があったので、バージョンによっては、uriComponentToString はuriエンコードされていない文字列はスルーしてくれるかもしれないです。私が使っているバージョンではエラーが発生します。

0 件のコメント:

コメントを投稿