チーム内の困ったをデジタルで解決したい!
困った探しをやってみた。すぐ解決できそうな困ったなんだろう・・・
「残業報告、紙でするの面倒くさい」
「ぐるぐる回覧しているうちに止めたり失くす人がいるし」
「紙、地味にもったいなくない?」
そんな声が聞こえてきた。
残業報告、確かに面倒なんだよね。なんですぐ書かなかったり失くすのかな?
そんな声をきっかけに、チーム内の“困った”をデジタルで解決できないか考えてみた。 残業報告の紙運用Power Automateで自動化できるかな?
身近な困った解決!なんで?原因解明
残業報告は、前日の自分の残業結果を報告し、上長に承認をもらうという社内のルール。
この実績が曲者。勤怠システムをいちいち開いて確認しないとならない。
勤務実績を最初に配信してそれを見ながら入力したらラクチンなんじゃないかな?
入力内容が面倒。毎日決まったことを毎日手書き(イマドキテガキ('Д'))
手書きをFormsのアンケートにしたらラクチンなんじゃないかな?
みんなの残業状況を勤怠システム開いて確認。上長も大変だよなー
配信した勤務実績見ながらメンバーの残業チェックしたらラクチンなんじゃないかな?
Teamsに投稿して共有ファイルにすれば紙をぐるぐるしなくてもデータ承認できそうだ。
これらの作業セキュリティ厳しい弊社でも使えそうなMicrosoftのアプリPower Automateで自動化したい!
なんか見えてきた。身近な困った解決方法。
みんなの残業報告が報告書になるまで
1.勤怠システムから実績データを取得してチームズに投稿
2.Formsでアンケートを作成して勤務実績データのリンクとFormsのリンクをメール配信
3.回答結果を使って報告書作成
4.報告書をチームズに投稿して上長に承認依頼メール配信
5.上長が報告書内容を勤務実績データと確認して電子承認
この一連の流れをPower Automateで作成することにする。
すごいぞ!Power Automate だがしかし・・・
誰でも気軽に始められるRPA。それがPower Automateだ。
勤怠システムから実績データを取得して加工
なんと手動だ。ここはマクロの力を借りる。弊社の勤務実績が月単位でしか取得できず、なんとも加工しにくいデータ。とりあえず不要な列を削除して、縦線を引くという簡単マクロを作成。出来上がったデータをさらに手動で加工。手動とはいえマクロのおかげで実働5分くらいで実績データ作成。
こんなデータが、すっきりした実績一覧になる。(手動だが)
出来上がったデータをTeamsに投稿する。
フォームズと残業実績のリンクの入ったメールを配信
ここでPAD(Power Automate Desktop)登場。自動でメール配信を実施。メールを受け取った人が残業実績データを見ながらアンケートに回答。
アンケート結果のエクセルをダウンロードして報告書作成
PADでしたかったのに、リンクのパスが長すぎ問題発生しどうしてもエラーになってしまう。すぐあきらめる。ダウンロードしたデータをローカルに保存してPADを使用して報告書作成。フォーマットファイルに、ダウンロードファイルをコピペして報告書作成する。ファイル名に作成日追加するところが肝である。(上記の動画です)
こんなコードです
Excel.LaunchExcel.LaunchAndOpenUnderExistingProcess Path: $fx'C:\\Users\\610676\\Desktop\\残業実績\\残業報告.xlsx' Visible: True ReadOnly: False UseMachineLocale: False Instance=> ExcelInstance
Excel.ReadFromExcel.ReadAllCells Instance: $fx'=ExcelInstance' GetCellContentsMode: Excel.GetCellContentsMode.PlainText FirstLineIsHeader: False RangeValue=> ExcelData
Excel.LaunchExcel.LaunchAndOpenUnderExistingProcess Path: $fx'C:\\Users\\610676\\Desktop\\残業実績\\残業報告フォーマット.xlsx' Visible: True ReadOnly: False UseMachineLocale: False Instance=> ExcelInstance2
Excel.SetActiveWorksheet.ActivateWorksheetByName Instance: $fx'=ExcelInstance2' Name: $fx'報告データ'
Excel.WriteToExcel.WriteCell Instance: $fx'=ExcelInstance2' Value: $fx'=ExcelData' Column: $fx'A' Row: $fx'1'
DateTime.GetCurrentDateTime.Local DateTimeFormat: DateTime.DateTimeFormat.DateOnly CurrentDateTime=> CurrentDateTime
Text.ConvertDateTimeToText.FromCustomDateTime DateTime: $fx'=CurrentDateTime' CustomFormat: $fx'yyyyMMdd' Result=> FormattedDateTime
Excel.SaveExcel.SaveAs Instance: $fx'=ExcelInstance2' DocumentFormat: Excel.ExcelFormat.OpenXmlWorkbook DocumentPath: $fx'C:\\Users\\610676\\Desktop\\残業実績\\残業報告フォーマット${FormattedDateTime}.xlsx'
Excel.CloseExcel.Close Instance: $fx'=ExcelInstance'
Excel.CloseExcel.Close Instance: $fx'=ExcelInstance2'
本当は出来上がったファイルをTeamsに投稿したかったのだが、どうしてもできない。手動決定
複数いるマネージャーに承認依頼のメール配信
PADで配信。マネージャーが複数人いるので、Teamsに投稿した共有ファイルでのチェックと電子印での承認を依頼する。こちらも投稿済みの実績データで確認ができる。
初めて使ったPower Automate は可能性しか感じられなかった
しかし、会社のセキュリティのためかローカルにあるファイルはなんでもしてくれるのに、クラウドにあるものはパスが長すぎ問題と、使用制限ある文字使っている問題でエラーになってしまいうまく連携できなかった。私の知識不足も影響しているとは思うが。残念だ。
ざっくりこんな流れ
実際に使ってもらって使用感チェック!
今回の残業報告承認の紙からの脱却プランについて、なぜやりたいと思ったのか、どうやって(どんな方法で)進めていくのか説明してチームのみなさんに使ってもらい率直な感想をもらった。
隣の席のタロウさん
「残業してないのにアンケートに回答するのは面倒だな~」
確かに!全員の回答をもって報告書フォーマットを作ることばかり考えてしまい、残業していない人がいたときに、報告書に載せないための関数に苦慮していた。勤務実績を同時配信しているのだから、誰が残業しているかいないかは上長も判断つく。アンケートには回答しないというのがいいな。第三者の目って重要だな。
マネージャーのイチロウさん
「前日残業していて今日休んでいる人はいつアンケートに答えればいいの?」
確かに!アンケートは何回でも答えられるし、結果はエクセルへの積み上げだから運用でカバーできる。
「これって、手動部分はおかんが動かしているでしょ?おかん休みの時はどうするの?」
あ・・・・そこは出勤してからということでぇ
これも運用で解決か?共有フォルダに手動作業ファイルを置くようにして、ほかの担当者も使えるようにすることは可能かもしれない。面倒な作業はマクロやPADがだいたいはしてくれるから。
「あと、この報告書は紙で残すように人事に言われているんだよね」
まじすか・・・ 紙にしろというのは、可変性のあるエクセルはいかんということだろう。それならば、最終形式をPDFで保管したら問題ないのではないかと思う。今回は回覧承認までしか実装できなかったが、保存についてPDFで残す修正を加えたい。
同僚のハナコさん
Power Automate使いたい!これすごく可能性がある!勉強会開いてほしい
みなさんの意見から、これはぜひ使いたい!というのは残念ながらなかった。Power Automateへの関心は高かったのだが。
みんなが使いたくなるには検討の余地があるということだ。それと、部内では紙記入面倒の意見があったのだが、チームは私が思うほどに、こういうの書くの面倒くさいと思っていないようだ。
私っていったいどんな面倒くさがりなんだ!!
面倒くさがりだからこそ「ラクチン一番」の原動力が働く。今後も困りごとをデジタルの力で解決していきたい。(解決したかのような言いぐさだ)