ChatGPTでExcel VBAを自動化|PDF注文書から納品書を作成した方法

毎日の仕事で、同じ内容を何度もExcelへ入力していませんか?

私の仕事では、取引先から届くPDF注文書を確認し、注文番号・品番・数量・金額などをExcelの納品書へ転記する作業がありました。

1件ずつ入力するだけなら、それほど難しい作業ではありません。

しかし、注文書の数が増えてくると時間がかかり、数字や品番の入力ミスも起こりやすくなります。また中小企業では複数の企業との契約により多くの種類の注文書とルールが存在します。ルールを覚えるだけでも大変ですいくら時間があっても大変です、残業も全く減らない状況を変えたい。

そこで今回は、ChatGPTに相談しながらExcel VBAを作成し、PDF注文書からExcel納品書を自動作成する仕組みづくりに挑戦しました。

私はプログラミングは学生時代に少しだけかじりましたが専門家ではありません。

それでもChatGPTに現在の仕事の流れを伝え、テストと修正を繰り返すことで、実際の業務で使えるところまで自動化を進めることができました。

この記事では、その流れをできるだけ分かりやすく紹介します。

目次

この記事で分かること

この記事では、主に次の内容を紹介します。

  • ChatGPTを使ってExcel VBAを作る方法
  • PDF注文書から納品書を自動作成する仕組み
  • VBAとOCRを組み合わせる方法
  • ChatGPTへ依頼するときのポイント
  • エラーが発生したときの対処方法
  • 業務で使用する場合の注意点
  • 初心者がExcel自動化を始める手順

「Excel作業を少しでも減らしたい」という方の参考になればと思います。

今回自動化したかった作業

これまでの納品書作成は、次のような流れでした。

  1. PDF注文書を開く
  2. 注文番号を確認する
  3. 品番・数量・単価・金額を確認する
  4. Excelの納品書フォーマットを開く
  5. 確認した情報を手入力する
  6. 納品書番号を付ける
  7. 完成した納品書をPDFで保存する

注文書が1枚だけなら、それほど時間はかかりません。

しかし、複数の注文書を処理すると、同じ操作を何度も繰り返すことになります。

さらに、手作業では次のようなミスも発生しやすくなります。

  • 注文番号の入力間違い
  • 数量や金額の転記ミス
  • 納品書番号の重複
  • PDFファイル名の付け間違い
  • 保存先フォルダの間違い

そこで、

「Excelのボタンを押してPDF注文書を選ぶだけで、納品書を作成できないか?」

と考えたのが今回の自動化の始まりです。

ChatGPTを使って作成した自動化の仕組み

今回作成した仕組みでは、Excelに設置したボタンからPDF注文書を選択します。

その後、自動的に次の処理を行います。

  1. PDF注文書を選択
  2. OCRでPDF内の文字を読み取る
  3. 注文番号・品番・数量・価格などを抽出
  4. Excelの納品書フォーマットを複製
  5. 必要なセルへ情報を入力
  6. 年月と連番から納品書番号を作成
  7. シート名を納品書番号へ変更
  8. 完成した納品書をPDFで保存

つまり、これまで人が行っていた

確認 → 転記 → 番号作成 → PDF保存

という一連の作業を、できるだけ自動化する仕組みです。

Excel VBAだけではPDFを正確に読み取れない

最初は、

「Excel VBAだけでPDF注文書を読み取れるのでは?」

と思っていました。

しかし実際には、Excel VBAだけですべてのPDFから文字や表を正確に取り出すのは簡単ではありません。

特に、紙をスキャンして作られたPDFの場合、中身は文字データではなく画像になっています。

そこで今回は、

Excel VBA + OCR

という組み合わせにしました。


Excel VBAが担当する処理

Excel VBAでは、主に次の処理を担当します。

  • PDFファイルの選択
  • OCRプログラムの起動
  • 読み取り結果の取得
  • 納品書フォーマットの複製
  • セルへの自動入力
  • 納品書番号の作成
  • シート名の変更
  • PDFファイルの出力

Excel側の操作については、できるだけVBAでまとめて処理します。

OCRが担当する処理

OCRとは、

Optical Character Recognition(光学文字認識)

のことで、画像の中にある文字をコンピューターが扱える文字データへ変換する技術です。

今回はExcel VBAから、

「納品書OCR.exe」

というOCR用プログラムを起動する方式にしました。

OCRがPDF注文書を読み取り、結果を一時的なテキストファイルへ保存します。

そのテキストファイルをExcel VBAが読み込み、必要な情報を納品書へ転記します。

自動化の全体的な流れ

今回作成した仕組みは、次のような流れになっています。

PDF注文書を選択

↓

Excel VBAがOCRプログラムを起動

↓

OCRが注文書の文字を読み取る

↓

読み取り結果をテキストファイルへ保存

↓

Excel VBAが注文番号・品番・数量・価格を取得

↓

納品書フォーマットを複製

↓

指定したセルへ自動入力

↓

納品書番号を作成

↓

PDFとして保存

行う主な操作は、Excelのボタンを押してPDF注文書を選択することだけです。

必要な場合のみ、社内で使用するオーダーNo.などを手入力します。あとは自動で納品を作成してくてます。

ChatGPTにはどのように依頼したのか

ChatGPTへ、

「納品書を自動作成したいです」

と伝えるだけでは、実際の仕事に合ったVBAはなかなか作れません。

重要なのは、現在の作業と希望する処理をできるだけ具体的に伝えることです。

例えば、私は次のような形で依頼しました。

PDF注文書を選択し、注文番号・品番・数量・価格を読み取って、Excelの納品書フォーマットへ自動入力したいです。納品書番号は年月と連番で作成し、最後に上段だけをPDFで保存したいです。

さらに、実際の作業を確認しながら条件を追加していきました。

例えば、

  • 上段と下段の控え欄へ同じ情報を入力する
  • PDFへ出力するのは上段だけにする
  • 納品書番号を「年月+連番」で作成する
  • PDF名へオーダーNo.や取引先名を入れる
  • 明細が複数ある場合にも対応する
  • 複数部品を「部品加工一式」と表示する
  • 不要な確認ダイアログを減らす
  • 備考欄のフォントサイズを統一する
  • 取引先ごとに異なる注文書へ対応する

といった内容です。

このように、

「実際の仕事で必要な条件」を少しずつ追加する

ことで、業務に合った仕組みへ近づけていきました。

ポイント

ChatGPTには“何をしたいか”だけでなく、“入力元・出力先・ルール・例外条件”まで具体的に伝える

最初から完成版は作れなかった

ChatGPTを使えば、最初の依頼だけですぐに完成すると思うかもしれません。

しかし、実際には何度もテストと修正が必要でした。一日4~5時間で1週間でいどの時間を要しています。

ここは、実際に取り組んでみて強く感じた部分です。

PDF注文書を読み取れない

注文書によって文字の位置や表の形式が違うため、すべて同じ方法では読み取れませんでした。

また、

  • PDFの向き
  • 画像の画質
  • 手書き文字
  • 取り消し線
  • 表の位置

などもOCRの読み取り精度へ影響します。

OCRを使えば何でも100%読み取れるわけではありません。

注文番号が途中までしか取得できない

注文番号の一部だけが取得され、必要な末尾部分が読み取れないこともありました。

その場合は、

  • 注文番号の文字パターン
  • 読み取る範囲
  • 区切り文字
  • OCR結果の解析方法

などを見直しました。

複数明細へ対応できない

最初は1件の明細だけを想定していました。

しかし実際の注文書には、複数の品番が記載されていることがあります。

そこで、

注文番号・品番・数量・価格を配列へ格納する

ように変更し、複数行へ入力できるよう修正しました。

保存先が希望するフォルダにならない

PDFを選択するときに、Excelファイルがあるフォルダではなく、別のフォルダが開いてしまう問題もありました。

この場合は、

  • PDF選択時の初期フォルダ
  • 完成したPDFの保存先

を明示的に指定する処理へ変更しました。

取引先ごとに注文書の形式が違うこれも大きな課題でした。

取引先によって、

  • 注文番号
  • 品番
  • 数量
  • 単価
  • 金額
  • 納期

などが記載されている場所が違います。

そのため、すべての会社を1つの読み取りルールで処理するのではなく、

取引先ごとに専用の読み取り処理を用意する

方法にしました。

エラーが出たときもChatGPTへ相談できる

Excel VBAでは、実行中にエラーが発生することがあります。

私も、

  • テンプレートシートをコピーする処理
  • 印刷範囲を元に戻す処理
  • PDFを保存する処理
  • OCR結果を読み込む処理
  • エラーを表示する処理

などで処理が止まることがありました。

その場合は、

エラー画面のスクリーンショットや、黄色く止まったVBAコードをChatGPTへ送る

ようにしました。

ChatGPTへ相談するときは、次の情報があると原因を見つけやすくなります。

  • 表示されたエラーメッセージ
  • エラー番号
  • 黄色く止まったコード
  • 直前に行った操作
  • Excelのシート名
  • 本来期待していた結果
  • 実際に起きた結果

「動きません」だけではなく、

どの操作をしたら、どこで、何が起きたのか

を伝えることが重要です。

エラー対策も自動化へ組み込んだ

仕事で使用する仕組みは、正常に動く場合だけを考えるわけにはいきません。

そこで、次のような問題が発生したときには、利用者へメッセージを表示するようにしました。

  • OCRプログラムがインストールされていない
  • PDFを正常に読み取れない
  • OCR結果のテキストファイルが作成されない
  • 注文書から明細を取得できない
  • テンプレートシートが見つからない
  • PDFの保存に失敗した

原因が分からないままExcelが止まるより、

「何を確認すればよいか」

が表示された方が、利用者も対応しやすくなります。

別のパソコンでも使えるようにした

自分のパソコンだけで動いても、会社のほかのパソコンで使用できなければ業務改善にはつながりません。

そこで、OCRプログラムをインストーラー形式にしました。

インストーラーを実行すると、OCRプログラムがパソコン内の決められた場所へ配置されます。

Excel VBAは、その場所にあるOCRプログラムを呼び出します。

これにより、別のパソコンでも同じ仕組みを使いやすくなりました。

ただし、パソコンごとに環境が異なるため、次の確認が必要です。

  • マクロが有効になっているか
  • Excelファイルが「.xlsm」形式になっているか
  • OCRプログラムが正しくインストールされているか
  • PDFとExcelの保存先へアクセスできるか
  • 会社のセキュリティ設定で実行が制限されていないか

ChatGPTを使って感じたメリット

今回、ChatGPTを使ってExcel VBAの自動化に取り組み、特に便利だと感じた点を紹介します。

VBAの知識が少なくても始められる

VBAコードをすべて自分で書けなくても、

「何をしたいのか」

を説明すると、ChatGPTがコード案を作成してくれます。

分からないコードについても、

「この部分は何をしていますか?」

と質問できます。


エラーの原因を一緒に確認できるエラーメッセージや画面のスクリーンショットを見せることで、修正する場所を確認できます。

初心者にとって、エラー原因を自分だけで探すのはかなり大変です。

そこを相談できるのは大きなメリットだと感じました。

少しずつ機能を追加できる最初から完成形を作る必要はありません。

今回も、

PDF選択

↓

OCR読み取り

↓

Excelへの転記

↓

納品書番号作成

↓

PDF保存

というように、段階的に機能を追加しました。

実際の仕事に合わせて調整できる

市販ソフトでは対応しにくい、

  • 会社独自のExcelフォーマット
  • 独自の納品書番号
  • 独自のファイル名
  • 取引先ごとの注文書形式

にも対応できます。

これがExcel VBAを使う大きなメリットです。

ChatGPTを使うときの注意点

ChatGPTは非常に便利ですが、作成されたコードが必ず正しいとは限りません。

業務で使用する場合は、特に注意が必要です。

注意

OCRは誤読することがあります。注文番号・数量・金額は、必ず元のPDF注文書と照合する。

必ずテスト用ファイルで確認する

最初から本番のExcelファイルを使うのではなく、コピーしたテスト用ファイルで確認します。

元のファイルは必ずバックアップしておきましょう。

計算結果や転記内容を人が確認する注文番号・数量・単価・金額などは、完成した納品書と元の注文書を照合します。

特にOCRでは、似た文字を誤認識する可能性があります。

例えば、

  • 数字の「0」と英字の「O」
  • 数字の「1」と英字の「I」
  • 数字の「5」と英字の「S」
  • 数字の「8」と英字の「B」

などには注意が必要です。

一度に多くの機能を追加しない

複数の変更を同時に行うと、エラーが発生したときに原因が分かりにくくなります。

1つの機能を追加 → 動作確認 → 次の機能

という順番がおすすめです。

機密情報の取り扱いに注意する

会社名・取引先名・金額・住所・担当者名などが記載されたファイルを扱う場合は、会社の情報管理ルールを確認する必要があります。

ChatGPTへ相談するときは、必要に応じて、

会社名や個人情報を伏せたテストデータ

を使用するようにします。

Excel VBAで自動化しやすい仕事今回の納品書作成以外にも、Excel VBAとChatGPTを組み合わせることで、さまざまな作業を自動化できます。

例えば、

  • 請求書の作成
  • 見積書の作成
  • 売上データの集計
  • 日報・月報の作成
  • 複数シートのデータ統合
  • 決められた形式へのデータ転記
  • ファイル名の一括変更
  • PDFの一括作成
  • 一覧表の自動作成
  • メール添付用ファイルの準備

などです。

毎日・毎週・毎月、同じ操作を繰り返している仕事は、自動化できる可能性があります。

初心者がChatGPTでExcel自動化を始める手順

これからChatGPTを使ってExcel作業を自動化するなら、次の順番がおすすめです。

手順1 現在の作業を書き出す

まず、現在行っている操作を順番に書き出します。

例えば、

  • どのファイルを開くのか
  • 何を確認するのか
  • どのセルへ入力するのか
  • 最後に何を保存するのか

まで具体的にします。


手順2 自動化したい部分を決める

すべてを一度に自動化するのではなく、

最も時間がかかっている部分

から始めます。

手順3 Excelの見本を用意する

次のような情報を整理します。

  • シート名
  • 入力するセル
  • 保存形式
  • ファイル名のルール
  • 使用するフォルダ

手順4 ChatGPTへ具体的に依頼する

入力元・出力先・操作手順・例外条件をできるだけ詳しく伝えます。

具体的であるほど、希望する処理に近いコードを作りやすくなります。

手順5 テスト用ファイルで実行する

必ず元ファイルのコピーを作成し、少ないデータから試します。

手順6 エラーを記録する

エラーが発生したら、

  • エラーメッセージ
  • エラー番号
  • 止まったコード
  • 操作手順

を記録しておきます。

手順7 機能を一つずつ追加する

基本動作が完成してから、

  • 連番作成
  • PDF保存
  • 一覧表作成
  • ファイル名自動生成

などを追加していきます。

初心者向けのコツ

最初から全部を自動化せず、1つの機能が動いたら次へ進む。

今回の自動化で分かったこと

今回の経験から、ChatGPTは

「ボタンを一度押せば、仕事を全部自動化してくれる魔法の道具」

ではないと感じました。

しかし、

やりたいことを具体的に説明する

↓

コードを作ってもらう

↓

実際に動かす

↓

エラーを伝える

↓

修正する

という作業を繰り返すことで、プログラミング経験が少なくても、実際の業務に役立つ仕組みを作れる可能性があります。

大切なのは、最初から完璧を目指さないことです。

まずは、

「Excelのボタンを押したら、決められたセルへ文字を入力する」

くらいの小さな自動化から始めてもいいと思います。

それが動いたら、

PDF選択 → データ取得 → 納品書作成 → PDF保存

というように、少しずつ機能を増やしていきます。

まとめ

今回は、ChatGPTを使ってExcel VBAでPDF注文書から納品書を自動作成した流れを紹介しました。

今回作成した仕組みのポイントは、

  • ExcelのボタンからPDF注文書を選択
  • OCRで注文書の文字を読み取る
  • Excel VBAで必要な情報を納品書へ転記
  • 納品書番号やシート名を自動作成
  • 完成した納品書をPDFで保存
  • 取引先ごとの注文書形式へ個別対応
  • エラー画面をChatGPTへ見せながら修正

というものです。

手入力で行っているExcel作業も、少しずつ自動化できます。

「毎回同じ作業をしている」

「転記ミスを減らしたい」

「Excel作業の時間を短くしたい」

と感じている方は、まず現在の作業手順を整理して、ChatGPTへ相談するところから始めてみるのも一つの方法です。

私自身もまだ試行錯誤の途中です。

今後は、取引先ごとのOCR読み取り精度を高めながら、納品書だけでなく一覧表の自動作成や、さらに便利なExcel自動化にも取り組んでいきたいと思います。

関連記事

・Excel VBAで作業改善
・Excel VBAで事務処理を効率的に自動化した
・wordHolic用データをExcel VBAでINPUTBOX機能追加
・Excelで一覧表を自動作成する方法

無料テンプレート配布

ChatGPTでExcel自動化を進めるときに使える、書き込み式の指示テンプレートを無料で用意しました。

「何をどう伝えればいいか分からない」という方でも、項目に沿って入力していくだけで、ChatGPTへ具体的な依頼をしやすくなります。


テンプレートには、次の内容を入れています。

  • 現在の作業内容
  • 入力元と出力先
  • 自動化したい処理
  • ファイル名や連番のルール
  • 例外条件
  • エラー処理
  • ChatGPTへ伝えるときのポイント

Excel VBA初心者の方でも使いやすいように、PDF版とWord版の両方を用意しています。

「用途に合わせてお選びください」

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

jeneのアバター jene 技術部長

2人の娘を育てる父親のjeneです。
2人の娘と一緒に勉強しています。
週末は娘の好きなごはんを一生懸命に作るけなげなPaPaです。
金型設計責任者をしながら、VABマクロで作業効率化を業務として改善活動に行っています。
コロナ前には県の作業効率化のAI事業案件に採択されて独自AIを作ったこともあります。
このブログでは、実際に試して分かった子育て・学習・仕事改善・AI活用の情報を、初心者の方にも分かりやすく紹介しています。

コメント

コメントする

目次