Power Automate × Officeスクリプトで電子取引データの索引簿をつくってみた
見出し画像

Power Automate × Officeスクリプトで電子取引データの索引簿をつくってみた

alice

こんにちは。aliceです。

2022年1月1日から電子帳簿保存法が改正されますね。

(注:そんなに理解していない)

↓国税庁電子帳簿保存法一問一答【電子取引関係】

画像1

画像2


(内容については省略…。)

私の職場はタイムスタンプって何ですか?という職場なので規程とファイル名で対応するのかなと思っているのですが、せっかくだからExcelの検索簿もほしい。ただいちいち作るのも・作ってもらうのも面倒なのでPower AutomateとOfficeスクリプトを使って検索簿を作ってみました。

はい。半分遊びです。いや、ほとんど遊びです。

Share Pointにファイルを入れたら

画像3

月に1回、索引簿を作成するというフローです。

画像4

無駄にリンク機能を入れました。

ポチっとするとPDFが表示されます。

画像5

ということで、かなり雑にフローを書いていきます。

びぼうろく~♪


1 Share Pointの設定

まずはShare Pointに次の設定をします。

Share Pointのドキュメントに「電子取引データ」をいうフォルダーを作ります。

画像6

その中に「見積書」と「請求書」というフォルダーを作ります。

本当は注文書とか領収書も入るのかな?今回はテストなので2つ作りました。

「電子取引データ一覧表」というExcelは先程のExcelです。

画像8


請求書フォルダーを開くとファイルが入っています。

ファイル名は「取引日_取引先_金額」の順に名前を付けています。

画像3

国税庁の一問一答のままです。

画像10


ここで新しく列を追加します。

「一覧表登録」と「一覧表登録日」という列です。

ここはPower Automateで使用します。

「一覧表登録」が「済」になっていなかったらというフローで使います。

画像8


「一覧表登録」は1行テキスト、「一覧表登録日」は日付と時刻で作りました。

一覧表登録

画像11

一覧表登録日

画像12

これでShare Pointの設定は終了です。

次はExcelに登録用のテーブルを作ります。


2 Excelの設定

Excelをweb版で開きます。Officeスクリプトを使うのでweb版で開きましょう。

Excelを開いてSheet1に一覧というテーブルを作ります。それぞれ

A列:日付、B列:取引先、C列:金額、D列:区分、E列:Linkにしました。

画像13

テーブルを作成したので、次はOfficeスクリプトを追加します。


3 Officeスクリプトの設定

そのままOfficeスクリプトを追加します。

画像14

コードはこちらです。

function main(
 workbook: ExcelScript.Workbook,
 folderName: string,
 fileName: string,
 filePath: string) {
 const fileAry: string[] = fileName.split("_");
 const folderAry: string[] = folderName.split("/");
 const dt = (fileAry[0].substr(0, 4) + '/' + fileAry[0].substr(4, 2) + '/' + fileAry[0].substr(6, 2));

 const sheet = workbook.getWorksheet("Sheet1");
 const table = sheet.getTable("一覧")
 const lastRow: number = table.getRowCount();
 table.addRow(-1, [dt, fileAry[1], fileAry[2], folderAry[2], ""]);
 const rg = sheet.getCell(lastRow + 1, 4).setHyperlink({ address: filePath, textToDisplay: "Link" });
}

自動化タブの新しいスクリプトからスクリプトを追加します。

名前は「電子取引データ登録」にします。

画像15

power Automateからもらったデータを加工してテーブルに登録します。

もうちょっと良い書き方があると思うけど、動いたからまぁいいか。

最後にPower Automateを設定します。


【追記】もう少し細かく書きました。

① OfficeスクリプトでPower Automateから値をもらおう!



4 Power Automateの設定

Power Automateでフローを作ります。

フローの全体像はこちらです。Officeスクリプトを使っているのでかなりあっさりしています。

画像21

まずはスケジュール。1か月に1回にしました。

ファイルを追加する都度でなくて良いかな?と思ったのでスケジュール実行しています。

画像17

Share Pointに入れたファイルのプロパティを取得します。

画像18

取得したファイルについて処理をします。

Apply to eachアクションの中に条件アクションを入れます。

画像19

条件は次の3つです。

* 名前に「電子取引データ一覧表」を含まない

* フォルダーでない

* Share Pointの一覧表登録が済になっていない


条件に一致するときは次の処理をします。

画像22


folderNameにフォルダーのパス、fileNameに名前、filePathにアイテムへのリンクを入れます。

最後にShare Pointのプロパティを更新します。

一覧表登録に「済」、一覧表登録日に登録日を入れます。

関数はこんな感じ

画像21

はい。できました!

だいぶ雑でしたね。もうちょっとちゃんと書こう。



この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
ありがとうございます(*˘︶˘人)
alice
Officeスクリプト×PowerAutomateで遊ぶのが好き🤗その他:Microsoft365、PowerApps、PAD、ExcelVBA、PowerQuery🥰 お仕事:経理&ひっそりMS365を広め中。ノンプロ研所属📚