0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Power Automate】手作業のコピペにさよなら!Officeスクリプトで申請書から管理表へ自動転記🌸

0
Posted at

こんにちは、すんすんです🐥

申請書が届くたびにファイルを開き、必要な項目をコピーして、管理表の正しい列にペーストする……。1件なら数分でも、毎日何件も重なるとものすごい時間と労力を奪われますよね。しかも、人間がやるとどうしても転記ミスや行のズレが起きてしまうことも、、、

今回はそんな「コピペ作業」を完全消滅させるため、第3弾としてPower AutomateとOfficeスクリプトを組み合わせた「管理表への自動転記システム」に挑戦してみました!

前回の記事はこちら
👉 【Power Automate】通知システムとテンプレメール送信の自動化にチャレンジ!

🏆 最終形態(完成したフロー)

SharePointに申請書が投稿されたら、システムが中身を読み取り、管理表の空き行へ自動で書き込んでくれるフローです。

今回は、抽出用のスクリプト(刀その1)と、書き込み用のスクリプト(刀その2)の2段階構成にすることで、複雑な転記をスムーズに実現しました👏🏻

💭 今回実装した機能

✨申請書のデータを管理表の指定列へ自動マッピングするシステム✨

現場からSharePointの特定フォルダに申請書(Excel)がアップロードされると、システムが自動でファイルを開き、「SC名」や「設置日」などの特定セルのデータを取得します。その後、管理表(Excel)を開いて一番下の空き行を探し出し、正しい列へピタッとデータを転記してくれます。

さらに、転記された行には自動で「🚨 新規(未確認)」というステータスが付与され、担当者が確認して名前を入力すると、Excelの条件付き書式でパッと色が消えるという視覚的なギミックも盛り込みました!

🧰 今回使用したツール

社内で使用しているツールが主にMicrosoft製品であるため、各システム間の連携がスムーズで、すべて標準機能として組み込める以下のツールを選択しました!

  • SharePoint: 申請書が投稿されるトリガー元
  • Power Automate (クラウド版): 全体を繋ぐ司令塔
  • Excel Online (Officeスクリプト): データの「抽出」と「書き込み」を行う実働部隊

⚙️ 作成システムの全体像

全体のイメージはこちらです。

【自動転記システム】
現場がSharePointに申請書を投稿
 ↓
Power Automateが検知し、Officeスクリプト①を実行
(申請書の指定セルからデータをガサッと抽出)
 ↓
抽出したデータを「||」で区切って1つのテキストパックにする
 ↓
Officeスクリプト②を実行
(管理表の空き行を探し、パックを分解して各列へ書き込む)

① 自動転記システムの作り方

Power Automate内で完結させることもできますが、Excelの細かいセル操作は「Officeスクリプト」に任せた方が圧倒的に早くて確実です。

作成のポイント

  1. Excel on the webを開き、「自動化」タブから新しいスクリプトを作成します。
  2. 抽出用スクリプト(刀その1): 申請書の各セル(I4やE91など)の値を読み取り、data1 || data2 || data3 のように、一つの長い文字列(カプセル)にまとめてPower Automateへ返します。
  3. 書き込み用スクリプト(刀その2): 受け取ったカプセルを分解し、管理表の「K列(SC名)」が空欄になっている行を探して、指定の列へ一気に書き込みます。

Point
Officeスクリプト間では、複雑な配列(リスト)をそのまま渡すのが難しいため、「||」のような使われない記号で区切った1つの文字列にして運び、受け取った側で分解(split)するというテクニックが非常に便利です!

② 本番稼働への罠!「上書き事故」を防ぐ設定

テストを重ねる中で、最大の壁にぶつかりました。それは**「複数の申請書が同時に投稿されると、同じ行に上書きされてデータが消えてしまう」**という現象です。

原因は、Power Automateが優秀すぎて「同時に並列処理」をしてしまうため、2つのロボットが全く同じ空き行を狙ってダッシュしてしまうことでした。これを防ぐための最強の設定がこちらです!

⚠️ 同時実行制御(Concurrency Control)をONにする

トリガーとなる一番上のブロックの「設定(Settings)」を開き、以下の設定を行います。

  1. Concurrency Control を「On」にする。
  2. Degree of Parallelism(並列度) を「1」にする。

Tip
この設定により、同時に何件ファイルが来ても「絶対に1件ずつ順番に処理する(行列に並ばせる)」ことができます!
さらに、クラウド上のExcelの保存ラグを考慮して、フローの最後に 「遅延(Delay)15秒」 を追加することで、完璧なバトンタッチができるようになります。

🎉 実際に使用してもらった反応

このシステムを導入したことで、本部の担当者は「通知が来たら管理表を見るだけ」になり、手作業でのコピペがゼロになりました!
「未確認の行がクリーム色に光っていてわかりやすい!」「名前を入れると色が消えるのが気持ちいい!」と、UI面でも現場から嬉しい声をもらっています。

🧩 業務改善のピースを集めて

今回はプログラミング要素(Officeスクリプト)が入り、最初は少しハードルが高く感じましたが、「抽出する係」と「書き込む係」を分けることで、バグが起きても原因の特定がしやすくなりました。

何より、同時にファイルが来た時のクラウドならではの「上書き衝突」や「同期のタイムラグ」といった、実際に動かしてみないと気づけない生きた課題をクリアできたことは大きな自信に繋がりました😊

引き続き、楽しみながら業務効率化にチャレンジしていきます〜!✨

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?