生成AIを使ってコーディングできる
業務処理を行っている中で、「プログラムを作って処理を自動化できたらいいのに」と思ったことはありませんか?
何度も同じ作業を繰り返していたり、Excel上での転記やマージ作業が多く発生している場合には、エクセルマクロを組んでみようと考えたことがある方もいらっしゃるのではないでしょうか。
とはいえ、プログラムを組むのは、慣れていない方にとってはなかなかハードルが高い作業です。参考書を片手に挑戦したものの、途中で挫折してしまった経験をお持ちの方も少なくないかもしれません。
そんな中、生成AIの登場によって状況が大きく変わってきました。文章が生成できるのであれば、プログラムも生成できるのではないか、という発想です。
実際、生成AIは文章よりもプログラムの生成に向いているケースもあります。
というのも、文章は大量にAIで生成すると人による内容の確認が追いつかず、誤りや事実でない情報を含んだまま提出してしまうリスクがあります。一方でプログラムの場合は、生成後に実行して動作確認を行い、正常に動くかをテストするのが一般的です。
このように、文章校正よりもプログラムテストの方が確認やチェックが厳格に行われることが多いため、生成AIとプログラム作成は比較的相性が良いと考えられます。
とはいえ、生成AIを使えば何でもシステム化できるというわけではありません。大規模な基幹システムをAIだけで構築するのは、現時点では非常に難易度が高いと言えるでしょう。
当面は、「人手で行うには大変だけれど、外注してシステム化するにはコストが見合わない」といった業務に対して、生成AIによるプログラミング、つまり「バイブコーディング」にチャレンジしてみてはいかがでしょうか。
「バイブ」とは、「雰囲気」「ノリ」「感覚」といった意味の言葉です。
「コーディング」とは、プログラミング言語を用いて、コンピューターが理解できるソースコードを書く作業を指します。
「ノリでコーディング」と聞くと、あまり真面目な印象を持てないかもしれませんが、そもそもプログラミングに不慣れな方が本格的なシステムを構築するのはハードルが高いため、まずは比較的軽めの業務から試してみるのが現実的でしょう。
ちなみに、筆者は大学生時代に実験用のプログラムを書いていた経験はあるものの、社会人になってからは商用のプログラムを書く機会はありませんでした。
それでも今の時代、生成AIによる「バイブコーディング」なら、自分でも少し試してみたいと思えるようになりました。
何でプログラムを作る
コーディングそのものは、ChatGPTやCopilotといったAIツールでももちろん実施可能ですが、ClaudeやGoogle Geminiを用いて行われているケースも多く見られます。また、「Cursor」のようなAIエディタを使って作成する方もいらっしゃるでしょう。
慣れている方にとっては、CLI(コマンドライン・インターフェース)の方が効率的な場合もあります。その場合、Claude CodeやOpenAI Codex CLIなどが利用されることが多いでしょう。
こうしたツールの選択については、今後も技術の進化やトレンドの変化により、流行り廃りが出てくることが予想されます。
今回は簡単な例として、以下の2つのツールを使って試してみたいと思います。
①Canva AI を使って、Web上で簡単なアプリを作成
②Gemini を使って、データ処理を実施
①CanvaAIでWeb上の簡単なアプリを作成
今回は、CanvaのAIを活用してみたいと思います。Canva AIのページにアクセスすると、どのようなものがコーディングできるのかが、いくつかの例とともに紹介されています。
その中に、Web上で手軽に活用できそうな例があったため、試してみることにしました。今回は、「クライアントと共有できるインタラクティブな価格計算ツール」に挑戦してみます。
たとえば、自社のサービスに対して料金表が用意されており、複数のオプションによって料金が変動するようなケースでは、紙やExcelの料金表では複雑になってしまうことがあります。そのような場合、Web上で顧客が選択肢を選ぶことで、料金が自動的に表示される仕組みがあると、とても便利です。

そうすると、Canva上にコードを生成するためのプロンプト例が表示されました。今回は、カメラマンの撮影時の時給や、編集、アルバム作成などの料金表を作成してくれる内容のようです。いわゆる「料金シミュレーター」として活用できる形式になっています。

提示されたプロンプトを少し修正して、日本円や日本語に変更して、「コードを生成」してみます。
【変更したプロンプト】
ビジネス向けのスマートでレトロな価格計算ツールを作成します。例として「村上写真館」から始めます(セッション:2.5万/時間、編集:5千円/画像、アルバム:1.5万円~5万円)。完全にモバイルに対応し、非機能的なボタンは省いて作成します。
以下のようなページが生成されました。
時間や写真枚数などを選択していくと合計料金が計算されました。

実際には、裏で大量のコードが生成されていますが、コードの知識がなければ、確認することもなく、デザインや操作感が不満であれば、改めて日本語で指示し直すことで、コードが修正されていきます。

そして、実際に作成した料金シミュレーターをそのままWebで公開することができます。今回の場合は、そのままCanva内で公開してみます。

URLが付与されて、無事にインターネット上で公開されました。

実際にWebで公開されたページを以下のボタンから確認できます。Canva内に作成されたURLです。スマホで料金表が動くか確認してみてください。
村上写真館料金表ページへ
Geminiでデータ処理を実施
続いて、GoogleのGeminiを活用してデータ処理を行ってみました。筆者は日頃の予定管理にGoogleカレンダーを使用しています。そのため、1年を振り返る際に、
・今年は何回セミナーを実施したのか
・コンサルティングは何件あって、合計で何時間対応したのか
・窓口相談では何時間対応していたのか
といったことが気になってきます。
Google Workspaceの上位プランでは、こうした情報を集計する機能が用意されていますが、私の契約しているプランでは、その機能は含まれていませんでした。そこで今回は、バイブコーディングによって、Googleカレンダーのデータを集計してみたいと思います。

まず先に今回作成しようと考える最終的な出力結果を以下に示します。1枚目のシート「イベント出力」にGoogleカレンダーのタイトルや作業時間を出力してもらいます。
その上で2枚目のシート「合計シート」で集計してもらおうと思います。件数の他、作業時間は分ではなく時間に変換してもらい、端数処理をして、タイトル行や集計行に色を付けたいと思います。

それでは、実際に指示したプロンプトを掲載します。
1.GoogleカレンダーからGoogleスプレッドシートの「イベント出力」というシートに出力するGASのコードを書いてください
2.複数のカレンダーIDを一括で出力できるようにして
3.終了日時から開始日時を引いた「作業時間(分)」の項目を追加して。
4.開始日と終了日を入力できるようにして。
5.カレンダーIDは出力せず、カレンダー名を出力して。
6.カレンダー名ごとに件数と時間を集計して。
7.集計結果を新しいシートの「合計シート」に出力して。
8.「作業時間(分)」を60で割って、「作業時間(時間)」で出力して。
9.集計結果の作業時間(時間)は小数点第1位が出たら四捨五入し、整数で表示して。
10.数値は、3桁ごとにコンマ区切りを入れて。
11.集計結果のヘッダ行を背景黒で白文字にして。
12.合計行は背景を水色で、黒文字で出力して。
少し長くなりますが、番号に従って順に解説します。
1.Googleカレンダーから「イベント出力」シートに出力をお願いしました。GASというのはGoogleAppScriptのことです。エクセルでいうとVBAに当たるでしょうか。
2.ここで1.の内容を実行しましたが、最初は複数あるカレンダーのうち「コンサル」しか出力できませんでした。筆者のGoogleカレンダーでは作業内容に応じて複数のカレンダーを使い分けているので、複数のカレンダーIDを一括で出力できるようにお願いしました。
実際は、プログラムに、Googleの自分のカレンダーIDを複数追記するようにしています。
3.Googleカレンダーでは開始日時と終了日時の項目はありますが、実際の作業時間はありません。そこでプロンプトで指示し、引き算して作業時間を計算してもらいました。
4.次に実行すると、プログラムが終了するまでに長い時間がかかりました。筆者はGoogleカレンダーを18年前から使っていたので、データ量が多くなっていたためです。そのため自分が出力したい期間を指定できるようにしました。
開始日: 2024/1/1、終了日:2024/12/31 と1年間を指定できるようになりました。
5.カレンダーIDは英数字の羅列でわかりにくいため、カレンダー名のみを出力してもらうようにしました。
6.カレンダーIDごとに件数と時間を集計してもらいました。
7.集計した結果を新しいシートとして、「合計シート」に出力してもらいました。
8.合計シートで、作業時間が分表示では数字が大きくなり過ぎたので、60で割って時間表示にしてもらいました。
9.端数がでたら、四捨五入して整数にしてもらいました。
10.数値は3桁ごとにコンマ区切りを入れてもらいました。
11.最後に集計結果の見た目を整えました。集計データのヘッダを、背景黒で白文字に変更してもらいました。
12.合計行は、背景を水色で黒文字表示に変更してもらいました。
これらの指示を実行していくと、前述の「合計シート」の表が出力されました。
1〜12の各処理についても、日本語で書かれた内容であれば、プログラミングの経験がない方であっても、特に問題なく理解できるのではないでしょうか。
本来、プログラムを作成する際には、全体の整合性が非常に重要となります。
そのため、設計段階でしっかりと時間をかけて、論理的な矛盾や抜け漏れがないかを確認したうえで、コーディング作業に入るのが一般的です。
しかし「バイブコーディング」では、もっと気軽に、日本語で思いついた順に処理したい内容を伝えるだけで、プログラムが少しずつ形になっていきます。
ノリや感覚を重視しながらも、実用的な成果が得られるのが特徴です。
どこでプログラムを実行するか?
前述のCanvaAIでは、Canvaの中でプログラムを実行してインターネットに公開ができました。
今回の、GeminiでのコーディングはGASで行っていますので、処理したいスプレッドシート上で、拡張機能のAppScriptのところに、貼り付けています。

以下の画面で、出力したGASのコードを貼り付けて実行します。

Googleの権限付与などアクセス許可が求められます。個人のGoogle環境で実施する場合は自由ですが、組織内のGoogleを使うときの管理権限などは管理者に確認が求められます。

まとめ
生成AIが登場して以来、日々AIに関する話題が尽きることはありません。一方で、少し使ってみたものの、日本語の生成結果に期待していたほどの精度が得られなかったり、仕事の効率化にはあまり繋がらず、「こんなものか」とがっかりしてしまった方もいらっしゃるかもしれません。
ただ、文章の生成はあくまで業務の一部分にすぎません。実際に生成AIを業務で活用するためには、社内システムと連携させる必要があり、そのための導入コストや調整の手間がネックとなり、導入に踏み切れない事業者も多いのが現状だと思います。
そうした中で、今回ご紹介してきた「バイブコーディング」は、テキスト生成AIの延長線上で手軽にちょっとしたプログラムを作成できる手法であり、業務の効率化に貢献できる可能性があります。
もちろん、大規模なシステム構築には向いていないかもしれませんが、「ちょっとした業務処理をAIに任せる」というよりは、「AIによるコーディングで自ら処理を完了させる」という考え方もあってよいのではないでしょうか。

