今回の記事では、特定の文字列が正規表現パターンにマッチするかどうかを判定するPower Automateフローを実装していきます。
Power Automate単体では正規表現を扱うことが難しいため、Officeスクリプトを併用します。
(Power AutomateフローからOfficeスクリプトを呼び出す形になります)
Officeスクリプトの準備・作成
今回は、SharePoint上にOfficeスクリプトを用意していきます。
(後から他のユーザーにフローを共有することを考慮しています)
まずはOfficeスクリプトを保存したいドキュメントライブラリに移動します。
私は「OfficeScripts」というドキュメントライブラリを用意しましたが、既存のドキュメントライブラリでも問題ありません。

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

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

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


サンプルコードが表示されている場合はすべて削除し、以下のコードをコピペして上書きします。
このコードでは、文字列と正規表現パターンを受け取って、マッチしているかどうかを返す処理を実装しています。
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では手が届かない処理も実現することができます。様々な処理に応用してお使いください。



