デスクワークを超絶快適にするおすすめギアたち

Power Automate for desktopの「テキストの分割」アクション

【当サイトはプロモーションを含んでいます】

この記事でわかること

  • Power Automate for desktopの「テキストの分割」のアクションの使い方
  • スクリプト系アクション(Python・VBScriptなど)から受け取ったデータをリストに戻す方法
目次

テキストの分割

じょじお

テキストを分割するには「テキストの分割」アクションを使います。Excelのsplit関数と基本的な使い方は同じです。

ぽこがみさま

「テキストの分割」アクションは正規表現を使うことができますので、Excelのsplit関数より柔軟にテキスト分割できるかと思います。

基本的なテキストの分割をやってみる

STEP
ゴールを確認します。

下記のコロンで連結してひとつなぎになった文字列を、コロンで分割してみます。

山田:田中:佐藤:鈴木:小田:遠藤:加藤

STEP
「変数の設定」アクションを追加して、分割する文字列を入力します。
Power Automate for desktop テキストの分割アクション

▲変数の設定アクションを追加して下記の文字列を入力しました。

山田:田中:佐藤:鈴木:小田:遠藤:加藤

STEP
「テキストの分割」アクションを追加します。
Power Automate for desktop テキストの分割アクション
  • 分割するテキスト:%NewVar%
  • 区切り記号の種類:カスタムを選択します。
  • カスタム区切り記号::(コロン)
  • 正規表現である:オフ

このアクションで生成される変数:%TextList%

STEP
フローを実行します。

フローを実行します。「テキストの分割」アクションはデフォルトで%TextList%というリスト型変数に出力されます。%TextList%変数の中身を見てみます。

Power Automate for desktop テキストの分割アクション

▲%TextList%の中身を確認すると、ただの文字列変数をリスト変数に変換することができました。便利ですよね。

Robinソースコード

SET NewVar TO $'''山田:田中:佐藤:鈴木:小田:遠藤:加藤'''
Text.SplitText.SplitWithDelimiter Text: NewVar CustomDelimiter: $''':''' IsRegEx: False Result=> TextList

▲今回作成したPower Automate for desktopのフローです。フローデザイナーにコピペすればフローを再現できます。

正規表現を使ったテキストの分割

じょじお

次は正規表現を使った少しパターンでマッチングさせてテキスト分割してみます。

例:HTMLテキストからHTMLタグを取り除く

STEP
ゴールを確認します。
<html>
<body>
    <div class="main-content">
        <div id="first-section">
            <li>item1</li>
            <li>item2</li>
            <li>item3</li>

            <div id="sub-section">
                <li>item4</li>
                <li>item5</li>
                <li>item6</li>
            </div><!-- section -->

        </div><!-- section -->
    </div><!-- main-content -->
</body>
</html>

▲このサンプルHTMLからHTMLタグでテキストを分割してみたいと思います。

STEP
「変数の設定」アクションを追加します。
Power Automate for desktop テキストの分割アクション
STEP
「テキストの分割」アクションを追加します。
Power Automate for desktop テキストの分割アクション
  • 分割するテキスト:%NewVar%
  • 区切り記号の種類:カスタム
  • カスタム区切り記号:<.*?>
  • 正規表現である:オンにします。

このアクションで生成される変数:%TextList%

STEP
フローを実行して結果を確認します。
Power Automate for desktop テキストの分割アクション

▲フローを実行してみました。「テキストの分割」アクションの結果であるTextList変数の中身を確認してみますと、HTMLタグで分割されていることが確認できます。

冒頭でもお伝えしましたが、コンテンツを持たないdivタグなどの場合、結果のリスト変数の中身に空白の文字列がまじってしまいましたので別途削除の手順が必要になるかと思います。

リスト変数に空白が混ざったときの対処方法
Power Automate for desktop テキストの分割アクション

▲上のフローだと%TextList%変数の中に空白文字がまざってしまいました。原因としては元のテキストにタブやスペースが含まれていたからです。

これらを削除するには「テキストを置換する」アクションが便利です。削除じゃなくて置換?と思うかもしれませんが、イメージとしては「スペースやタブ」を「何もない空っぽの文字」で置換することによって結果的に削除します。「何もない空っぽの文字」のことをプログラミングでは空文字(からもじ)と言ったりします。

「テキストを置換する」アクションを「テキストを置換する」アクションの前に挿入します。

Power Automate for desktop テキストの分割アクション
  • 解析するテキスト:%NewVar%
  • 検索するテキスト:\s
  • 検索と置換に正規表現を使う:オン
  • 置き換え先のテキスト:%''%
  • 生成された変数:%NewVar%

Robinソースコード

SET NewVar TO $'''<html>
<body>
    <div class=\"main-content\">
        <div id=\"first-section\">
            <li>item1</li>
            <li>item2</li>
            <li>item3</li>

            <div id=\"sub-section\">
                <li>item4</li>
                <li>item5</li>
                <li>item6</li>
            </div><!-- section -->

        </div><!-- section -->
    </div><!-- main-content -->
</body>
</html>'''
Text.Replace Text: NewVar TextToFind: $'''\\s''' IsRegEx: True IgnoreCase: False ReplaceWith: $'''%''%''' ActivateEscapeSequences: False Result=> NewVar
Text.SplitText.SplitWithDelimiter Text: NewVar CustomDelimiter: $'''<.*?>''' IsRegEx: True Result=> TextList
Variables.RemoveItemFromList.RemoveItemFromListByValue Item: $'''%''%''' ItemMatchAllOccurrences: True List: TextList NewList=> TextList

▲フローデザイナーに貼り付けることでここで作成したフローを再現できます。

「テキストの分割」アクションの使いどころは?

スクリプト系アクションの戻り値を分割するのに使える。

▲Pythonなどのスクリプト系アクションとのデータの受け渡しはリストを直接やり取りができません。例えばPythonスクリプトからリスト変数をPower automateに返却する際には一旦ひとつの文字列にしてPower Automateに返却します。

この時にPower Automate側でPythonアクションの戻り値を、「テキストの分割」アクションを使ってカンマで分割すれば元のリストに戻すことができます。くわしくは上の記事で紹介していますのでよろしければご覧ください。

正規表現を学ぶには?

じょじお

正規表現を理解していると「テキストの分割」を含めたテキスト操作系のアクションでできることがグンと広がります。

正規表現を0から習得するには?

正規表現を0から学ぶにはUdemy動画講座がオススメです。Udemyの正規表現をテーマにした動画講座は3つ受講しましたが、その中でも下記の講座が一番わかりやすかったです。

正規表現入門 作業効率アップに役立つ38個の方法

購入される場合は、Udemyは頻繁にセールを開催しますので講座をお気に入りに登録しておき、セール時に購入することをオススメします。

関連記事

まとめ

じょじお

テキストの分割アクションについて紹介しました。

ぽこがみさま

このブログではRPA・ノーコードツール・VBA/GAS/Pythonを使った業務効率化などについて発信しています。
参考になりましたらブックマーク登録お願いします!

Power Automate学習教材

Power AutomateをKindleで学びたい方はコチラ

▲Kindleと紙媒体両方提供されています。デスクトップフロー、クラウドフロー両方の解説がある書籍です。解説の割合としてはデスクトップフロー7割・クラウドフロー3割程度の比率となっています。両者の概要をざっくり理解するのにオススメです。

Power Automate for Desktopの基本をしっかり学習するのにオススメです。この本の一番のメリットはデモWebシステム・デモ業務アプリを実際に使ってハンズオン形式で学習できる点です。本と同じシステム・アプリを使って学習できるので、本と自分の環境の違いによる「よく分からないエラー」で無駄に躓いて挫折してしまう可能性が低いです。この点でPower Automate for desktopの一冊目のテキストとしてオススメします。著者は日本屈指のRPAエンジニア集団である『ロボ研』さんです。

Power Automate クラウドフローの入門書です。初心者の方には図解も多く一番わかりやすいかと個人的に思っています。

Microsoft 365/ Power Automate / Power Platform / Google Apps Script…

Power Automateを動画で学びたい方はコチラ

▲Udemyで数少ないPower Automateクラウドフローを主題にした講座です。セール時は90%OFF(1200円~2000円弱)の価格になります頻繁にセールを実施しているので絶対にセール時に購入してくださいね。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。

お役に立てたらシェアお願いします!
  • URLをコピーしました!
  • URLをコピーしました!
目次