こんにちは。SJC共同開発推進室の坂根です。
先日「Excelのタスク表をMicrosoft To Doに一括登録したい…」と思うことがあり、Power Automate を使ってToDoを登録してみました!
今回は初級編として、ExcelにあるテーブルをMicrosoft To Doに一括登録する手順を紹介します。
Power Automate とは
そもそもPower Automateって何ぞや?という方も多いでしょう。
つい最近まで私も存在すら知りませんでした…。
Power Automateは、Microsoft社が提供するクラウドベースのビジネスプロセス自動化ツールです。
様々なアプリケーションやサービスと連携し、日々の業務を効率化することができます。
Windows 10以降に標準搭載されている「Power Automate Desktop」はWindows向けのRPAツールですが、今回はWebブラウザから使える「クラウドフロー」を用いた連携を紹介します。
このPower Automateを活用すれば、プログラミングの知識がなくても、以下のようなことを実現可能です。
・ワークフローの自動化
・データの自動転記
・通知の自動送信
・スケジュール実行
※全般的な機能や使用方法については、公式の製品ドキュメントをご覧ください。
ライセンスについて
Power Automateには無償版と有償版があり、様々なライセンス形態が存在します。
今回は、Microsoft 365 Apps for businessに付帯するライセンスを使用し、同じMicrosoft 365アカウントで利用できるOneDriveに保存されたExcelファイルとTo Doアプリを連携させてみました。
※ライセンスに関する詳細は、Microsoft Learnドキュメントで解説されています。
準備
使用するタスク表
今回はこのようなタスク表を使ってみます。
Power Automate で表を抽出するには、テーブル化しておく必要があります。
表の範囲を選択し、メニューの[挿入] → [テーブル]でテーブル作成可能です。
※今回の例では簡単な表を自作していますが、実際はBacklogなどのタスク管理ツールからCSVなどで生成しています。
登録するToDoリスト
一括登録用のToDoリストを先に作成しておきます。
フローのイメージ
今回の完成フローは以下のようなイメージです。
処理としては大きく以下の3つに分けれられそうですね。
①Excelファイルのタスク表から全行を抽出する。
②ToDoに登録する。
③①で抽出した行の数、②を実行する。
実際に試してみる
⑴ Power Automateにサインインしたら、[作成] → [インスタント クラウド フロー] を選択します。
今回は[インスタント クラウド フロー]を選んでフローを作成してみました。
[インスタント クラウド フロー]はユーザーが手動でトリガーするフローです。
今回は手動実行で充分だったのでこちらを選択しています。
他にもファイル追加やメール受信をトリガーに自動実行される[自動化したクラウド フロー] や 、
決まった時間にフローを実行する[スケジュール済みクラウド フロー]などもあります。
⑵ フロー名を入力し、[フローを手動でトリガーする] → [作成]と選択していきます。
すると、このようなフロー作成画面が表示されました。
⑶ [⊕] → [Excel Online] → [表内に存在する行を一覧表示] と選択します。
[表内に表示する行を一覧表示] のアクションでは、Excelファイル内のテーブルから全行抽出することができます。
⑷ タスク表の保存場所と使用するテーブルを選択します。
[場所] [ドキュメント ライブラリ] [ファイル] には使用するExcelファイルの保存場所を、
[テーブル] には使用する表(テーブルになっているもの)を選択してください。
・[場所]:OneDrive for Business
・[ドキュメント ライブラリ]:ドキュメント
・[ファイル]:タスク表.xlsx
・[テーブル]:テーブル1
⑸ [⊕] → [それぞれに適用する] を選択し、[前のステップから出力を選択します]欄に④での抽出結果を選択します。
[それぞれに適用する] は、複数の要素すべてに対して同じアクションを実行するための設定です。
[前のステップから出力を選択します]の入力フィールドをクリックして、さらに右端の稲妻マークをクリックします。
すると、④で抽出した結果を選択できるようになっているはずですので、[body/value]を選びます。
⑹ [⊕] → [Microsoft To-Do] → [To Do を追加する] のアクションを選択し、抽出したいToDoリストを選択します。
ひとつ前に作成した[それぞれに適用する]の枠内にある[⊕]をクリックすると、ループしたいアクションを追加できます。
今回は[To Do を追加する]のアクションを追加して、ループさせます。
[To Do を追加する]のアクションは、Microsoft To-Doの特定のリストを指定してToDoを追加する設定です。
[To Do リスト] には今回登録したいタスクリストを選択してください。
・[To Do リスト]:タスクリスト
・[タイトル]:抽出したタスク表の「タイトル名」
・[期日]:抽出したタスク表の「期限」
💡注意:Excelの日付形式によってフローがエラーになる場合があります
Excelで「日付」や「時刻」として表示されているセルは、内部的には数値(シリアル値)として扱われています。
無理に覚える必要はありませんが、基準日は「1900年1月1日」で、これを「1」とし、1日ごとに1ずつ加算されていきます。時刻は1日(24時間)を「1」とする小数で表され、たとえば12時間は「0.5」となります。
例:「2025年7月25日 12時30分」 → シリアル値「45863.52083333333」
そのため、Power Automateで日付をそのまま使うと、エラーになることがあります。
「期限」など日付を使うフィールドで入力欄をクリック、続いて右端の[fx](関数)をクリックして、以下の関数を張り付けてください。
※関数は、シリアル値を文字列(yyyy-MM-ddTHH:mm:ss)に変換するものです。
サンプル関数
1 2 3 4 5 6 7 |
formatDateTime( addDays( '1899-12-30', int(items('それぞれに適用する')?['期限']) // ループ名と列名に合わせて変更してください。 ), 'yyyy-MM-ddTHH:mm:ss' ) |
⑺ 最後に[保存]をクリックしてフローを保存します。
今回作成したフローの全体像です。それでは保存して実行してみましょう!!!
⑻ いざ実行!!!
[▷](実行)ボタンを押して出来上がったフローを実行してみます。
・
・
・
しっかりとToDoが追加されました!!!
まとめ
今回はPower Automateを使用して、ExcelからToDoリストを作成してみました。
マウスクリックでサクサク作っていけるので、とても快適でした。
今回使用したExcel、Microsoft To-Do の他にもたくさんのツールと連携可能なため日常業務にもどんどん使っていきたいです!
次回は中級編ということで、条件分岐を使ってToDoの追加、更新を行ってみたいと思います。
エコモットでは一緒にモノづくりをしていく仲間を随時募集しています。弊社に少しでも興味がある方はぜひ下記の採用ページをご覧ください!