勉学 日記 趣味

【日記】ChatGPTにプログラムを書かせてExcelのツールを作ろう

プログラムが書けなくても割とどうにかなる時代になっちまった。

プログラムを書きたくないけど何かツールを作りたい

Excelの作業を自動化したいと思うことはありませんか?

単調作業であればプログラミングに詳しくなくても自動化できるかもしれません。
今回はプログラミングをChatGPTに任せてExcelのツールを作ってみます。

https://openai.com/ja-JP/index/chatgpt/
https://openai.com/ja-JP/index/chatgpt/

openai.com

前提として、私はプログラムを書く仕事をしています。

とは言ってもプログラミング言語が変わると、書き方も変わります。
言語が変わるたびに書き方をネットで調べることになります。
これが結構面倒です。

今回はその面倒な部分をChatGPTに任せます。

用意するもの

用意するものは2つです。

  • Excel
  • ChatGPT

何を作るのかを考える

今回はタスク管理表を作ろうと思います。

イメージはこんな感じです。

A列はボタン処理用の目印です。(chatGPTへの指示を減らすため)

機能は以下のように作ろうと思います。

  • 「行の追加」ボタンを押すと一番下に行が追加される
  • 繰り返し、状態、重要度はプルダウンで選択できるようにする
  • 「繰り返しステータスクリア」ボタンを押すと、繰り返しに〇がついているタスクの状態欄が空になる
  • 「完了タスク削除」ボタンを押すと、状態が完了しているタスクの行を削除する(繰り返しタスクを除く)
  • 「タスク全件削除」ボタンを押すと、状態に関わらずタスクの行を削除する(繰り返しタスクを除く)

実際に作ってみる

では実際に作ってみます。

準備

Excelの準備をします。

Excelのタブに「開発」を表示させておきます。

「開発」タブが無い場合は以下のメニューを選択し、「開発」タブを追加してください。
ファイル→オプション→リボンのユーザー設定

次にファイルを保存します。
ファイルの拡張子はマクロに対応しているもの(xlsm)にします。

これで準備はできました。

ChatGPTにマクロを作らせる

ではメインの処理を作成していきましょう。

今回はChatGPTにマクロを組んでもらいます。
マクロを組むことで、ボタン押下でマクロ管理表を操作できるようにします。

一旦ChatGPTに何をしたいのか伝えます。

これから条件を伝えるのでVBAマクロを書いてください。

作りたいボタンは複数あるので、一個ずつ作っていきます。

行の追加処理の作成

以下の処理を作ります。

  • 「行の追加」ボタンを押すと一番下に行が追加される
  • 繰り返し、状態、重要度はプルダウンで選択できるようにする

ChatGPTにはこのように指示をします。

行を追加するマクロを書いてください。
A列に「list」と書いたセルがあるので、それを起点としてください。
「list」セルの下に「task」セルが存在しない場合、「list」セルの1行下に行を追加してください。
「task」セルが存在する場合、「task」セル群の一番下に行を追加してください。
追加する行の文字の太さは通常にし、背景は全てクリアにしてください。
追加した行は以下の設定をしてください。
A列に「task」を書き込む
C列にプルダウン(空欄で何もなし、〇)
D列にプルダウン(空欄で何もなし、着手中、完了)
E列にプルダウン(空欄で何もなし、高、中、低)
C列からG列までセルの罫線を引く(全てに線を引く)

これで出力されたコードでマクロ登録します。

開発タブの「Visual Basic」を選択します。

標準モジュールを右クリック、挿入を選択し、「標準モジュール」をクリックすると新規の標準モジュールが作成されます。
オブジェクト名は「行追加」にしておきます。

ChatGPTで生成したコードを貼り付けます。

ボタン用の図形(四角)を作り、右クリックし、「マクロの登録」を選択します。

先ほど作成した処理名が出てくるので選択肢し、OKを押下します。

これで「行の追加」ボタンを押すとプルダウン選択可能な行が追加されるようになりました。

このような作業を繰り返します。

繰り返しステータスクリア処理の作成

同じように以下の処理を作ります。

  • 「繰り返しステータスクリア」ボタンを押すと、繰り返しに〇がついているタスクの状態欄が空になる

ChatGPTにはこのように指示をします。

繰り返しタスクの状態をクリアするマクロを書いてください。
A列が「task」が書かれており、かつ、その行のC列が〇となっている場合、その行のD列を空欄にしてください。

同じようにボタンを作成し、マクロを登録します。
これで「繰り返しステータスクリア」ボタンができました。

完了タスク削除処理の作成

次は以下の処理を作ります。

  • 「完了タスク削除」ボタンを押すと、状態が完了しているタスクの行を削除する(繰り返しタスクを除く)

ChatGPTにはこのように指示をします。

完了タスクを削除するマクロを書いてください。
以下の条件に全て一致する場合、その行を削除してください。
・A列が「task」が書かれている
・その行のC列が〇以外
・その行のD列が「完了」となっている

同じようにボタンを作成し、マクロを登録します。
これで「完了タスク削除」ボタンができました。

タスク全件削除処理の作成

最後に以下の処理を作ります。

  • 「タスク全件削除」ボタンを押すと、状態に関わらずタスクの行を削除する(繰り返しタスクを除く)

ChatGPTにはこのように指示をします。

タスクを削除するマクロを書いてください。
以下の条件に全て一致する場合、その行を削除してください。
・A列が「task」が書かれている
・その行のC列が〇以外

同じようにボタンを作成し、マクロを登録します。

これで「タスク全件削除」ボタンができました。
このボタンを押すと、繰り返しタスク以外のタスクが削除されます。

これでマクロは完成です。

シートのレイアウトを整える

あとは見た目を整えます。
A列は非表示にし、ボタンのサイズなどを調整します。

タスク管理表が完成しました。
ボタンを押すと想定した内容でタスクが処理されます。

プログラミング知識がなくても割とどうにかなる

ChatGPTを使うことで、一行もコードを書かずにExcelのツールを作ることができました。

もし思ったようにツールが動かなかった場合、ChatGPTに不具合の内容と何をしたいのかを伝えた上で修正してもらいましょう。
いい感じに直してもらえます。

生成されたプログラムを読むといった勉強にもなるので、プログラミングに興味がある方は試してはいかがでしょうか。

-勉学, 日記, 趣味
-, , , ,