Power AutomatePower Platform

【Power Automate】文字列が正規表現パターンにマッチするかを判定する (Officeスクリプト)

今回の記事では、特定の文字列が正規表現パターンにマッチするかどうかを判定するPower Automateフローを実装していきます。
Power Automate単体では正規表現を扱うことが難しいため、Officeスクリプトを併用します。
(Power AutomateフローからOfficeスクリプトを呼び出す形になります)

スポンサーリンク

Officeスクリプトの準備・作成

今回は、SharePoint上にOfficeスクリプトを用意していきます。
(後から他のユーザーにフローを共有することを考慮しています)

まずはOfficeスクリプトを保存したいドキュメントライブラリに移動します。
私は「OfficeScripts」というドキュメントライブラリを用意しましたが、既存のドキュメントライブラリでも問題ありません。

SharePointライブラリの用意

用意したドキュメントライブラリ上に新しいExcelブックを作成します。

Excelブックの作成

Excelの画面に遷移するため、左上にてExcelファイルの名前を変更しておきます。
任意の名前で問題ありませんが、今回は「EditRegexMatchScript」としました。

Excelブック名の変更

続いて、「自動化」タブ > 「新しいスクリプト」 > 「コードエディターで作成」を選択します。
もしポップアップが表示されたら、「スクリプトを書く」を選択します。

Officeスクリプトの作成
スクリプトを書く

サンプルコードが表示されている場合はすべて削除し、以下のコードをコピペして上書きします。
このコードでは、文字列と正規表現パターンを受け取って、マッチしているかどうかを返す処理を実装しています。

function main(
    workbook: ExcelScript.Workbook,
    targetText: string,
    pattern: string,
    flags?: string
): { isMatch: boolean; error?: string } {
    try {
        const regex = new RegExp(pattern, flags ?? "");
        return { isMatch: regex.test(targetText) };
    } catch (error) {
        return { isMatch: false, error: String(error) };
    }
}
スクリプトの貼り付け

分かりやすいように、スクリプト名を変更しておきます。
「名前の変更」を選択し、スクリプト名を「RegexMatch」などと入力します。

スクリプト名の変更

ここまででコードが完成したため、「戻る(←)」ボタンを押してスクリプト一覧画面に移動します。

すべてのスクリプト一覧に戻る

スクリプト一覧画面に戻ったら、RegexMatch右側の「…」ボタンを押して、「コピーを保存」を選択します。

スクリプトのコピーを保存

コピー場所を選択するポップアップが表示されるため、Excelファイルを作成した場所と同じ場所に保存します。

スクリプトの保存先を選択

Excel画面に戻ったら、再度「戻る(←)」ボタンを押してスクリプト一覧画面に遷移します。

すべてのスクリプト一覧に戻る

「SharePointに保存されているOfficeスクリプト(ユーザーアイコンあり)」と「Excel内に保存されているOfficeスクリプト(ユーザーアイコンなし)」が表示されますが、後者は削除しておくことをお勧めします(今後どちらを変更すればいいか紛らわしいため)。

スクリプトの削除

SharePointのドキュメントライブラリに戻ると、ExcelファイルとともにOfficeスクリプトファイル(RegexMatch.osts)ファイルが保存されていることが確認できます。

ドキュメントライブラリの確認

ここまででOfficeスクリプトの準備・作成は完了です。

Power Automateフローの作成

ここからは、先ほどのOfficeスクリプトを呼び出すためのPower Automateフローを作成していきます。

正規表現を利用したいフローに移動し、Excel Online (Business) コネクタの「SharePoint ライブラリからスクリプトを実行する」アクションを追加します。

スクリプト実行アクションの選択

プロパティを設定していきます。
ワークブックの設定部分(上部赤枠)は、最初に作成したExcelファイルの場所を指定しておきます。
スクリプトの設定部分(下部赤枠)は、作成したOfficeスクリプトの場所を指定します。

スクリプト実行アクションのファイル設定

ワークブックとスクリプトの場所を設定すると、追加で「targetText」「pattern」「flags」のプロパティが表示されるため、それぞれ希望の値を入力します。

  • targetText (必須) : チェックしたいテキストを入力します
  • pattern (必須) : チェックに利用する正規表現を入力します
  • flags (任意) : 基本的には利用せず、正規表現のフラグを利用したい場合に入力します。
    大文字と小文字を区別しない「iフラグ」などがありますが、詳しくは「正規表現 フラグ」などと検索してご確認ください。
スクリプト実行アクションの引数設定

ここでテストを実行してみます。
正規表現にマッチしている場合はtrue、マッチしていない場合はfalseが返ってくることが分かります。

正規表現テスト一致
正規表現テスト不一致

必要に応じて、条件アクション等を下記のように設定してお使いください。

条件アクションの追加

まとめ

今回は、特定の文字列が正規表現パターンにマッチするかどうかを判定するPower Automateフローを実装しました。

OfficeスクリプトをPower Automateフローから呼び出すことで、Power Automateでは手が届かない処理も実現することができます。様々な処理に応用してお使いください。

スポンサーリンク
Hiromaru

普段からPower Platform・SharePointの技術を広めています!
デザインに力を入れて、見やすい・分かりやすい記事を投稿していきます

Hiromaruをフォローする
シェアする
Hiromaruをフォローする
タイトルとURLをコピーしました