1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[今日のトリビア]Microsoft Power Automateの文字列型変数の改行コードはvbCrLFではない

Posted at

Power Automateの正体はVBS

しかも難読化されている。

さらにノーコードでもローコードでもない

解説にSQLとか
https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/how-to/sql-queries-microsoft-access

デスクトップ用 Power Automate は 64 ビットのアプリケーションであり、64 ビットでインストールされたドライバーのみを SQL 接続を開く アクションで選択できます。

こんな解説とか。

確かにSQLやVBS、Powershellは低級ですらないゴミ。ええ確かにノーコード。詐欺だとは思いますが。
どおりで使う人がいないはずである。

しかし、簡単なものなら実現するだろう。
だがそんな甘い予感はあっさり打ち砕かれた。

改行コード

現象

  1. Webフォームに入力するというRPA
  2. 記入内容をメモ帳で作成
  3. Wordだとを特殊記号の^pで置換されたもの。置換の枠はエスケープを使い\<b\>
  4. できあがったものをPower Automateの変数の設定に張り付ける
  5. これが流し込まれると改行が2行以上になってしまう。

対策

String変数に改行を含むテキストを設定したら
テキストを置換を起動
次のように設定する。
文字を設定した変数%strbody%として、

  • 検索するテキスト\r\n(MPA上でもバックスラッシュで表示)
  • 検索と置換に正規表現を使う ON
  • 大文字と小文字を区別しない ON
  • 置き換え後のテキスト \r
  • エスケープシーケンスをアクティブ化 ON

このようにしないと、改行が設定した以上に増えてしまう。。
もちろん、Webフォームにもよるだろう。OutlookならHTMLの<b>が有効な場合もあるという。

面白いのは、当該webフォームではメモ帳にテキストを入力し、それをそのままコピーすると、そのままコピーされ、改行は増えない。つまり、改行コードはvbCrLfから自動的にvbCrに変更されていることになる。ただ、変更されないからと言ってMicrosoft Power Automateで稼働させた場合でも同じになるというわけではない。変数で設定できない場合は、タグ<b>を使った場合など、自分でReplaceで変換しなければならない。特にWebフォームの場合、文字コードの設定で変わるのだと思われる。

Power Automate 改行の指定方法 | 誰でもできる業務改善講座
さらに改行を一つだけ設定する方法はエラーになったことから、Power AutomateもvbCrLfではないのかもしれない。
Power Automate で 複数行テキストを操作する

これはMicrosoft Power Automateが様々なOSで稼働することを想定して基本的に改行を設定していないと思われる。
そして出力先の改行コードはvbCrLf vbCr vbLfがあることからReplaceが必要だということになる。

これはコードじゃないのか?

正規表現というのはコードではないのか。
そしてReplace、Replacedは関数。関数はコードではないのか。
改行は見えないのに、\r\n0x0D0Aと記す必要があるのはコードとは言わないのか。
もしかするとVBA Powershell VBScipt Regular Expressionは簡単すぎてコードではないということなのだろう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?