OfficeScripts×PowerAutomateで名言ボットをつくってみた
こんにちは。aliceです。
OfficeScriptsとPowerAutomateで名言ボットを作りました。
きっかけはこちら
Microsoft 365 Virtual Marathon2021でのきぬあささんのセッション。OfficeScriptsのデモをされていたのですが、職場のアカウントを確認してみたら使えることがわかり、やってみたいな~と思いました。
OfficeScriptsとは(Excel on the web)
Excel on the web の Office スクリプトを使用すると、日常のタスクを自動化できます。 Excel で行う操作を操作レコーダーで記録すると、スクリプトが作成されます。 さらに、コード エディターでスクリプトの作成や編集をすることもできます。 スクリプトは組織全体で共有できるため、同僚もワークフローを自動化できます。
本当は別のことをやりたかったのですが少し難しかったので名言ボットにチャレンジ。
元はこちら
タカハシさんのブログを参考に作りました。
というかGASをちょこっと直してOfficeScriptsにすればいいじゃん!と思ったのですが、全然できず…。GASを結構忘れているのもあるのですが、エラー・エラー・エラーのエラー祭りで心が折れながらなんとかできました。
名言ボットというより愛の不時着名シーンボットです。
(とりあえず動いた!というだけのコード)
function main(workbook: ExcelScript.Workbook) :string{
let sheet = workbook.getActiveWorksheet();
let range = sheet.getUsedRange();
let rangeValues = range.getValues();
let word = "";
let lastRow = range.getRowCount();
for (let i = 1; i <= lastRow; i++) {
if (rangeValues[i][3] === "") {
word = `${rangeValues[i][1]}`;
sheet.getCell(i,3).setValue("True");
if (i >= lastRow-1) {
let address = "D2:D" + lastRow;
sheet.getRange(address).clear(ExcelScript.ClearApplyTo.contents);
}
break;
}
}
return word;
}
これをPowerAutomateのフローに入れます。
PowerAutomateのフロー
① スケジュールを設定(1日)
② 時間が来たらスプリクトを実行(上のスクリプトを実行)
③ Teamsにボットを投稿
Teamsにボットが投稿されます。
投稿されるとExcelのcheck列に「TRUE」が入り、翌日に次の名言が送信されます。
テスト実行
ここは泣けるシーンですね。また見たくなってきた。
ここにいくまで躓きまくったので、備忘録的に心が折れながら作った話を書いていけたらいいなと思っています。