スプレッドシートの特定の部分をHTMLテーブルに変換するというタスクが大量に発生してて、エディターで正規表現置換とかマルチカーソルとか駆使してやるのはあまりにもつらいということで、ChatGPTにどうしたもんかと相談したところ、Google Apps Script使えうといえという提案を受けた。他にもいくつか提案があったけど、GASが一番柔軟性高そうだったしハードルも低いからそれでいくことにしたんだけど、コード書くのが面倒なのでサンプルコード書いてもらって、そこにあれこれ細かい修正要望して反映してもらってっていう感じで、結局マジで1バイトもコード書かずに完成した。
途中でうまくいかなくても、「出力が空になるんだけど」みたいにぼやくとちゃんと直してくれた。
まあ実際は細かい修正は自分でやった方が早かったかなと思ったりもするんだけど、これは明らかにこういうタスクに必要な前提知識は少なくなってるんだなあと強く感じた。

最初に出てきたサンプルコードは、本当にシンプルで、やり方を理解するためには十分なんだけど、そのまま使おうとしてもどうにもならない感じだった。
例えば、変換対象のセル範囲を受け取る関数があるんだけど、それにセル範囲を渡す方法がなかったりする。
で、選択したセル範囲を対象にするように変更してくれとか、単純変換結果をログに出すんじゃなくてモーダル・ダイアログ開いてそこに出してくれとか、出した変換結果をクリップボードにコピーできるようにしてくれとか、クリップボードにコピーしたらモーダル・ダイアログは自動的に閉じてくれとか、他にもいくつか細かい修正をして、というかしてもらって、普通に動くようになった。
で、モーダル・ダイアログ出すところとかは、普段あまりやらないから、やるとなるといろいろ調べないと思い出せなかったりするので、こういうのはChatGPTに任せちゃった方が確実だなという印象。
あと、自分で手元で細かく直すと、その後でなにかしらの修正をしてもらったコードをコピペする時にすごい面倒なので、そういう細かい修正も全部頼んでしまった方が、たぶん結果としては時間がかかってるんだけど、作業としては楽な印象。
まあなんにしても面白い時代になったなあと思う。

その後さらに、2つの範囲にある2つのテーブルをマージするみたいな機能を追加した。
で、最初の機能の処理を流用できそうなところでも違う手法を使ったコードが出てきたりして面白かった。
どうやらループを回して処理するようなものに関しては、いろいろなパターンを適当に出してきてるみたいな感じがする。結果は同じなんだけど。
例えば、反復処理して長いHTMLのコードを作る時に、配列にどんどんpushしてからjoinするみたいな場合と、+=していく場合が観測された。

仕事で作ってるとか公開するとかならこの辺はちゃんと自分で整えるけど、とりあえず手元のタスクをやっつけるためのものだから、動けばいいやということで、コードとしては結構汚い感じになってる。
でもちゃんと動くものが比較的楽に短時間でできたというのがとにかく大事だと思う、少なくとも今回の場合においては。

フォロー

結局全部で3時間くらいかかったGASだけど、効果は絶大で、昨日1件処理して確認して、みたいなのに5分くらいかかってたのが30秒で済むようになった。これからこなさないといけない数を考えると、3時間はかなり良い投資だった模様。

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。