経理のExcel作業をAIで自動化する方法
この記事の要点
仕訳入力・費用集計・月次レポートなど経理で繰り返すExcel作業を、AIにVBAマクロや数式を生成させて自動化する手順とプロンプト例を解説する。
結論:AI×VBAで月次の繰り返しExcel作業を大幅に削減できる
経理部門のExcel作業には、毎月同じ手順で行う処理が多い。試算表のデータを別シートに転記する、複数の費用明細ファイルを一つに統合する、請求書一覧から特定の取引先だけを抽出して集計する、といった作業はすべてVBAマクロで自動化できる。
AIにVBAコードを生成させれば、プログラミングの知識がなくても自動化が実現できる。「毎月20分かかっていた転記作業がマクロ実行の3秒に短縮された」という効果が、多くの経理担当者が報告している。ポイントは、やりたい操作を具体的な日本語で説明することと、生成されたコードをテスト用ファイルで先に検証することの2点だ。
使うAIツールの選択
| ツール | 向いている用途 | 特徴 |
|---|---|---|
| Claude Pro | VBAコード生成・数式設計 | 長い処理の設計が得意 |
| ChatGPT Plus | VBAコード生成・エラー修正 | コード修正の対話に使いやすい |
| Microsoft Copilot | Excelを直接操作 | Microsoft 365で利用可能 |
| GitHub Copilot | VBAの補完 | VBA編集中にリアルタイム補完 |
財務データを直接アップロードする必要がある場合は社内ガイドラインを確認する。VBAコードの生成だけなら、データ自体をAIに渡す必要はないため、機密情報の取り扱いに関する問題が発生しにくい。
手順:ExcelのVBA自動化をAIで行う流れ
ステップ1:自動化したい操作を言語化する
「毎月行っている作業を自動化したい」という漠然とした依頼ではなく、操作の手順を順番に書き出す。以下のような形式で整理するとAIへの説明がしやすくなる。
- どのファイル・シートを操作するか
- データがどのセル・列・行に入っているか
- どのような条件で処理するか
- 最終的にどのような状態にしたいか
例:「Sheet1のA列に日付、B列に取引先名、C列に金額が入っている。毎月末に、C列の金額を取引先ごとに集計し、その結果をSheet2の新しい行に追加したい」
ステップ2:AIにVBAコードを生成させる
費用データを月次集計シートに転記するVBAプロンプト
ExcelのVBAコードを作成してください。
シートの構成:
- Sheet1(データ入力シート):A列=日付、B列=勘定科目、C列=部門コード、D列=金額
- Sheet2(月次集計シート):行1がヘッダー、A列=勘定科目、B列から月別の集計金額(B1=1月、C1=2月...)
処理内容:
1. Sheet1のデータを読み込む
2. 勘定科目ごとに月別の合計金額を集計する
3. Sheet2の対応する勘定科目の行・月の列に合計金額を書き込む
4. すでに値がある場合は上書きする
コードにはコメントを入れてください。エラー処理も含めてください。
複数ファイルを一つに統合するVBAプロンプト
ExcelのVBAコードを作成してください。
処理内容:
1. 指定したフォルダ内のExcelファイル(.xlsx)をすべて開く
2. 各ファイルの「データ」という名前のシートのデータ(2行目以降)をコピーする
3. このマクロを実行しているブックの「集計」シートに順番に貼り付ける
4. 各ファイルを保存せずに閉じる
条件:
- ヘッダー行(1行目)は最初のファイルのものだけを使う
- フォルダのパスはマクロ実行時にダイアログで選択できるようにする
コードにはコメントを入れてください。
ステップ3:テスト用ファイルで動作確認する
生成されたVBAコードを本番データに直接適用しない。以下の手順でテストを行う。
- 本番ファイルのコピーを作成してテスト用ファイルとする
- データを少量(10〜20行程度)に削減したテスト用データを用意する
- ExcelでAlt+F11を押してVBAエディタを開き、コードを貼り付ける
- テスト用ファイルでマクロを実行し、結果が想定通りかを確認する
- 問題がなければ本番データで実行する
テスト時にエラーが出た場合は、エラーメッセージをAIにそのまま貼り付けて修正依頼をする。
ステップ4:繰り返し使えるようにする
動作確認が取れたVBAコードは、「個人用マクロブック」に保存するかアドインとして保存すると、どのExcelファイルからでも実行できるようになる。社内で共有する場合はファイルサーバーや社内Wiki等で管理する。
AIで数式を生成する
VBAほど複雑でない処理は、数式の生成でも自動化できる。
条件付き集計の数式を生成するプロンプト
Excelの数式を教えてください。
シートのデータ構成:
- A列:勘定科目名(テキスト)
- B列:部門コード(数値)
- C列:金額(数値)
- データは2行目から100行目まで
やりたいこと:
A列が「旅費交通費」または「接待交際費」のいずれかで、かつB列が「10」(営業部門)の行だけを抽出してC列の合計を出す数式
使える関数:SUMIFS、SUMPRODUCT、どちらでも構いません
数式はセルに直接入力できる形で出してください
うまくいかない場合の対処法
コードが動かない・エラーが出る
エラーが出た場合は、VBAエディタでエラーが出た行をコピーし、エラーメッセージと一緒にAIに貼り付けて「このエラーの原因と修正を教えてください」と質問する。多くの場合、1〜2回のやり取りで修正コードが得られる。
思った通りの処理をしてくれない
手順の説明が不足していることが多い。「A3セルからA列の最後の行まで」「1行目はヘッダーなので2行目から処理する」「空白行があったらそこで処理を止める」のように、Excelの構造を詳しく説明し直す。
処理が遅い
大量データに対して行ごとにセルを読み書きするコードは速度が低下する。「このコードを配列を使ってより高速化してください」とAIに依頼すると、一括読み込み方式に書き換えてくれることがある。
経理固有の活用場面
請求書データを会計システム用の取込形式に変換する
取引先から届いたExcel形式の請求書明細を、会計システムへの取込みに必要な形式(科目コード・部門コード・消費税区分付き)に変換するVBAを作成する。「取引先名からVLOOKUPで勘定科目コードを引いて、金額から消費税を分離し、仕訳形式で出力する」という処理を日本語で説明すれば、AIがコードを生成する。この作業は毎月発生する処理だが、一度マクロを作ると手作業の転記と確認がほぼ不要になる。
月次費用実績と予算の差異表を自動生成する
月末に確定した費用実績と年度予算のデータを入力するだけで、差異額・差異率・コメント欄付きの報告書フォーマットを自動生成するマクロを作成する。「費用科目ごとに予算と実績を比較し、差異率が±10%を超える科目に黄色のハイライトを付ける」という処理をAIに依頼すると、経営会議向けの差異分析資料の準備時間が大幅に短縮できる。
関連記事
よくある質問
プログラミングの知識がなくてもAIでVBAマクロを作れますか?
Excelの操作手順を日本語で説明すれば、AIがVBAコードを生成する。「A列にある取引先名を検索して一致する行をC列に金額の大きい順に並び替えたい」のように具体的な操作を説明するとコードの精度が上がる。生成されたコードはテスト用のファイルで先に動作確認してから本番データに使う。
AIが生成したVBAコードが動かない場合はどうすればよいですか?
エラーメッセージをAIにそのまま貼り付けて「このエラーの原因と修正方法を教えてください」と質問すると、修正コードを出してくれることが多い。それでも解決しない場合は、処理を小さなステップに分割して順番に試す。
どんなExcel作業がAIによる自動化に向いていますか?
毎月同じ手順で行う作業(データの転記・集計・書式統一)、複数シートをまたぐ集計、大量行のフィルタリングや並べ替えはVBAで自動化しやすい。一方、判断が必要な仕訳の入力や承認フローはAIには委ねられない。
AIにExcelの関数を作らせることもできますか?
VLOOKUP・SUMIFS・IFERRORのような関数も、やりたいことを日本語で説明するとAIが数式を生成する。「B列の勘定科目が『旅費交通費』または『接待交際費』のとき、C列の金額を合計する数式を教えてください」のような質問で実用的な数式が得られる。