ChatGPTでVBAコードを自動出力|プログラミング初心者向け
皆さんはプログラミングを勉強していて、コードの書き方やエラーの原因がわからずに困ってしまった経験はないでしょうか。
隣にプログラミングに詳しい先輩や仲間がいて、相談しながら勉強を進められたらとても心強いですが、必ずしもそのような環境にいらっしゃる方ばかりではないかと思います。
こんなとき、昨今の生成AIツールを代表するChatGPTを活用できれば、プログラミング版の最強の家庭教師に成り代わってくれます。
対象のコードが何を意味していて、どんな書き方をしているのか、なぜエラーになっているかなどを対話を繰り返しながら学習できるのです。
そこで本記事では、ChatGPTを活用してVBAによる業務自動化を簡単に実現するテクニックをご紹介します。具体的なアクションを3つのステップに分けてわかりやすく解説していきますので、VBAに限らず、プログラミングの実務で初見の何かに遭遇したときの対処法としてぜひ参考にしてください。
↓本記事の内容を動画でもご覧いただけます↓
YouTubeメディア「ユースフル/スキルの図書館」を運営するユースフル株式会社では、企業内でExcel VBAやRPA(PAD)などを用いた業務効率化を推進するための eラーニングコンテンツの提供や個社研修を承っています。
設計部門や情報システム部門などチーム全員のVBA基礎力を底上げする講座から、IT・DX人材育成にコミットした実務直結の徹底活用コースまで、現在非常に多くのクライアント企業様からお引き合いをいただいております。
講師の数にも限りがありますので、まずはお気軽に無料相談フォームよりお問い合わせください。
目次[非表示]
Step.1 難しい言葉を解説してもらう
まずは、難しい専門用語を質問することから始めていきましょう。
VBAを勉強していると「オブジェクト」や「プロパティ」、「メソッド」など見慣れない言葉がたくさん登場します。
これらの意味を、ChatGPTへ質問してみるのです。
VBAのオブジェクトとはなんですか?
結果、VBAにおいて「オブジェクト」が指している意味やメリットを返してくれます。
これだと従来のGoogle検索とあまり変わりませんが、ChatGPTのすごさは「対話」をしながら質問ができる点です。
たとえば、返ってきた説明がいまいちわかりにくかったときに、もっとかみ砕いて補足してもらうこともできますし、こちらの認識があっているかを確認することもできます。
以下は追加質問の例です。
▼もっとわかりやすく
小学生にもわかりやすく教えてください。
▼認識の確認
セル、シート、ブックという理解で合ってますか?
▼対比で確認
オブジェクトとプログラムの違いを教えてください。
こうして様々なアプローチで答えを引き出すことにより、見慣れない難解な用語でも理解を深めることができます。
たとえChatGPTからの最初のアウトプットで「なるほど!」と思えなくても、あきらめずに質問の角度を変えてやり取りしてみましょう。
Step.2 使用例ややりたいことからコード・計算式を提案してもらう
難しい言葉を解説してもらった後は使用例ややりたいことからコード・計算式を提案してもらいましょう。
機能の使用例を聞いたり、やりたいことの実現方法を聞く、応用として他の言語に変換してもらうことができます。それぞれ詳しく見ていきましょう。
①機能の使用例を聞く
一般的な知識だけでなく、より踏み込んだ情報を引き出すことができます。
たとえばVBAには「条件分岐」という概念がありますが、この条件分岐がどのようなシーンで使われるのか、慣れないうちはイメージがわかないかと思います。
そこで、以下のような質問をします。
VBAで条件分岐が使われる事例を教えてください。
これにより、条件分岐をテーマとしたユースケースのパターンがいくつか返ってきます。
- 条件によって処理を分岐する場合
- 複数の条件によって分岐する場合
上記のサンプルでは使用例のテキスト情報とともにコードの提案もしてくれていますが、上記の質問ではコードが出力されないケースもあります。
そんなときは、「条件分岐を使ったコードを3つ教えてください」など、コードの提示を誘導する質問をダイレクトに送ってみましょう。
②やりたいことの実現方法を聞く
機能や用語の使用例を引き出すアプローチに加えて、ユーザーが"やりたいこと"から解決策を提案してもらうことも可能です。
たとえば、Excelシートの特定のセルに値を入力するコードを求めるときは、次のように質問します。
Excelの特定のセルに、値を入力するVBAコードを教えてください。
例:セルA1に"Hello"と入力する。
結果、ChatGPTは入力された質問に基づいて、適切なVBAコードを提供します。上記の質問に対する回答例は次のようになります。
Sub InputValue()
Range("A1").Value = "Hello"
End Sub
さらに、ChatGPTに別の質問をしてみます。
VBAでExcelとWordを連携する方法について教えてください。
今回のケースでは、①ExcelからWordへデータを連携する、②WordからExcelへデータを連携する iいずれの方法も、コードと解説付きで返してくれます。
実務でやりたいことは思描けているものの、どうすればそれが実現できるのかがわからないときに、自然言語で質問できるのはとてもありがたいですよね。
これらのアウトプットを引き出すには、あらかじめVBAで実現したいことを明確にしておきましょう。具体的なタスクや目標を設定することで、適切なアドバイスを得やすくなります。
すでに試したコードや、現在の作業状況を共有すると、どこに問題があるのかを特定しやすくなります。質問が具体的であるほど、的確な回答を得やすくなります。
③応用編|他の言語に変換してもらう
プログラミング業務に慣れてくると、異なる言語が使われている複数のシステムの開発や管理を任されることがあります。
これまでVBAで行っていた処理を、別のシステムでも同じように実行したいとなったときに、VBAのコードを他の言語に変換するといった作業も担ってくれます。
下記のコードの内容をPythonで書き直してください。
#コード
●●~
VBAのコードを貼り付けるだけで、瞬時にPythonコードが出力されます。
プログラミングを勉強する過程でも重宝できる使い方ですので、ぜひ試してみてください。
Step.3 業務自動化マクロを作成してもらう
ここまで取り上げた簡単なコードだけでなく、実務で使う業務自動化マクロも一瞬で作成できてしまいます。
①コードの作成
たとえば、以下のようなケースがあったとします。
Excelのシート上にあるすべての図形をPowerPointに貼り付けるマクロを作ってください。
ChatGPTに上記の質問をするだけで、コードの雛形を一瞬で返してくれます。
あとは出力されたコードをコピー&ペーストし、実際に使っているExcelのワークシート名やPowerPointの保存場所などを調整するだけで、かんたんに実行できてしまうのです。
②コードの読み取り
既存のVBAコードから、その動作内容をChatGPTに説明してもらうこともできます。
実務で使われているコードを貼り付け、以下の質問をしてみます。
下記のコードの概要を教えてください。
#コード
●●~
結果、そのコードによってどのような処理が行われているかを言語化して示してくれます。
このような切り口で活用すれば、皆さんの職場で使われている社内用のマクロの保守や修正がずっと効率的になりますよね。
ChatGPTとExcelの連携で効率化できる業務の例
VBA以外にも、ChatGPTとExcelの連携で効率化できる業務の例がいくつかあります。
- ChatGPTを使って大量のデータを自動で入力し、Excelでフォーマットを整える。
- 定期的なレポートの作成にChatGPTを活用し、Excelでデータを集計・グラフ化する。
- ChatGPTにレポートのテンプレートを生成させ、Excelで実際のデータを埋め込み効率的にレポートを作成する。
- ExcelのデータをChatGPTに渡し、データ解析や予測を行う。(ChatGPTがデータのトレンド分析や異常値検出を支援し、Excel上での可視化やレポートに活用できる)
ChatGPTに関数やVBAコードを出力してもらうときのコツ
ChatGPTに関数やVBAコードを出力してもらうときのポイントとして、指示文の作成方法、結果の確認方法、そして結果が間違っていたときの修正方法があります。以下では、それぞれのコツを詳しく見ていきましょう。
指示文の作成方法
指示文を作成するポイントは、まず具体的な要件を明示することです。曖昧な指示よりも、具体的な要件を詳細に伝えることで、より正確なコードが生成されます。
悪い例
「エクセルで計算する関数を作ってください」
良い例
「エクセルでA1セルとB1セルの値を加算し、その結果をC1セルに表示するVBAコードを作ってください」
また、サブルーチンが使用する変数や引数を明確に指定することも重要です。さらに、サブルーチンの出力がどのようになるべきかを具体的に説明することで、より正確なコードが生成されます。
結果の確認方法
結果を確認するポイントは、コード全体を一度にテストするのではなく、部分ごとに動作確認を行うことです。ステップ実行やブレークポイントを活用することで、コードの問題箇所をより簡単に特定できます。また、コメントや変数名が分かりやすいかどうかもチェックしておきましょう。これにより、後で修正する際に役立ちます。さらに、サンプルデータを使用してテストすることで、より安全に確認することができます。
結果が間違っていたときの修正方法
実行時に発生したエラーメッセージを提供するだけでなく、問題のあるコード部分を示すことが重要です。期待する出力や動作と、実際に得られた出力や動作との比較を説明します。さらに、サンプルデータや具体的な入力例を示し、それに基づいて期待する結果を明示します。
具体的な要件やエラー情報を提供することで、正確なコードの生成や修正が可能になります。このアプローチにより、問題の特定と解決が効率的に行うことができます。
まとめ
いかがでしたか?
今回は、ChatGPTを活用してVBAによる業務自動化を簡単に実現するテクニックをご紹介しました。
コーディングに長けた人でさえも、プログラミングに詳しいエンジニアの先輩がとなりにいてくれて、一緒にコードを書いているような感覚になるほど、ChatGPTのアウトプットは良質です。
プログラミングの勉強をしたり、VBAで業務を自動化していくにあたっての強力な武器になりますので、本日解説したポイントをおさえた上で活用していきましょう。
また本記事では、初歩的な内容をかいつまんでご紹介していますが、実際の現場で動作させる高度なコーディングには様々な知見や工夫が求められます。
「AIのアウトプット精度を高めながらプログラミング業務に取り入れていきたい」
「自分の会社の実務にどう活かせるか具体的に知りたい」
といったお悩みを持たれている方は、ぜひ無料相談フォームへお問い合わせください。
ユースフルでは、Microsoft×AI領域の実務活用に長けたコンサルタントチームが、貴社の課題や状況にあわせて最適な研修をご提案しております。実施可否が決定していなくても構いませんので、お気軽にご相談ください。