こちらがチャットで質問したことの答えを返してくれるAI、ChatGPT。
プログラミングの書き方も答えてくれます。
それなら今後はプログラミングのスキルがいらなくなるのかどうか。
実験した結果をお伝えします。
ChatGPTとは?
ChatGPT、OPEN AIによって開発されたAI。現状はユーザーのフィードバックを集めるためか無料です。誰でも利用できます。
ユーザー登録の方法は、ネットで検索していただくことしてここでは省略します。
登録後、チャット形式で質問を入力すると、こちらの疑問や質問に答えてくれます。
たとえば、WordPressで動画販売をするにはどうすればいい?という質問には、こう答えてくれました。
Easy Disital Downloadというプラグインはあります。詳細な設定はありますが、きっかけとしては正解でしょうね。他の3つは触ったことないですけど、それも教えてくれました。
今度やるPower BI のセミナーのことも相談してみました。もうある程度は決まっていますけど。
データの共有は前提としていませんし、入門レベルむずかしいことはやらないです。
ただ、話したいこと、構成の流れはけっこう的確でした。
今度は子どもたちに聞きたいことないかを聞いてみると質問あり。これも聞いてみました。
まずは長女(14)の質問。
「おとなになって役に立たない勉強をなんでやらないといけないのか?」
親も疑問に思うことをAIにも聞いてみたところ。
「やっぱ考える力だよ。」「うん、確かに。」と親子で納得。
次は長男(7)の質問を。
けっこう的確というか無難な回答です。ただ、ドラゴンボールZとは情報が古くないすかね?
そんな中、ChatGPTはコードも認識してくれるということで、プログラミングの書き方もきっちり教えてくれるのか?
実験してみました。
ChatGPTでプログラミングできる?
まず、プログラミングのことを知っているか聞いてみました。
まずはマクロのこと。
「デベロッパー」タブというのは「開発」タブのことでしょうね。コードを書いたら保存するところまできっちり書いてあるのは想定外。「ダウンロード」→「開始」ってなんだろ?とは思うものの、だいたいはあっています。
次にマクロでオートフィルターを使うにはどうしたらいいか?を聞いてみたところ、事例のコードにコメント(「’」から始まる説明文)付きです。
コードもコピーして使えるようになっています。
ただ、コピーしてもそのまま使うことはできないでしょう。この事例を参考に動きを試してみるというのはありでしょうね。
次はこの記事にまとめている内容を聞いてみました。
Excelマクロでオートフィルター 期間を選んでデータを取り出す方法。 – GO for IT 〜 税理士 植村 豪 Official Blog
質問すると、しばらく静止状態になりますが、
その後、このように教えてくれました。
まぁ、そうなんですけど、通常の操作と同じような説明でマクロの要素が1つもないです。
改めて聞いてみると、今度はコードを教えてくれました。
ただ、これをそのままコピーして実行しても、エラーになります。
質問ではどうしても伝えにくい部分があります。
- シートの名前が違う
- 保存先のパス名が違う
- オートフィルターを掛けたあとにコピーするデータの範囲が違う
といったところは修正する必要があるでしょうね。ここは人がやらないといけません。
ならば、と今度はExcelからフィルターをかけたいデータをコピペして
ChatGPTのチャット欄に貼り付けて、一度見てもらってから、その上で質問をしてみました。
すると、文字化けしながらもすごーく長いマクロが書き出されました。バグかな?
ただ、左側にある履歴からもう1度選び直してみると、きれいに表示されていました。
やはり「マクロのコードを書いて貼ってね」という流れです。
ChatGPTが教えてくれたマクロがこちらです。今度はなぜかコメントが英語です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Sub FilterByMonth() 'Define variables Dim ws As Worksheet Dim rng As Range Dim strMonth As String Dim saveAsName As String 'Set the worksheet you want to filter Set ws = ThisWorkbook.Sheets("Sheet1") 'Set the range you want to filter Set rng = ws.Range("A1:F6") 'Prompt the user to enter the month strMonth = InputBox("Enter the month you want to filter by (e.g. January)") 'Filter the range by the month entered rng.AutoFilter Field:=1, Criteria1:="*" & strMonth & "*" 'Prompt the user to enter the name for the new CSV file saveAsName = InputBox("Enter the name for the new CSV file") 'Save the filtered data as a new CSV file rng.SpecialCells(xlCellTypeVisible).Copy Workbooks.Add ActiveSheet.Paste ActiveWorkbook.SaveAs Filename:=saveAsName & ".csv", FileFormat:=xlCSV ActiveWorkbook.Close End Sub |
この時点で「なんのこっちゃ」となるでしょうね。
これをわかるように日本語にしてみると、
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
Sub FilterByMonth1() '■ 変数の宣言 Dim ws As Worksheet Dim rng As Range Dim strMonth As String Dim saveAsName As String '■ フィルターをかけたいシート Set ws = ThisWorkbook.Sheets("Sheet1") '■ フィルターをかけたい範囲 Set rng = ws.Range("A1:F6") '■ 指定したい月(英語:1月ならJanuary)を伝える strMonth = InputBox("指定したい月を教えてちょ") '■ 指定した月でオートフィルターをかける rng.AutoFilter Field:=1, Criteria1:="*" & strMonth & "*" '■ CSVファイルで保存する名前を伝える saveAsName = InputBox("Enter the name for the new CSV file") '■ CSVファイルで保存するデータをコピーする rng.SpecialCells(xlCellTypeVisible).Copy '■ 新しいブックの追加 Workbooks.Add '■ シートに貼り付け ActiveSheet.Paste '■ CSVファイルで保存する ActiveWorkbook.SaveAs fileName:=saveAsName & ".csv", FileFormat:=xlCSV '■ ファイルを閉じる ActiveWorkbook.Close End Sub |
ただ、これでもうまくフィルターができませんでした。あと、このマクロは正直使いにくいです。
そのままコピペして、確かに今回はマクロは動くのですが、データをうまくフィルターができないですし、
最終行までのデータをオートフィルターの対象に含めていません。(データが多すぎてエラーになるためChatGPTにも366行目までデータがあることを伝えておらず)
そこは人が対応することになります。
さらに、ファイルの保存先の名前を何にするかを毎回聞かれますし、
すでに同じ名前のファイルがあると、上書き保存するかどうかも毎回確認されます。
となるとかえって手間です。現状はこのあたりがAIの限界でしょう。
でも、人がプログラミングするなら、保存先のパスをあらかじめ決めておくことができますし、上書き保存の警告も省略するようなコードを書くことができます。
ある程度わかっていないと、ChatGPTが書いたマクロをコピペしても動かなければ、対処もできません。
マクロの書き方は1つでもないですし、じぶんのやりたいようにやれるのが人のいいところです。
「これはいる」「これはいらない」とじぶんのやりたいようにやりたいものです。
そうだとすると、やはりある程度のプログラミングの勉強は必要になるだろうというのが結論です。
ChatGPTとプログラミングでどう付き合うか
いっぽうで、ChatGPTの登場でプログラミングの敷居は下がったとも考えています。
やりたいけどどうやったらいいかわからないというときに、ChatGPTに聞いてみるというのはありかなと。
ChatGPTに聞けば、事例なり、コードなり、とりあえずの材料が出てきます。
そこからわからないところを調べたり、動かしてみて反応を見る、違ったら変えてみるということでプログラミングを学ぶことはできるでしょう。
GAS(Google App Script)について、この記事のネタをもとにChatGPTに質問をしてみました。
GAS(Google App Script)でGmailの必要部分だけを抽出する方法。 – GO for IT 〜 税理士 植村 豪 Official Blog
すると、こんな回答が。今回はけっこう親切な回答です。質問の仕方も影響しているでしょうね。
そのままコピペして、動かしてみると上手くいきました。
ただ、出てくるのはinboxに残っているメールです。そりゃそうです。ラベルがinboxになっていますから。
でも、それをもとに「そういや、下の方に特定のメールタイトルを抽出したい場合には、検索クエリを指定して」って書いてあったなと。
「じゃあメルマガのタイトルを…」ということで検索内容を変えてみれば、
ほしい情報を取り出せました。
今使っているGASをとは違う書き方です、比較してみるとこれはこれで面白いかなとも。
とはいえ、書いてあることの意味がわからないと、応用するのはやはりきびしいでしょう。
チャットで伝えようとしても、細部までつたえるのはカンタンではないですから。
プログラミングが上手く動いたら、これをきっかけに1つずつ動かして反応を見ながら勉強するというのはありかと。
書く速さでは勝てませんが、ライバルでもなければ、仕事を奪われるわけでもないでしょう。
プログラミングを学びたいというならば、ChatGPTとは、上手く付き合っていくのがいいでしょうね。
AIができることがわかれば、人はそれ以外のことをやればいいわけですし、そこは役割分担です。
試してみると、けっこう楽しめます。
【編集後記】
昨日はオフ。とあるものをネットで購入し、それとともに付属品も。なかなかの投資になりました。到着がたのしみです。
【昨日の1日1新】
※「1日1新」→詳細はコチラ
Google for ChatGPT
Powershop JPN