365オフィス製品windowsExcelExcelに関する記事をあつめました。ScriptGoogleAppsScriptについての記事です。業務効率化アプリ・ガジェット定時に帰れるアプリ雑記ガチなシャツリライブシャツすごすぎワロタwwwwww【リライブシャツを買ってみたらガチだった。着るだけで「身体機能をサポートする」怪しいシャツがガチだった。365オフィス製品windowsExcelExcelに関する記事をあつめました。ScriptGoogleAppsScriptについての記事です。365オフィス製品windowsExcelExcelに関する記事をあつめました。ScriptGoogleAppsScriptについての記事です。Automateで正規表現を使ってパターン検索する。Automateで正規表現を使ってパターン検索する。前回の記事、前々回の記事では、決まったフォーマットの中にある文章から文字列を抽出しました。この記事では、メール本文から特定の文字列を抽出する方法について解説します。図のようなメールの中から、”操作者”と”日時”の値を取得したいという要件です。Automateで文章から文字列を抽出する。記事に説明不足な点がありましのでいくつか補足を追記しました。前回の記事ではメール本文から文字列を検索して抽出しましたね。前回の記事では切り抜く...これらは機械的に出力された文章を想定していたため、例えば商品名は「・商品名:〇〇〇〇」という風に”・商品名”という文言の右側に商品名があるということが担保されていました。今回は、手入力されたメールやTeamsの文章で、ある程度ルールは決まっているけど、ふんわりとしかルールがなくて検索をしづらいケースを想定して文字列抽出を行いたいと思います。Automateで正規表現を使って文字列抽出を行う方法がわかるTeamsやOutlookメール本文から文字列を柔軟に抽出する方法の概要がざっくりわかる。2021特定のタグが含まれているTwitterのメッセージを、Teamsのチャネルに転送して収集しているのですが、そのツイートにどのようなタグが含まれているのか、ハッシュタグをすべて取得してみたいと思います。サンプルとして、上の私のツイートをターゲットにします。今回は文字列抽出の解説をメインとしたいため、Twitterトリガーからツイートメッセージを取得するのではなく、「作成」アクションにあらかじめ張り付けた状態で文字列抽出を行います。上記のツイートから、下記のように含まれた4つのタグを全て配列形式で抽出することを今回のゴールとします。["#PowerAutomateDesktop","#PAD","#RPAChallenge","#RPAチャレンジ"]正規表現とは?今回の要件の場合、先にお伝えしたようにsubstring関数で実現するには難しいです。このため正規表現を使おうと思いました。正規表現とは、正規表現特有の記号を組み合わせて、検索する文字列のパターンを表現できる仕組みです。Twitterのハッシュタグであれば下記のような特徴があります。Twitterのハッシュタグの要件#か#(半角か全角のシャープ)から始まる単語スペースや句読点を含めることはできない。「!」「?」「‐」「&」などの記号は使用できない。記号は「_(アンダーバー)」のみ含めることができる。上記を正規表現を使って表現すると下記のようになります。[##][A-Za-zA-Za-z一-鿆0-90-9ぁ-ヶヲ-゚ー]+一見文字化けしてバグった文章に見えますが記号の羅列でハッシュタグを表現しています。正規表現の記号の意味をひとつひとつ解説をすると長くなってしまうのでここでは省略しますが、上記のようにパターン検索を行える仕組みが正規表現です。正規表現を0から習得するには?正規表現を0から学ぶにはUdemy動画講座がオススメです。Udemyの正規表現をテーマにした動画講座は3つ受講しましたが、その中でも下記の講座が一番わかりやすかったです。購入される場合は、Udemyは頻繁にセールを開催しますので講座をお気に入りに登録しておき、セール時に購入することをオススメします。Automateのアクションでは2021年11月25日現状、標準では、正規表現をつかって検索するアクションがありません。Scripts)を使ってプログラムコードファイルを作成して実現します。Officeスクリプトを最近研究するようになったので使い方等をまとめようと思います。Scriptを作成する。Automateフローを作成する。Onlineを開き新しいブックを作成します。Onlinehttps://www.office.com/launch/excel?auth=2STEPブラウザで新規ブックを開きます。▲自動化タブを開き、新しいスクリプトをクリックします。Excelをブラウザで開いていないと自動化タブは表示されませんので注意してください。デスクトップアプリケーション版のExcelでは表示されません。STEPOfficeスクリプトを記述します。▲コードエディタが開きますので、赤枠のコードペインのところに下記のソースコードを入力します。(デフォルトで入力されているコードはまるっと削除してから貼り付けてください。[];}STEPOfficeスクリプトを保存します。1スクリプトファイルに名前を付けます。2「スクリプトを保存」をクリックしてスクリプトを保存します。STEP保存ができたらExcelでの作業は終了です。Automateでフローを作成していきます。[];}ハッシュタグ以外にも汎用的に使えるように正規表現パターンとフラグを外部から受け取るようにしました。(pattern引数)検索する文字列と正規表現パターンとフラグの3つを受け取って、検索してマッチした結果を文字列配列で返却します。Null合体演算子と呼ばれるものです。??の左辺targetText.match(ptn)でnullが返ってきた場合つまりハッシュタグのマッチが無かった場合、??の右辺[](空の配列)を戻り値にしています。Automateフローを作成します。STEP新しい「インスタントクラウドフロー」を作成します。▲左側のメニューから「作成」をクリックして、「インスタントクラウドフロー」をクリックします。STEP「手動でフローをトリガーします。」をトリガーとして選択します。▲1フロー名を入力します。2「手動でフローをトリガーします。」をクリックして3作成をクリックします。STEP「作成」アクションを追加します。▲作成アクションを追加します。作成アクションは「データ操作」グループの中にあります。「データ操作」というキーワードで検索して探してください。作成アクションに下記のツイートメッセージをコピーしてきて張り付けます。#RPAチャレンジSTEP「スクリプトの実行」アクションを追加します。場所:Excelを保存した場所をリストから選択します。ドキュメントライブラリ:Excelを保存したライブラリをリストから選択します。(Sharepointサイト/OneDrive)ファイル:Excelのファイルをリストから選択します。スクリプト:STEP1で作成したスクリプトファイルを選択します。targetText:作成アクションの動的な値(出力)を入力します。pattern:正規表現のパターンを入力します。[##][A-Za-zA-Za-z一-鿆0-90-9ぁ-ヶヲ-゚ー]+flags:gと入力します。パラメータの下の3つの名前は、作成したスクリプトファイルの引数の名前と対応しています。flagsにgを渡すことによってマッチするすべての語句を取得しています。gを渡さないとマッチする最初の1個のみの取得となります。正規表現パターンとフラグについては下記などを参考にしてください。基本的な正規表現https://murashun.jp/article/programming/regular-expression.html正規表現のフラグhttps://ja.javascript.info/regexp-introductionSTEPフローが完成しました。フロー完成図STEPフローを実行してみます。▲フローを実行したら実行履歴のログを開き、「スクリプトの実行」アクションのカードをクリックします。▲「スクリプトの実行」アクションの実行ログを見てみると、「出力」セクションのresultに正規表現にマッチした文字列、つまりすべてのハッシュタグが確認できました。まとめじょじお以上で正規表現を使ってパターン検索を行う方法について解説しました。おかげ様で月間18万PV。ありがとうございます!多くの方がルーチンワークを時短できるように『ITに弱い方にも寄り添った解説』を心がけています。記事へのご質問やブログネタのご要望、何かあればお気軽に下記にどうぞ。VBAでPublisherを操作する!Excelアドインをショートカットと右クリックメニューから呼び出す。本を読み放題で読む方法。desktop関連書籍を全部読んだ管理人が、初心者の方の最初の一冊にオススメする本です。