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

【初心者向け】テキストを1文ずつ「。」で分割する方法。【PAD】

この記事でわかること

  • Power Automate for desktop(PAD)でテキストを句点(「。」)をもとに分割する方法がわかる。
目次

PADで句点「。」ごとに文章を分割したい。

Power Automate for desktop(PAD)1文ずつでテキストを分割
じょじお

前回の記事では改行をもとにテキストを分割しました。

ぽこがみさま

今回は「テキストを1文単位のチャンクに分割する。」方法について考えてみます。

Power Automate for desktop(PAD)1文ずつでテキストを分割
ぽこがみさま

今回のターゲットのテキストはこちらです(上図)。
改行が入ってないので1文ずつ分割したいです。

じょじお

というわけで今回は句点(「。」)ごとにテキストを分割します!

改行によるテキストの分割方法はこちら

▲前回の記事で、テキストを改行で分割しました。リスト変数に余計な空白要素が入ってしまった時の対処方法なども紹介しています。

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

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

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

じょじお

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

ぽこがみさま

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

フローの作成手順

失敗したフロー

じょじお

句点(「。」)で分割を考える場合、そのまま句点(「。」)で分割してもうまくいきません。

ぽこがみさま

まず解説の都合上、ダメな例をお見せします。

STEP
Power Automate for desktopを開き新規フローを作成します。
STEP
「変数の設定」アクションを追加します。
Power Automate for desktop(PAD)1文ずつでテキストを分割

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

パラメータ

:下記を入力しました。

 メロスは激怒した。必ず、かの邪智暴虐じゃちぼうぎゃくの王を除かなければならぬと決意した。メロスには政治がわからぬ。メロスは、村の牧人である。笛を吹き、羊と遊んで暮して来た。けれども邪悪に対しては、人一倍に敏感であった。きょう未明メロスは村を出発し、野を越え山越え、十里はなれた此このシラクスの市にやって来た。メロスには父も、母も無い。女房も無い。十六の、内気な妹と二人暮しだ。この妹は、村の或る律気な一牧人を、近々、花婿はなむことして迎える事になっていた。結婚式も間近かなのである。メロスは、それゆえ、花嫁の衣裳やら祝宴の御馳走やらを買いに、はるばる市にやって来たのだ。先ず、その品々を買い集め、それから都の大路をぶらぶら歩いた。メロスには竹馬の友があった。セリヌンティウスである。今は此のシラクスの市で、石工をしている。その友を、これから訪ねてみるつもりなのだ。久しく逢わなかったのだから、訪ねて行くのが楽しみである。歩いているうちにメロスは、まちの様子を怪しく思った。ひっそりしている。もう既に日も落ちて、まちの暗いのは当りまえだが、けれども、なんだか、夜のせいばかりでは無く、市全体が、やけに寂しい。のんきなメロスも、だんだん不安になって来た。路で逢った若い衆をつかまえて、何かあったのか、二年まえに此の市に来たときは、夜でも皆が歌をうたって、まちは賑やかであった筈はずだが、と質問した。若い衆は、首を振って答えなかった。しばらく歩いて老爺ろうやに逢い、こんどはもっと、語勢を強くして質問した。老爺は答えなかった。メロスは両手で老爺のからだをゆすぶって質問を重ねた。老爺は、あたりをはばかる低声で、わずか答えた。

(「走れメロス – 太宰治」より抜粋)

STEP
Power Automate for desktop(PAD)1文ずつでテキストを分割

▲「テキスト」グループの中の「テキストの分割」アクションを追加します。

パラメータ

  • 分割するテキスト:%NewVar%
  • 区切り記号の種類:カスタム
  • カスタム区切り記号:
じょじお

「カスタム区切り記号」に「。」を入力してみます。

STEP
フローを実行しました。

これでよさそうなのでフローを実行してみます。

STEP
フロー実行後「TextList」変数を確認してみましょう。
Power Automate for desktop(PAD)改行でテキストを分割

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

Power Automate for desktop(PAD)1文ずつでテキストを分割

▲きちんと分割できているように見えますが文末の句点「。」が消えてしまいました。

じょじお

このように区切り文字に指定した文字は消えちゃいます。

ぽこがみさま

確かにCSVファイルを分割するときもカンマ「,」は消えちゃうね。

じょじお

ということで、次のステップでは「。」をそのまま残すようにひと手間加えてみます。

成功したフロー

「。」が消えない対策

じょじお

「。」が消えないようにする対策は下記です。

先程のフローで区切り文字が消えてしまうことを学びました。ですのでまず消えても良い適当な文字を「。」のうしろに付け足します。「。☆★」のような感じです。そしてそのあとで「☆★」を区切り文字として分割します。これによって「☆★」は消えて「。」は残ります。

STEP
先程作成したフローを開きます。
STEP
変数の設定アクションの後ろに「テキストを置換する」アクションを追加します。
Power Automate for desktop(PAD)1文ずつでテキストを分割

▲「変数の設定」アクションと「テキストの分割」アクションの間に「テキストを置換する」アクションを挿入します。

Power Automate for desktop(PAD)1文ずつでテキストを分割

▲パラメータを入力します。

パラメータ

  • 解析するテキスト:%NewVar%
  • 検索するテキスト:
  • 置き換え先のテキスト:。☆★

「。」を検索して「。☆★」に置換しています。「☆★」の部分はお好きな文字でいいです。あとでこの文字列は消えてしまいます。そのため間違ってテキストの中の必要な文字列が消えてしまわないように文章に登場しなそうな記号の組み合わせにしました。

STEP
一度フローを実行します。
Power Automate for desktop(PAD)1文ずつでテキストを分割

▲一度フローを実行して「テキストを置換する」アクションの結果Replaced変数を見てみますと、上図のように句点「。」のうしろに「☆★」が付け足されたのがわかります。

あとは「☆★」で分割すればよさそうです。

STEP
「テキストの分割」アクションの設定を変更します。
Power Automate for desktop(PAD)1文ずつでテキストを分割

▲「テキストの分割」アクションのパラメータを変更します。

パラメータ

  • 分割するテキスト:%Replaced%
  • 区切り記号の種類:カスタム
  • 標準の区切り記号:☆★
  • 正規表現である:オフ

分割するテキストは%NewVar%ではなく、%Replaced%と入力します。

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

▲フローが完成しました。

STEP
フローを実行します。
Power Automate for desktop(PAD)1文ずつでテキストを分割

フローを実行してTextLIst変数の中身を見てます。「。」が消えずに残っています。成功のようです。

リストの最後に空白要素が挿入されてしまうことが多いです。前回の記事を参考にして削除すると良いかと思います。

STEP
おわり

Robinソースコード

SET NewVar TO $''' メロスは激怒した。必ず、かの邪智暴虐じゃちぼうぎゃくの王を除かなければならぬと決意した。メロスには政治がわからぬ。メロスは、村の牧人である。笛を吹き、羊と遊んで暮して来た。けれども邪悪に対しては、人一倍に敏感であった。きょう未明メロスは村を出発し、野を越え山越え、十里はなれた此このシラクスの市にやって来た。メロスには父も、母も無い。女房も無い。十六の、内気な妹と二人暮しだ。この妹は、村の或る律気な一牧人を、近々、花婿はなむことして迎える事になっていた。結婚式も間近かなのである。メロスは、それゆえ、花嫁の衣裳やら祝宴の御馳走やらを買いに、はるばる市にやって来たのだ。先ず、その品々を買い集め、それから都の大路をぶらぶら歩いた。メロスには竹馬の友があった。セリヌンティウスである。今は此のシラクスの市で、石工をしている。その友を、これから訪ねてみるつもりなのだ。久しく逢わなかったのだから、訪ねて行くのが楽しみである。歩いているうちにメロスは、まちの様子を怪しく思った。ひっそりしている。もう既に日も落ちて、まちの暗いのは当りまえだが、けれども、なんだか、夜のせいばかりでは無く、市全体が、やけに寂しい。のんきなメロスも、だんだん不安になって来た。路で逢った若い衆をつかまえて、何かあったのか、二年まえに此の市に来たときは、夜でも皆が歌をうたって、まちは賑やかであった筈はずだが、と質問した。若い衆は、首を振って答えなかった。しばらく歩いて老爺ろうやに逢い、こんどはもっと、語勢を強くして質問した。老爺は答えなかった。メロスは両手で老爺のからだをゆすぶって質問を重ねた。老爺は、あたりをはばかる低声で、わずか答えた。'''
Text.Replace Text: NewVar TextToFind: $'''。''' IsRegEx: False IgnoreCase: False ReplaceWith: $'''。☆★''' ActivateEscapeSequences: False Result=> Replaced
Text.SplitText.SplitWithDelimiter Text: Replaced CustomDelimiter: $'''☆★''' IsRegEx: False Result=> TextList

# [ControlRepository][PowerAutomateDesktop]

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

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

まとめ

じょじお

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

ぽこがみさま

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

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

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をコピーしました!
目次
閉じる