\ 楽天BLACK FRIDAYセール! /

【初心者向け】テキストを改行ごとに分割する方法!【PAD】

この記事でわかること

  • Power Automate for desktop(PAD)でテキストを改行をもとに分割する方法がわかる。
  • PADのリスト変数で、無駄な空白要素をまとめて削除する方法がわかる。
目次

テキストを改行単位で分割したい。

Power Automate for desktop(PAD)改行でテキストを分割
じょじお

PADでスクレイピングなどで取ってきたテキストが、すごく長文なため、ちょうどよいチャンクに分割したいことがあります。

ぽこがみさま

今回は「テキストを改行ごとに分割する。」方法について考えてみます。

テキストを分割するには?

テキストの分割アクションを使います。

Power Automate for desktopでテキストを分割するには「テキストの分割」アクションを使います。

じょじお

PADでテキストを分割する時は「テキストの分割」アクションを使います。

ぽこがみさま

このアクションについては過去に一度紹介しているので下記の記事もよろしければご参考になさってください。

テキストを改行を基準に分割する方法(シンプルバージョン)

メロスは激怒した。
必ず、かの邪智暴虐じゃちぼうぎゃくの王を除かなければならぬと決意した。
メロスには政治がわからぬ。
メロスは、村の牧人である。笛を吹き、羊と遊んで暮して来た。
じょじお

目的のテキストが上のテキストのように1文ごとに改行が挿入されていれば簡単です。

ぽこがみさま

改行を基準に分割すればよさそうですね。

フロー作成手順

STEP
Power Automate for desktopを起動して新規フローを作成します。
STEP
「変数の設定」アクションを追加します。
Power Automate for desktop(PAD)改行でテキストを分割

▲今回ターゲットのテキストは変数に入れておきます。「変数」グループの中の「変数の設定」アクションを追加します。

パラメータ

:下記を入力しました。

メロスは激怒した。
必ず、かの邪智暴虐じゃちぼうぎゃくの王を除かなければならぬと決意した。
メロスには政治がわからぬ。
メロスは、村の牧人である。笛を吹き、羊と遊んで暮して来た。
(「走れメロス – 太宰治」より抜粋)

STEP
「テキストの分割」アクションを追加します。
Power Automate for desktop(PAD)改行でテキストを分割

▲「テキスト」グループの中の「テキストの分割」アクションを追加します。パラメータは下記のように入力しました。

パラメータ

  • 分割するテキスト:%NewVar%
  • 区切り記号の種類:標準
  • 標準の区切り記号:新しい行
  • 回数:1

回数は、区切り記号が何回連続で登場した時に区切るかの指定です。たとえば「2」と入力すると2連続で改行コードが挿入されている箇所のみが区切られます。今回のターゲットのテキストは1文ごとに1回テキストが

「改行」を基準にテキストを分割するには「標準の区切り記号」という項目に「新しい行」を選択します。

STEP
フローを実行してみます。

フローが完成したので実行してみましょう。

STEP
TextList変数を確認してみます。
Power Automate for desktop(PAD)改行でテキストを分割

▲フローを実行したら、フローデザイナーの右側の変数ペインの中の「TextList」変数をダブルクリックして開きます。

Power Automate for desktop(PAD)改行でテキストを分割

▲「TextList」変数の中身です。TextList変数はリスト型変数になっています。文章のかたまりを文単位に分割することができました。

STEP
おわり

テキストを改行を基準に分割する方法(改行が不規則な場合)

Power Automate for desktop(PAD)改行でテキストを分割
ぽこがみさま

先生、分割したTextList変数に無駄な空白の要素が入ってしまいました・・・。(上図)

じょじお

テキストの途中に不規則な数の空白行がある場合、先ほど紹介したフローでは、分割結果のリスト変数に無駄な空白要素が入ってしまいますね。

メロスは激怒した。


必ず、かの邪智暴虐じゃちぼうぎゃくの王を除かなければならぬと決意した。
メロスには政治がわからぬ。

メロスは、村の牧人である。笛を吹き、羊と遊んで暮して来た。
じょじお

こういう場合は「リストから項目を削除」で無駄な要素を削除すればいいかなと思います。↑の文章を例に対策を紹介します。

「リストの項目を削除する」アクションとは?

「リストの項目を削除する」アクションとは?
リストの要素の中から、指定した文字にマッチする要素を検索して削除します。

フローの作成手順

STEP
「変数の設定」アクションのテキストを差し替えます。
じょじお

今回は先程作成フローをそのまま編集する形で説明を進めます。

Power Automate for desktop(PAD)改行でテキストを分割

▲先ほど作成したフローを開き、変数の設定アクションの値を下記の文章に書き換えます。先ほどとは違い不規則な改行が入った文章です。

メロスは激怒した。


必ず、かの邪智暴虐じゃちぼうぎゃくの王を除かなければならぬと決意した。
メロスには政治がわからぬ。

メロスは、村の牧人である。笛を吹き、羊と遊んで暮して来た。
STEP
一度フローを実行してTextLIst変数を確認してみます。
Power Automate for desktop(PAD)改行でテキストを分割

▲この状態でフローを実行してTextLIst変数の中を確認すると、元テキストの空白行があった部分が余計な空白要素になっています。次のステップでこれを削除していきます。

STEP
テキストの分割アクションの後ろに「リストから項目を削除」アクションを追加します。
Power Automate for desktop(PAD)改行でテキストを分割

▲テキストの分割アクションのうしろに3つ目のアクションとして「リストから項目を削除」アクションを追加します。(2番目のアクションは先ほどの状態のまま手は加えません。)

Power Automate for desktop(PAD)改行でテキストを分割

▲「リストから項目を削除」アクションのパラメータを入力します。

パラメータ

  • 項目の削除基準:値
  • 値:%”%
  • 一致した項目をすべて削除:オン
  • 削除元リスト:%TextLIst%
じょじお

入力したパラメータの意味は、「リストの中に%”%と一致する要素があったら削除してね。」って意味です。

ぽこがみさま

%”%」は空の文字列、つまり空白でしたね。以前の記事(下記)で学習しました。

じょじお

このアクションは「値」のパラメータを空っぽのままにできないのでこうやって強引に空白を指定しています。

STEP

エラー対策

今回は「リストから項目を削除」アクションだけエラー処理を施しておきます。なぜかというと、デフォルトでは、もしリスト内に空白要素がない場所、「リストから削除する対象がないよー」というエラーが発生してフローが止まってしまうからです。削除する要素がなくても気にせずに次に進んでもらう設定をします。

Power Automate for desktop(PAD)改行でテキストを分割

▲設定画面左下の「エラー発生時」をクリックします。

Power Automate for desktop(PAD)改行でテキストを分割

▲「詳細」をクリックして隠れている部分を表示させてから「項目が見つかりません」のところの「フロー実行を続行する」をクリックします。例外処理モードは「次のアクションに移動」にします。設定したら完了ボタンで設定画面を閉じます。

今回行ったエラー処理は、もし「項目が見つかりません」というエラーが発生しても無視して後続の後続のアクションにすすんでね。という意味の設定です。
「項目が見つかりません」エラーというのは、リストの中に削除対象の要素が0個の時に発生するこのアクション特有のエラーです。エラーにも色々な種類があるのですが、今回はこのエラーに対してのみエラーを無視する設定にしました。エラーはPADが何かあったときに我々に教えてくれる重要なメッセージですのですべてのエラーを無視してしまうのは管理上望ましくないためです。

STEP
フローが完成しました。
Power Automate for desktop(PAD)改行でテキストを分割

▲フローが完成しました。「リストから項目を削除」アクションの左側にシールドマークがついています。これはエラー処理設定がされたアクションであることを表します。

STEP
フローを実行してみましょう。
Power Automate for desktop(PAD)改行でテキストを分割

▲フローを実行後、TextList変数を確認すると余分な空白要素が消えています。成功です。

じょじお

余計な空白行がテキストにもう一度差戻してエラー処理が効いているかも確認してみてくださいね。

STEP
おわり

Robinソースコード

SET NewVar TO $'''メロスは激怒した。


必ず、かの邪智暴虐じゃちぼうぎゃくの王を除かなければならぬと決意した。
メロスには政治がわからぬ。

メロスは、村の牧人である。笛を吹き、羊と遊んで暮して来た。'''
Text.SplitText.Split Text: NewVar StandardDelimiter: Text.StandardDelimiter.NewLine DelimiterTimes: 1 Result=> TextList
Variables.RemoveItemFromList.RemoveItemFromListByValue Item: $'''%''%''' ItemMatchAllOccurrences: True List: TextList NewList=> TextList
ON ERROR ItemNotFoundError

END

# [ControlRepository][PowerAutomateDesktop]

{
  "ControlRepositorySymbols": [],
  "ImageRepositorySymbol": {
    "Name": "imgrepo",
    "ImportMetadata": {},
    "Repository": "{\r\n  \"Folders\": [],\r\n  \"Images\": [],\r\n  \"Version\": 1\r\n}"
  }
}

▲今回作成したPADフローのソースコードです。ご自分のフローデザイナーにコピペするとフローを再現できるかと思います。

テキストを1文ずつ分割するには?

改行ではなく句点(「。」)を使って1文ずつ取り出したいケースもあるかと思います。そちらの場合は下記の記事で紹介していますので参考になさってください。

まとめ

じょじお

PADで「テキストの分割」アクションを使って、改行ごとにテキスト分割の方法について紹介しました。

ぽこがみさま

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

PADの使い方まとめ記事はこちら

Power Automate学習教材

Power AutomateをKindleで学びたい方はコチラ
¥2,200 (2022/12/06 08:56時点 | Amazon調べ)
\楽天スーパーセール開催中!/
楽天市場

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

\楽天スーパーセール開催中!/
楽天市場

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

¥2,750 (2022/12/06 08:56時点 | Amazon調べ)
\楽天スーパーセール開催中!/
楽天市場

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

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

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

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

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