こんにちは!
今回はChatGPTを使ってエクセルのVBAを作る方法を解説します。
エクセルのシート上で、選択したセルの文字数をそれぞれ調べて、隣のセルに入れるというプログラムです。
一昔前までは、グーグルや本を使って調べていました。
それらしいサンプルコードを探して、それをコピペして、試しに動かしても、エラーが出る。そのエラーの意味を調べて、コードを書き変える。
みたいなことをやっていたわけです。
ChatGPTを使えば、この手間がいっさいなくなります。初めて使ったとき、まじで、メッチャ感動しました!
プログラム初心者が1日かかっても書けないような処理が、一瞬でできてしまう。ほんとこれ大げさじゃなくて。
しかも、補足説明として、コードの意味まで教えてくれる。
そんなわけで、一度使ってみると、手放せなくなるChatGPT。では、実際にコードを書いてもらいましょう。
ChatGPTに質問する
ChatGPTに難しいことは一切ありません。さっそくChatGPTを開いて以下のように質問しました。
するとChatGPTが以下の返答してくれました。
以下は、VBA(Visual Basic for Applications)で「選択したセルの文字数」を調べるシンプルなコード例です。セルの内容が文字列である前提です。
Sub 文字数を調べる()
Dim selCell As Range
Set selCell = SelectionIf selCell.Cells.Count = 1 Then
MsgBox “選択したセルの文字数は ” & Len(selCell.Value) & ” 文字です。”
Else
MsgBox “1つのセルだけ選択してください。”
End If
End Sub
■ 使用方法
Excelで「Alt + F11」を押してVBAエディタを開きます。
「挿入」→「標準モジュール」を選択。
上記コードを貼り付けてください。
Excelに戻り、任意のセルを選択して、マクロを実行すれば文字数が表示されます。
必要に応じて「全角・半角の区別」や「改行コードの扱い」も調整できます。必要であればそのバージョンもお作りします!
これを元に実際にVBAを使ってマクロを作ってみます。
ChatGPTからの回答を元にVBAでマクロを作る
エクセルシートを開いて、セルに適当な文字を入力しておきます。
Alt+F11キーを押してVBAエディターを開きます。
挿入から標準モジュールを選択します。
ChatGPTが教えてくれたコードを貼りつけます。
エクセルのシートに戻って、文字が入っている適当なセルを選択します。ここではB5を選択しました。開発タブからマクロをクリックします。
文字数を調べるを選択して、実行ボタンを押します。
メッセージボックスが出て、「選択したセルの文字数は9文字です。」
と表示されました!
どうですか?めっちゃ簡単ですよね。
でも、これだけでは終わらないのがChatGPTの凄いところ。もっとプログラムを使いやすく修正していきます。
ChatGPTに修正依頼を出す
メッセージボックスが出るやりかただと、文字数を知りたい時にその都度、マクロを起動しなければいけないので不便に感じました。
あと、複数セルの文字数を知りたい時には、メッセージボックスは適さないので、セルに結果を入れるように修正します。
次のようにChatGPTに質問しました。
するとChatGPTは以下の返答をしてくれました。
了解しました!以下は、選択したセルの隣(右のセル)に、それぞれの文字数を表示するVBAコードです。
■ 選択セルの右隣に文字数を表示するVBAコード
Sub 選択セルの右に文字数を表示()
Dim cell As Range
Dim txt As String
For Each cell In Selection
If Not IsEmpty(cell.Value) Then
txt = CStr(cell.Value)
cell.Offset(0, 1).Value = Len(txt)
Else
cell.Offset(0, 1).Value = 0
End If
Next cell
End Sub
■ 補足説明
cell.Offset(0, 1) は、選択セルの 右隣のセル を指します。
IsEmpty で空白セルを判定し、空なら「0」を表示。
Len(txt) で文字数を取得しています(全角半角関係なく1文字=1カウント)。
■ 使用例
A列(選択セル) B列(出力)
こんにちは 5
Hello 5
(空白) 0
必要であれば「全角2文字、半角1文字としてカウント」するバージョンや、「改行込みでカウントする」などの応用バージョンも対応可能です。お気軽にどうぞ!
修正案を元にコードを修正する
ChatGPTからの修正案を元にVBAを修正していきます。といってもコピペして上書きするだけです。
修正したマクロを実行してみます。
複数セルを選択して、マクロを実行。
おお~!隣のセルにきちんと文字数が入っている。
空白のセルは文字数0になっています。エラーが出ず無事にマクロが動きました。
まとめ
今回はChatGPTを使って、VBAのコードを書いてもらい、マクロを作ってみました。
複数セルの文字数を調べて隣のセルに入れるマクロが完成しましたね。
めっちゃ簡単でしょ?
かかった時間は5分くらいですよ。
まずは、今回のように簡単な処理を作ってみることからはじめてみましょう。
VBAをやったことがない人でも、すでにバリバリに使いこなしてる人でも、きっと感動するはずですよ。
エクセルで「検索結果の文字が入っていたらセルと文字に色をつける」というマクロをChatGPTで作ってみました。興味がある人はお読みください。