前編では、プリザンターで今日の予定を立て、開始・完了ボタンで実績時間を残すところまでをご紹介しました。
【プリザンター×AI開発】タイムトラッキング付きタスク管理ツールを作ってみた
Excelからプリザンターのデータを取得し、マクロで必要な処理をする、という連携は前職ではよくやっていました。逆に、Excelからプリザンターへデータを渡すこともありました。
Excelを多用する職場だったので、プリザンターをデータベースとしてきっちりデータを管理し、Excelではこまごまとした処理をしたり、必要なデータを切り出して次のシステムへ渡したり。この組み合わせが、業務にぴったりはまっていました。
後編は、その組み合わせで作ったExcel集計ツールのお話です。プリザンターに残した作業記録を取得し、Excelで確認・調整して、請求書と業務内容報告書を作成します。
まず前半でツールの内容と使い方を、後半で自分の設計をAIに伝え、VBAを実装してもらった進め方をご紹介します。
1.Excelツールの内容と使い方
日々の記録から、請求書まで
作ったExcelツールでは、次の流れで月末の作業を進めます。
- プリザンターから、指定した取引先・期間の集計対象レコードを取得する。
- 作業内容と時間を確認し、必要な時間調整とメモの入力をする。
- 集計結果を確認し、請求書と業務内容報告書を作成する。
- 帳票の内容を整え、それぞれをPDFで保存する。
操作するボタンは、「データ取得」「帳票作成」「PDF出力」の3つです。

Excelの中は、次の4シートに分かれています。
| シート | 役割 |
|---|---|
| 操作・集計 | 取得条件を指定し、時間の合計を確認する |
| 取得データ | プリザンターから取得した明細を確認し、時間を調整する |
| 請求書 | 請求内容・金額を確認する |
| 業務内容報告書 | 日付・時間・作業内容の明細を確認し、提出用に整える |
※ 今回はサンプルとして、一つの取引先向けの帳票を作成するツールにしています。複数の取引先の請求書を、一度に発行する仕様ではありません。
請求書をプリザンターから直接出さなかった理由
プリザンターに日々の実績を入れているなら、そこから直接請求書を出す形も考えられます。
Excelを介す理由の一つは、記録した実績時間とをそのまま請求するとは限らないからです。
請求までには諸事情を勘案したり、端数を切ったり、実績を見ながら請求用の時間を調整したりすることがあります。作業内容も、日々の自分用メモのままでは提出しにくいことがあります。
そのため、次のように役割を分けました。
| プリザンター | Excel |
|---|---|
| 日々、何をして、どれだけ時間を使ったか記録する | 記録を確認し、請求用に調整・集計して帳票を作る |
私にとっては、表で内容を確認したり、文章や書式を直したりする作業は、使い慣れたExcelがやりやすいです。日々の記録を入力し直すのではなく、取得したものをもとに請求用の調整をする形にしました。
① 条件を指定し、データを取得する
最初に、取得するサイト・取引先・期間を指定して、「データ取得」ボタンを押します。プリザンター側で「集計対象」がONになっているレコードから、実績開始日時が期間内のものを取得します。
取得するのは、タイトル、内容、取引先、作業時間、実績日時などです。請求書を作るときに、作業内容を最初から思い出して入力しなくてよいのが助かります。

※ 現在のサンプルは、取得するたびに明細を入れ替える仕様です。Excelで入力した調整時間やメモも引き継がないので、取得を済ませてから調整する順序で使います。
② 取得した時間と、請求用の時間を分けて持つ
ここは、今回のツールで大切にしたところです。
取得した作業時間を、そのまま上書きするのではなく、別の「調整時間」と「調整メモ」を用意しました。
| 取得した作業時間 | 調整時間の入力 | 集計に使う時間 |
|---|---|---|
| 1.5時間 | 空白 | 1.5時間 |
| 1.5時間 | 1.0時間 | 1.0時間 |
| 1.5時間 | 0時間 | 0時間 |
※ 数字は説明用の例です。請求時間の調整ルールを示すものではありません。
調整時間に入力するのは、増減分ではなく、調整したあとの時間です。空白なら取得した時間を使い、入力されていればそちらを使います。0時間にする場合は、空白にせず「0」を入力します。
時間は十進数で扱っています。1時間30分なら「1.5」です。
より細かく管理したいなら、「分」を単位にして持つ設計もよいと思います。その場合は、プリザンター側の実績の持ち方や計算、Excel側の集計・表示も合わせて考えます。丸めた時間をあとから分に換算するだけでは、元の細かさには戻せないためです。
また、端数に関してはこのツールでは一律に15分単位へ丸める、といった処理等はしていません。
③ 帳票を作成し、内容を整える
明細と時間の合計を確認したら、「帳票作成」ボタンで「請求書」「業務内容報告書」を作成します。
請求書は、宛先や請求者情報をあらかじめ入れ、集計した時間を金額計算につなげる構成です。請求日や番号、金額を確認します。
【画像:請求書の完成イメージ。公開用サンプルを使用】
業務内容報告書には、日付・時間・業務名・実施内容などが入ります。転記された文章は、そのまま直接編集できます。日々の自分用メモを、ちょっときれいに整えます。(ここもAIに手伝ってもらっちゃっています。)
備考欄は空欄で作成されるので、必要に応じて記入します。取得データ側の「調整メモ」が、そのまま報告書へ入るわけではありません。

ただし、帳票をもう一度作り直すと、報告書で手修正した明細も置き換わります。時間の調整を済ませて帳票を作成し、文章や備考を仕上げるのはそのあと、という順序にしています。
④ 確認した帳票をPDFへ
内容が確定したら、「請求書・報告書をPDF保存」ボタンで、現在の2つの帳票をそれぞれ別のPDFとして保存します。
この操作では帳票を再作成しないので、手直しした文章や備考を含め、現在のシートの内容を出力できます。
データの入れ替えや帳票作成の前には、ブックのバックアップを残す仕組みも入れています。
PDFを開いて、対象期間や内容、見た目を確認したら、提出用の資料ができあがりです。取得したらすぐに請求書まで確定させるのではなく、間に自分で確認する段階を置いています。
2.VBAをAIで実装した進め方
ここからは、作り方のお話です。
前編で扱ったJavaScriptはAIに相談しながら進めましたが、Excelマクロは私の得意分野です。設計や構築方法も、自分の中にあります。
ただ、今回はできるだけ自分の手を動かさずに作ることを目指しました。私が一からコードを書くより、AIに具体的に指示して動いてもらう方が、速さも正確さも段違いだと感じているためです。もちろん、出来上がったものは確認します。
設計は自分で、実装はAIに手足として動いてもらう。 今回は、そういう使い方です。
① 処理の流れを言葉にして、資料と一緒に渡す
取得する項目や条件、シートへの出力方法を決め、「こう作って」と伝えました。請求書などのフォームは、ざっくりしたイメージを見せています。
| 渡したもの・伝えたこと | 役立ったところ |
|---|---|
| プリザンターのサイトパッケージJSON | 項目と設定から、取得元の構造を把握してもらう |
| 請求書・報告書の見本 | 必要な項目と帳票のイメージを共有する |
| 取得した時間は残し、調整欄を別にしたい | 記録と請求用の時間を分ける |
| 報告書の文章は、あとで自分で直したい | マクロで値を転記する形にする |
| 自分で整えたExcelの書式 | 実際の転記先に合わせて処理を修正する |
前編でも触れましたが、項目名や設定をすべて文章で説明するのは大変です。抜け漏れも起こりやすいので、JSONで今の状態を共有できることは、とても助かりました。
一方で、「なぜ調整欄が必要なのか」「文章を直接編集したいのはなぜか」といった使い方は、こちらから伝える必要があります。
設計を言葉で伝え、実物の資料で補う。その組み合わせで、作りたいものを共有しています。
② データ取得のVBAを実装してもらう
プリザンターのデータを取得するために使うのが、APIです。別のソフトから、決められた方法でデータをやり取りするための仕組みです。
今回なら、Excelからプリザンターへ「この取引先・期間の、集計対象のデータをください」と依頼し、その結果をシートに並べます。この部分をVBAで実装しています。VBAは、Excelの処理を自動化するためのプログラムです。
APIキーは、Excelに直接書き込まず、環境変数から読み取る
APIで接続するときには、利用者を認証するためのAPIキーを使います。今回は、ExcelのセルやVBAコードにキーを直接書かず、Windowsの「ユーザー環境変数」に設定しておく形にしました。
環境変数は、パソコン上のプログラムから参照できる設定値です。PLEASANTER_API_KEY という名前で登録し、VBAから次のように読み取っています。
Environ$("PLEASANTER_API_KEY")
こうしておけば、ExcelファイルにAPIキーを埋め込まずに使えます。初回は環境変数を設定し、Excelをすべて終了してから開き直します。キーが未設定の場合は、案内を表示して処理を止めるようにしています。
なお、環境変数は暗号化された保管庫ではありません。同じユーザー権限で動くプログラムからも読み取れるため、「ここに入れれば誰にも見られない」というものではありません。
③ シートの処理と、帳票への転記を作る
取得の次は、時間の調整・集計・帳票への転記です。
「調整欄が空白なら取得時間を使う。入力されていれば調整後の時間を使う」といった処理も、言葉で指定しています。
業務内容報告書は、関数で常に元データを表示し続ける形にはせず、マクロで値として転記するようにお願いしました。提出前に、業務名や実施内容の文章を直接直したかったためです。
使う人があとでどこを触るか。それを先に考えて、実装へ反映してもらっています。
④ 見た目は自分で直し、変更後のExcelにコードを合わせてもらう
ファイルの新規作成から実装まで一気にやってもらいました。
しかし、出来上がったものを見てみると、見本を渡したのに「請求書」のつくりがひどい(‘Д’) また、ボタンの配置やセルの配置、列の配置もいまいち。
操作パネルのシート、請求書のシートも、自分でかなり手を入れました。
修正後は、大体の変更内容を伝えたうえで、「現在のExcelを確認して、これに合うようにコードを修正して」と依頼しました。変更したブックを確認してから、コードを直してもらっています。
どうもうちのCodexちゃんはデザインセンスがイマイチ。。。育てていかなければ。
操作パネルのセルの配置なども、使う人を考えたものではないなと感じました。入力すべき場所、クリックするボタンの導線など、利用者が迷わないつくりを目指すんだよ!と教育が必要だと感じました。
⑤ 動かして確認し、次へ渡せる情報も残す
実装後は、実際に操作し、取得結果や集計、帳票の内容が意図どおりか確認します。違っていれば、操作内容や結果を伝えて、修正してもらいます。
開発方針をまとめたMarkdownファイルも参照してもらい、作業中に分かった注意点や失敗は、TIPSとしてメモに残しました。今後の作業でも必要に応じて確認してもらうためです。
コードを作った流れで、仕様書や操作手順書も出してもらえるのは便利です。他の人へ引き継ぐ場合も、「次の担当者や、その人が使うAIにも分かるように、引き継ぎ書を作って」と頼めます。
引き継ぎ書の内容を確認する必要はありますが、作業の経緯や仕様を一から書き起こす負担は、かなり減らせると感じています。
得意な分野でも、AIを使う意味がある
前回の全銀CSVの記事は、新しい仕組みを最初から構築した例でした。今回の前編では、既存のプリザンターへ機能を追加する際に、実現方法から相談した部分もあります。
一方、このExcelツールでは、自分の経験をもとに処理の流れを決め、作成・修正の作業をAIへ依頼しました。
得意な分野なら、具体的に指示して作業を進めてもらう。自分が詳しくない分野なら、実現方法から相談する。作るものや自分の理解に合わせて、AIへの頼み方も変えられます。
自分でコードを書ける分野でも、一から書く手間を減らし、使い勝手や結果の確認に時間を使える。今回は、そういう作り方ができました。
3.記録するだけで終わらず、次の仕事につながる
タスク管理を始めたのは、日々の時間をもう少しうまく使いたかったからです。
今も時間管理が完璧になったとは言えませんが、だいぶ軌道に乗ってきた感じがしています。何をしていたのか、どこまで進んだのかが残るようになったのも日々の作業に役立っています。
翌日はその記録を見て続きを始められますし、月末には、同じ記録を集計・報告・請求へ使えます。このつながりが、私には快適でした。
今回のポイントは、次の3つです。
- プリザンターに残した日々の作業記録を、Excelへ取り込んで活用できる。
- 実績と請求用の調整を分けることで、確認しながら帳票を作成できる。
- 自分で設計し、実装作業をAIに任せることで、欲しいツールを形にする手間を減らせる。
プリザンターで記録し、Excelで整える。好きなプリザンターと、使い慣れたExcelを組み合わせて、自分の仕事に合ったツールになりました。
4.サンプルをGitHubに置いています
今回作成したプリザンターのサイトパッケージJSON、Excel集計ツール、仕様書をGitHubにまとめました。
ご利用の際は、接続先・サイトID・APIキーなどを、ご自身の環境に合わせて設定してください。サイトのアクセス権限も、利用者や運用に応じて適宜設定をお願いします。
学習・参考用のサンプルです。動作や結果を保証するものではありませんので、バックアップを取り、テスト環境で確認のうえ、ご自身の責任でご利用ください。
5.参考資料
- 【前編へのリンク:公開後に追加】
- 全銀フォーマットCSVを出力するプリザンターを作ってみた
- プリザンター公式マニュアル:APIで200レコードを超えるデータを取得したい


コメント