見出し画像

T21_VBAじゃなくてもイケる!Excel変換をChatGPTに丸投げする方法

こんにちは、こんばんは!シンパクト和です。

みなさん、Excelでちょっと面倒な作業に直面したことはありませんか?
通常の機能ではなかなか歯が立たないけど、VBAまで書くのは大変そう……。そんなときに頼りになるのがChatGPTです。
今回の記事では、「VBAを使わずにChatGPTで解決した事例」について紹介します。ちょっとだけやりたい作業や、フォーマットがころころ変わるような場合にかなり便利!

使用したモデルは 4o で、難しいことは何もないので、無料ユーザー、初心者の方でも気軽に試せる内容です✨



1. Excel機能の限界とGPTのスーパープレイ

Excelの知識がしっかりあれば、大抵のことは標準機能でどうにかできます。
ポイントは、「これはちょっとやりにくいな」と感じる場面。
そんなときこそ、生成AIの出番なのです。改行区切りでの特殊なセル分割など、微妙に面倒な処理が求められるときに、GPTを活用することでサクッと解決できる可能性があります。

こういうとき、ガチガチにVBAを書くか、
あるいは工夫してGPTに指示して変換してもらうか
の二択だと思います。判断基準は以下のとおり。

  • VBAで解決する場合

    • 処理を何度も自動で繰り返したい

    • 作業手順を完全に固定化したい

    • コードをきちんと管理できるスキルがある

  • GPTで解決する場合

    • 処理が1回きり、もしくは回数が少ない

    • フォーマットが頻繁に変わるかもしれない

    • VBAを書いてテストするのが面倒くさいと感じる

    • とりあえず“できるかどうか”だけ試してみたい

私は、パワークエリなどを含むExcelのスキルをある程度活用すれば、大抵の作業はEXCELで解決できます。
ただ、それでも「もっと楽な方法があるんじゃないか?」とつい考える性格です。
しかし、今回のように形式がコロコロ変わる案件(提出の書式がEXCELをただの清書ツールに見立てた形式)では、VBAを使用しない限り自動処理はできません。
そんなときこそ、ChatGPTのような生成AIを活用することが、最も効率的ではないかと思います。
生成AIの良さは、VBAにはない柔軟性です。


2. 書式を直さないと!時間割ソフトの出力形式と県の報告書式の違い

今回の事例として、時間割作成ソフトが出力するデータを、別の提出形式に合わせて変換する必要がありました。具体的には以下のような状況です。

  1. 時間割ソフトが吐き出すデータが、行と列の並び順が県へ提出する書式と異なる

  2. 教科名と、クラス名を分けてセルへ入力しなければいけない

提出したい形式(行:◯時限、列:担当者名)、教科名とクラス名が別セル
時間割ソフトから出力(行:担当者名、列:◯時限)、教科名とクラス名が同一セル

1の問題解決は楽勝!
EXCELに慣れている人であれば、行列の入れ替えで終わりと考えると思います。私もそうです。

早速やりました。ここで、問題が…

行と列の入れ替え後

県の報告書式は「教科名」と「担当クラス」が別々のセルで上下に別れているのです。

県の報告書式

まあ、「パワークエリの”区切り記号(改行)による分割”で行方向に分割で済むかな。」と思いましたが…

この手法だと、すべてのセルが同様の形式で埋まっていれば上手くいきそうですが、空白セルが混じっているとだめでした。(詳細は省略)

「Excel自体にはある程度慣れている」私でも、「これはVBAでやるか手作業じゃないと無理……?」と思うレベルの作業がこの部分でした。

ここで、気持ちを切り替え
「GPTにやらせてみよう」と思い立ち、テストしてみることに。


3. ChatGPT、出番です

適切な指示を出すために、Excelの仕組みや構造を理解していることがとても役立ちました。 私自身、日頃からExcelを使い込んでいるからこそ、「どんな形でデータを出力してほしいか」「何が処理のネックになるか」といったことを具体的に伝えることができました。
Excelの知識がしっかりあればあるほど、生成AIの力も引き出しやすくなる——これはGPTを使っていて強く感じるポイントです。

実際にGPTにやらせる場合は、どのように変換してほしいかを具体的に伝えることがポイントです。
初回はやりとりを何度か繰り返し「もう少しこうしてください」という微調整が必要でしたが、最終的にはほぼコピペで仕上がる状態にたどりつけました。


3.5 実際にGPTで解決した例を見てみよう

ここでは、実際にGPTを活用して解決した事例を、使用プロンプトと結果の画像つきで紹介します。再現性を高めるための注意点も記していきます。
なお、以下の方法は何度かやってみて再現性があります。
送信したあと、紹介のような結果が得られないときは鉛筆マークをおして、何も変更せずにもう一度送信してください。

1.まず、元データの1行目にindex行を挿入します。理由は後述します。

2.エクセルシートをChatGPTへドラッグアンドドロップして「開いてプレビュー」と入力。

これ以降、右上の両方向矢印でデータを開いた状態で指示を入力していくと楽。

左側にデータ、右側にプロンプト入力で、結果を確認しながら作業できるのが便利です。

右上の両方向矢印でプレビューを開きましょう

3.「行と列を入れ替えて」と入力

開いた状態だと左側にシートのデータ、右側にチャット欄が表示される
行と列が入れ替わった

このとき、ヘッダーにあったindexが一番左側に表示されます。この列は、エクセルシートに出力したときになくなります。(ヘッダーをみると、indexの上に数字がない)
つまり、操作1で1行目にindex行(あるいは空白行)を挿入していなかった場合、曜日列が消えてしまいます。

4.「1行目をヘッダーにして」と入力。
ヘッダーは列のタイトルにあたるものなので、EXCELに出力したあとも表示されます。1行目をヘッダーにする理由は、1行目のデータが列タイトルとして、ふさわしいからです。
この時点で自動で、index 列が消えます。

5.曜日列を選択して、「空白セルを上のセルの値で埋めて」と入力
ここの作業はやらなくても目的達成できます。

曜日列の空白が曜日で埋まります。
時限の列に小数表示があり、気になるときは時限列を選択して「整数にして」と入力。

ここがChatGPTならではの良さ

県の報告書式は「教科名」と「担当クラス」が別々のセルで上下に別れていましたね。
ここが今回の最大のポイントです。
画像のように、この段階で1つのセルに、教科名とクラス名が「改行」で区切られて入ってます。

これを、行方向に分割して上下のセルに表示することが、私のEXCELの力量では無理でした。1列ずつなら、前述のパワークエリの機能でできます。

6.ここで、分割処理をしたい列をshitキーを押しながら複数選択して、下記のように入力

教科名:現国
クラス名:1B
のように、同じセルに教科名とクラス名が入っています。
教科名と、クラス名を分割して、
上のセル:教科名
下のセル:クラス名
のようにして

7.報告書式へコピペできる形式に

8.「EXCEL形式で出力」と入力

開いてみるとこんな感じ

画像のように、GPTが返してくれたデータをそのままExcelにコピペするだけで、狙った形に整形できました。ちょっとした整形作業でも、手でやると面倒な処理が、GPTに頼むと一瞬です。


4. なぜ「日頃から体験」しておくと便利か

GPTを活用するコツのひとつは、どのような指示を出すと狙った結果が返ってくるかを日常的にちょこちょこ試して体験を積むこと。
たとえば「Excelにコピペできるように改行区切りにしてほしい」という指示を知らなかったら、何度も試行錯誤するはめに。
でも、日頃から実践して体験を積む習慣をもっておくと、“ああ、こういうときはこういう指示を出せばOKだな”とアイディアが湧くようになります。

  • GPTに出す指示のパターンや表現を、自分用の“レシピ帳”としてまとめておくと便利

  • 小さな試行錯誤を積み重ねることで、GPTとExcelを組み合わせた応用力が自然と育つ


5. VBAとGPTの使い分けポイント

今回のように、ちょっとだけ面倒な変換を行いたいならGPTはかなり便利です。
一方で、毎回定型で作業しなきゃいけないなら、VBAで書いたほうが圧倒的に効率がいいこともあります。
つまり、こんな感じで使い分けるとよいでしょう。

  • GPT向き

    • 思い立ったときに1回だけやる作業

    • フォーマットが変動的で、VBAを修正するより指示を変えたほうがラク

    • そもそもVBAの基本を知らない

  • VBA向き

    • 月に何度も、もしくは毎日同じ処理を繰り返す

    • 社内でほかの人にも使ってもらうので、自動化されたツールにしたい

    • 処理が膨大でGPTに出力させるよりもVBAが早そう


6. まとめ

  • Excelの標準機能だと工程がかかる作業、実現が難しい作業は、VBAを使うかGPTでやるか、二択になることが多い

  • もし作業頻度が少ない、または形式がコロコロ変わるなら、GPTの柔軟性は強い味方になる

  • 一方、定期的に大量のデータをさばくならVBAで自動化したほうが楽

  • GPTを使う際は、日常的にちょこちょこ試して「指示の仕方の体験を積んでおく」と応用がきく

どちらが正解かは、あなたの状況次第です。まずはGPTで試してみて、「よく使う」ならVBA化する、という流れもアリですね。
ChatGPTにVBAコードを書いてもらえばいいわけですからね。
自分に合った最適解を見つけて、作業をどんどん効率化しちゃいましょう!

手作業でやっては、次につながらない。
効率化アップのための実践を日常の仕事の中に組み入れていきたい。
シンパクト和でした。

最後までお読みいただきありがとうございます!
お時間あれば、ご感想いただけると幸いです。


いいなと思ったら応援しよう!

シンパクト和先生 チップ一枚の魔法、ライターが泣いて喜びます!