スポンサーリンク

【pleasanter×AI】全銀フォーマットCSVを出力するプリザンターを作ってみた

プリザンター
スポンサーリンク
※当サイトは広告を含みます

※検証環境
本記事は2026年10月時点の情報に基づいています。プリザンターのバージョンは1.5.2.0、ブラウザはGoogle Chromeを使用しています。

プリザンターに、楽天銀行の総合振込用「全銀CSV」を出力する機能を付けてみました!
支払先と支払データを登録し、振込指定日を選ぶと、その日の振込データを全銀フォーマットのCSVにまとめて出力します。もちろん、AI(Codex)に力を借りています。
この記事では、作ったものの概要と、AIに相談しながら作り、触って直していった進め方を紹介します。
「AIでプリザンターを開発するって、どうやってやるの?」という、進め方の参考となれば幸いです。

なお、銀行への実際の取込・振込は未検証です。学習・参考用のサンプルとしてご覧ください。

1.全銀フォーマット出力プリザンターを作ろうと思ったきっかけ

ある日、Slackで「全銀フォーマット」という言葉を見かけました。

そうしたら、なんだか「これ、プリザンターで作ってみたいな」とウズウズと思いました。

以前の私なら、ExcelVBAでプリザンターからデータを取得して整形してCSVを作成、と構築するところですが、プリザンター本体からCSVまで出せないかな。。。と。

「できるんだろうけど、自分で調べながらやったら何万光年かかるか……」と、以前ならあきらめていました。
でも、今はAIが力を貸してくれます。

まずはAIに「こんなことできる?」と、ふんわり聞いてみました。

そうしたら、「このような構成にして、このように実装できます」と、具体的な方法をつまびらかに説明してくれました。

では!お願いします!と。

ちなみに、今回使ったのはCodexです。Claude Codeでも、同じような進め方ができるのではないかと思いますが、今回そちらでは試していません。

2.そもそも、全銀フォーマットとは?

全銀フォーマットは、銀行へ振込依頼などのデータを渡すための、項目や並び方を定めた形式です。企業が銀行へ総合振込や給与振込などのデータをまとめて渡す際に使われています。

取引先への支払いが何十件もあるとき、銀行の画面に一件ずつ入力する代わりに、決められた形のファイルを作ってまとめて渡します。

総合振込でよく使われるのは、各レコードを120バイトで作る固定長形式。口座番号や金額を入れる位置が決まっていて、空白やゼロで長さをそろえるなどのルールがあります。

全国銀行協会では、業務ごとのレコード・フォーマットを取りまとめています。全国銀行協会:全銀協標準通信プロトコル

3.今回は、楽天銀行の「全銀フォーマット・CSV」を採用

楽天銀行の法人向け総合振込では、振込依頼ファイルを取り込む際の形式として、次の3種類が案内されています。

形式ざっくりした特徴
楽天銀行フォーマット・CSV振込明細を1件ずつ並べる、銀行独自の形式
全銀フォーマット・固定長各レコードを120バイトで作る形式
全銀フォーマット・CSV全銀のレコード構成を持つ、カンマ区切りの形式

出典:楽天銀行:依頼ファイルフォーマットについて

今回選んだのは、全銀フォーマットのCSV形式です。

楽天銀行独自のCSVが最も簡単そうですが、そもそもの動機が「全銀フォーマットを出してみたい」なので。

そのうえで、固定長より項目の区切りが見えやすく、ブログのサンプルとしても説明しやすそうなCSV形式にしました。

CSVの中には、4種類の行がある

今回の全銀CSVは、次の4種類の行が入ります。振込明細だけを並べるものではありません。

行の先頭行の種類内容
1ヘッダ振込依頼人や振込指定日など
2データ振込先の口座・受取人名・金額など。件数分繰り返す
8トレーラ振込件数と合計金額
9エンドデータの終わり

「誰から・いつ」→「誰へ・いくら」→「全部で何件・いくら」→「終わり」
という構成です。楽天銀行「全銀フォーマットCSV形式の仕様書」

振込指定日はヘッダに入ります。今回のようにヘッダが一つのファイルでは、振込指定日は一日です。 10月20日分と10月25日分なら、別々のCSVにします。

なお、複数のヘッダを扱う方式もあるため、全銀形式全般で例外なく「1ファイル1日」という意味ではありません。

使える文字や項目の長さ、空欄の残し方などにも決まりがあります。詳しくは、楽天銀行の全銀CSV仕様書をご確認ください。

※ 全銀形式なら、どの銀行でも同じファイルを使えるというわけではありません。利用する銀行・サービスの仕様を、それぞれ確認することが必要です。

4.プリザンターの構成、実装内容

(1)サイト構成

プリザンターは、業務に合わせた台帳や入力画面を作れるツールです。独自のスクリプトを書くことで様々な機能を実装することも可能です。

今回は、プリザンターに次の二つのサイトを用意しました。

作ったもの役割
支払先マスタ支払先の銀行・支店・口座番号・受取人名などを登録する
支払管理支払先・金額・振込指定日などを登録し、CSV出力を管理する

「支払管理」サイトと「支払先マスタ」は連携させます。「支払管理」で支払先を選ぶと、マスタから口座情報などを持ってきます。そこに金額や振込指定日を登録します。

CSV出力機能は、「支払管理」サイトに実装します。「支払管理」サイトに登録されたレコードから指定した振込指定日のデータを集約し、整形して出力します。

(2)プリザンターから直接CSVを出力する機能(スクリプト)

プリザンターから直接CSVを出力する部分です。
クライアント側のスクリプトで実装しています。

利用者の操作は、次の流れです。

  1. 「全銀CSV出力」ボタンを押す。
  2. 振込指定日を選ぶ。
  3. 対象の件数・合計金額を確認する。
  4. 保存先を選び、CSVを保存する。

裏側では、ボタンに組み込んだスクリプトが、次の処理を行います。

  1. 出力対象を取得する。
    指定日の「未出力」データを集めます。一覧で選択した行ではなく、振込指定日と未出力という条件に合うデータが対象です。
  2. データを確認し、CSVを組み立てる。
    必要な項目や値を確認し、楽天銀行の全銀CSV形式に整えます。
  3. 件数・合計金額を表示し、CSVを保存する。
    利用者が内容を確認して保存先を指定すると、CSVを保存します。
  4. プリザンターに出力結果を記録する。
    保存後、対象レコードの「出力日時」「保存ファイル名」を入力し、状況を「出力済」へ変更し、更新します。

※ ここでいう「出力済」は、CSVを作成したという意味です。銀行への送信や、振込完了を示すものではありません。

5.ついでに、Excel VBA版も

Excel VBAでプリザンターから情報を取得し、CSVを作成するツールも作ってみました。プリザンターにCSV出力機能があれば必要ないのですが、比較のため、作成してみました。

こちらは、プリザンターのAPIを使ってデータを取得し、Excel側でCSVを作成します。APIは、別のソフトからデータを取得・更新するための仕組みです。

VBAなら私にも書けるので、以前だったら、この方式で作ったと思います。

こちらもシートの作成から0ベースでAIにやってもらいました。やはり初手は内容というよりも見た目が「ん?」という感じでしたので、文句を言って修正を進めました。Excelは自分の「こうあるべき」の基本をAIに伝えておかないと、このような修正が発生しますね。しかし、コードはAIに書いてもらうと爆速ですねー。

とはいえ、プリザンターに出力ボタンがあれば、支払いの登録からCSV出力まで、同じ画面の流れで操作できます。こちらのほうがスムーズに感じますね。

6.AIと一緒に、相談から試作・修正まで進める

今回の進め方を整理すると、次のようになります。

順番AIと進めること自分が確認すること
1作りたいものと実装方法を相談する業務の流れや必要なデータが合っているか
2サイトパッケージのJSONを作ってもらう取り込んだ画面や機能が想定どおりか
3画面や操作方法を修正してもらう使う人が迷わず操作できるか
4テスト項目を出し、不具合や要望を記録する実際の結果と期待する結果が一致するか
5修正方針を決め、反映して再確認する指摘した点が直り、必要な操作ができるか
6仕様書、手順書などを作成してもらう内容の確認。手順書は利用者にわかりやすいか

以下の依頼文は、同じように試すときの参考として整理した例です。

(1)まず「何をしたいか」を伝え、構成と実装方法を相談する

最初から、細かいプログラムの書き方を指定する必要はありません。

まずは、普段の仕事の言葉で「何を登録して、何をしたいか」を伝えます。

例えば、今回ならこんな相談です。
(ほんとはもっとふにゃふにゃした伝え方で、AIに先導してもらった感じでした)

プリザンターで支払先と支払データを管理し、楽天銀行の総合振込用「全銀CSV」を出力したいです。
振込指定日を選ぶと、その日の未出力データをまとめて出す仕組みにしたいです。
必要なテーブルや項目、利用者の操作、実装方法を提案してください。まだ実装せず、まず構成を相談したいです。

銀行に渡すファイルには決まりがあるので、仕様書のURLや資料も一緒に渡します。

回答を見ながら、「口座情報はどこに登録する?」「何を条件に出力する?」「出力した後はどう管理する?」と、疑問をぶつけて、理想を伝え、時にはAIからここはどうする?と逆に質問を受け、徐々に構想を固めていきます。

ここで大切なのは、AIが提案した構成を、そのまま採用することではありません。自分が使う場面を想像し、業務に合った形を目指すことです。

不明点や何を言っているかわからないときは、その場でガンガン聞きます。AIさん、怒らず忍耐強く説明してくれるから。

(2)画面設定とスクリプトを、JSONにまとめて作ってもらう

プリザンターには、サイトの構成や設定をファイルにまとめて書き出し、そのファイルを取り込んでサイトを作る「サイトパッケージ機能」があります。

テーブルの項目、編集画面・一覧画面の設定、スクリプトなどをまとめて扱えます。フォルダごと、複数のテーブルとそのリンク関係も含めて書き出すこともできます。

このとき使うのが、JSON形式のファイルです。JSONは、設定やデータを一定のルールに従って文字で記述する形式です。サイトパッケージ機能の説明

ここで、「文字で設定を書けるなら、そのファイルをAIに作ってもらえるのでは?」となるわけです。

今回は、相談して決めた構成をもとに、支払先マスタと支払管理の項目、画面設定、必要なスクリプトを含むJSONファイルを作ってもらいました。

進め方は、次の流れです。

  1. AIに、サイトパッケージのJSONファイルを作ってもらう。
  2. そのファイルを、プリザンターの検証用の場所へインポートする。
  3. 作成された画面を開き、入力やCSV出力を試す。

画面上で設定を一つずつ行う代わりに、AIに設定ファイルを作ってもらい、プリザンターへ取り込んで動かしてみる。今回は、この方法で試作を進めました。

依頼するときは、例えばこう伝えます。

決めた構成で、編集画面・一覧画面・必要なスクリプトを含むサイトパッケージのJSONを作成してください。
使用環境はプリザンターX.X.X.Xです。不明点は公式資料や対象バージョンのソースで確認し、取込手順と確認項目も付けて出力してください。

すでにサイトを作っている場合は、現在のサイトからエクスポートしたJSONを渡し、それを起点に修正してもらうと、実際の設定と話がずれにくくなります。

私は、開発に際しては常にプリザンター開発方針をまとめたMDファイルを読んで進めるよう指示しています。推測だけで実装せず、公式マニュアルやソースコードなどを確認する方針です。

ただし、一発で思いどおりのものが出来上がるわけではありません。まず検証用の場所に取り込み、自分で触って確かめて、修正していく形で進めます。

(3)使ってみて、ボタンやエラー表示を具体的に直してもらう

最初の画面を見た感想は……。

「ボタンやパネルが、びっくりするほどダサい!」

ガイドのところにボタンが置かれていたり、日付を選ぶ操作パネルがめっちゃ小さかったり。エラーメッセージも、パネルの隅にこっそり出ていて、見づらい。

動けばよい、というわけにはいきません。使う人が迷わず操作できるかは重点的に自分で確かめたいところです。

修正してほしい点を具体的に伝えました。

気になったところ伝えた修正の方向
出力ボタンの場所が分かりにくいほかの操作ボタンと同じ並びに置き、色を変えて独自機能のボタンであることを主張する
日付を選ぶパネルが小さい入力内容を確認しやすい大きさにする
エラーが小さくて気づきにくいこれでは見落としてしまうので修正。視線の導線を考える。「エラーが出た」とパッと見てわかるようにする。理由と、次に何をすればよいかが分かる形で表示する

「見やすくして」だけでは、どこをどう変えてほしいか伝わらないので、できるだけ言語化して伝えます。
どの画面の、何が、どう困るのか。どうなれば使いやすいのか。そこまで伝えると、修正の方向を合わせやすくなります。

作りたい画面のイメージがあれば、参考のスクショを貼って「こんな見た目にして」と伝える方法もあります。「この画像に近づくように、表示を確認して修正する作業を繰り返し、整ったところで出して」と頼む感じです。

(4)テスト項目を出してもらい、結果と修正タスクを残す

ある程度形が整ったところで、AIにテスト項目を出してもらいました。

非エンジニアには、「何をテストしたらよいか」を考えること自体が難しいので、これは大変助かります。

正常にCSVが出るかは思いついても、入力が不足している場合、出力済みのデータがある場合、保存をキャンセルした場合など、確認する条件をそろえるのは大変です。

そこで、こんな形で依頼します。

今回決めた仕様をもとに、テストケースを作成し、Excelで出力してください。
事前に用意するデータ、操作する画面、操作手順、期待する結果を、一件ずつ書いてください。
正常に出力する場合だけでなく、入力不備、対象データなし、保存キャンセル、更新失敗の場合も検討してください。

例えば、確認したいことは次のような内容です。

確認する場面確認したいこと
同じ指定日の未出力データがある対象の件数・金額でCSVを作れるか
別の指定日のデータもある選んでいない日のデータが混ざらないか
出力済みのデータがある通常の出力対象に含まれないか
必須項目に不足がある理由が分かるエラーになり、出力を止められるか
保存後の出力記録更新に失敗する保存と記録更新の状態を把握し、復旧できるか

テスト手順の意味が分からなければ、「これは何を確認するテスト?」「どの画面で操作するの?」と、都度聞きます。

Codexでは、コンピューターユーズを使用すればテストも可能だと思います。
しかし今回は、自分の目と手で「人間の」使い勝手を確かめたかったので、手作業でテストしました。

その途中で見つかった不具合や要望、要検討事項は、都度AIに伝え、その場である程度原因や修正方向などまで会話します。そして修正タスクとしてメモしてもらいます。

今の問題を修正タスクとして記録して。
操作手順、期待した結果、実際の結果を残してください。
修正方法が決まっていないものは、未決定と分かるようにしてください。

2回目からは「これ、タスクメモに書いといて」だけで大丈夫。

自分で全部メモするのは面倒ですし、抜けたり漏れたり、後で見返して「自分で書いたけど何が言いたいのか意味がわからない。。。」となったりします(私だけかも・・)。会話を整理して書いてもらえて、同時にAI側にもタスク・問題点を認識しておいてもらえる。一石二鳥。助かります。

チャットの中だけだと埋もれてしまうので、修正タスクや決定事項は、案件フォルダにmd形式ファイルとして残しておくと、別のチャットでも続きを進めやすくなります。

(5)タスクを見直し、修正方針を決めてから反映する

一通り確認したら、記録した内容をまとめて出してもらいます。

これまでの修正タスクを全部出してください。
不具合、改善要望、要検討事項、未決定事項を整理し、それぞれの修正方針を提案してください。
まず方針を確認したいので、この段階では実装しないでください。

一覧を見ると、似た指摘をまとめられたり、「これは機能を増やすより、説明を変えた方がよさそう」と気づいたりします。

直すところと直し方を相談し、方針を決めたら実装を依頼します。

現在のサイトに手作業で修正を加えている場合は、現在のサイトパッケージをエクスポートし、AIと現在の状態を共有し、そこを起点に修正の実装に進んでもらいます。

まだ運用前なら、修正版JSONを取り込み直して試す

今回のように、まだ運用前で、検証用データを入れ直せる段階なら、修正版のJSONを出してもらい、新しく取り込んで試す方が早い場面があります。

画面上で設定を一つずつ直す手間を減らせるからです。スクリプトに直書きしているサイトID等、一部変更が必要となる場合はありますが。

新しく作るのか、既存サイトを更新するのかを確認し、データや権限、ほかのサイトとのつながりも含めて反映方法を決めます。既存サイトをJSONで上書きすることはできません(サイトパッケージを取り込むと常に新しいサイトとして作られます)。

既存サイトを直すなら、変更手順も一緒に出してもらう

すでに取り込んだサイトを使い続けたい場合は、修正版JSONに加えて、画面上で変更する手順も出してもらいます。

現在のサイトからエクスポートしたJSONを添付します。これを起点に修正してください。
修正版JSONと併せて、既存サイトへ手作業で反映する手順も出してください。
変更する画面・設定・スクリプト、変更前後の内容、反映後の確認方法を明記してください。

手作業ですでに修正を行っている場合は、今のサイトから書き出したJSONが必要になります。編集起点をそろえることが必要です。

反映後は、修正したところをもう一度テストします。再度必要なテスト項目を出してもらってもよいです。関連する入力やCSV出力も確認して、意図した動きになっているか確かめます。

7.「こんなことできる?」から、ここまで作れた

以前なら、難しそうだとあきらめていた機能でした。

今回は、まず「こんなことできる?」と、ふんわり相談するところから始まりました。そこから具体的な方法が見え、作って、触って、直すところまで、信じられないスピードで進められました。

以前ならあきらめていたものを、自分でも形にできる。 非エンジニアの私にとって、できることの幅がぐっと広がったと感動しています😭✨

いつでも相談できる(しつこく聞いても不機嫌にならない)開発担当者がそばにいるような感覚です。分からないことをその都度聞きながら進められるのも、私にはありがたいところでした。

一方で、「どんな仕事に使うのか」「この操作で迷わないか」「この結果でよいのか」は、自分も一緒に考える必要があります。実際に触ってみて初めて気づくこともあり、その都度伝えて、また相談する。その往復で形にしていきました。現状では、AIにわかること、私にしかわからないことと、両方あるなと思いました。

また、AIで作れるからと言って、機能を盛り込みすぎないことも注意したいです。修正を何度も重ねた場合は、適宜リファクタリングをすることも必要だと感じました(リファクタリングも言うとやってくれるので、気軽にできます)。シンプルで無駄のないシステムであることは、AI時代でも変わらずに大切なことだと思います。

今回のポイントは、次の3つです。

  • まず、やりたいことを業務の言葉で相談する。
  • AIにJSONを作ってもらい、プリザンターに取り込んで試す。
  • 実際に使って確かめ、修正点を記録しながら改善する。

最初から、完成形を細かく説明できなくても大丈夫。

「この作業、プリザンターでこうできないかな」

そんな相談から始めてみると、思っていたより具体的な作り方が見えてくるかもしれません。

プリザンター×AI開発についての「思うところ」や、具体的にどう進めているか、試行錯誤の記録は、後日あらためてまとめようと思っています。

サンプルについて・ご注意

この記事では進め方に絞り、実装の詳細は割愛しています

サンプル一式はGitHubで管理していますが非公開のため、ご興味のある方は、ブログのお問い合わせからご連絡ください。

ただし、私は法人口座を持っていないため、楽天銀行でのファイル受入れ・実際の振込はテストしていません。 Excel VBA版も、模擬データを使った検証にとどまります。

また、今回のCSVは楽天銀行向けです。どの銀行でも使えるものではありません。必ず、利用する銀行・サービスの最新仕様を確認してください。

本サンプルは学習・参考用であり、動作や銀行での受付を保証するものではありません。利用によって生じた事故・損害等について、作者は責任を負いかねます。ご利用にあたっては、ご自身の環境で十分に確認・検証してください。

コメント

タイトルとURLをコピーしました