#136 スプレッドシート内の関数を探す
はじめに
11/22 に行われた GEG Kanazawa のオンラインイベントで紹介されていた「自由進度学習」のためのスプレッドシートを開いたら、
↓ のようなメッセージが画面上部に表示されました。
右側の「詳細」をクリックすると、以下のヘルプ記事が表示されました。
ヘルプ記事の内容からは IMPORT 関数を使っていることが、↑ のようなメッセージが表示されている要因みたいです。表示されているメッセージそのものが例示されているわけではありませんが、↓ のような記述が当てはまるのだと思います。
メッセージ(↑ のヘルプ記事では「警告バナー」)が表示されている要因はわかったものの、その関数がどこにあるのかを確認したいと思いました。
しかし… Googleスプレッドシートに備えられている「検索と置換」の機能で、IMPORT と検索しても見つからなかったので、どうにか探してみようと GAS のプログラムを作ってみることにしました。
注意事項
こんな書き出しですが…
結局のところ「警告バナー」が表示されていた要因は IMPORT 関数ではなく、IMAGE 関数が使用されていたことでした。
要因がわかってから、↑ のような Googleスプレッドシートに備えられている「検索と置換」で IMAGE 関数を探したところ、ちゃんとその関数が設定されているセルを見つけられました。 ということで、この記事のプログラムは「GAS のプログラムで、こんなこともできる」という事例としてご覧ください。
ChatGPT に聞いて作ってみた
自身で試行錯誤するのもいいのですが、
といった感じのプロンプトで ↓ のような回答が得られました。
そんな ChatGPT の回答をもとにして、作成したプログラムを Google スプレッドシートに埋め込んだものが、以下の通りです。
使用する場合には、対象となる Google アカウントでログインした状態で、以下の URL にアクセスして、スプレッドシートをコピーしてください。
https://docs.google.com/spreadsheets/d/10Q2pWqWLeEG7fN5peO8GDFO0DpAbMqP5sZENNxdw0tw/template/preview
プログラムをはじめて実行する際には、アカウントによる確認作業が必要になります。詳しくは以下の投稿をご覧ください。
使い方
コピーしたスプレッドシートを開くと、下図のような感じになっていると思います。
スプレッドシートを開いて、ワンテンポ遅れてセル A4 にリンクが表示されるはずです。このリンクは、スクリプトエディタを開くためのリンクです。
このリンクは、↓ のリファレンスにあるような「Class ScriptApp」の内容を用いて、onOpen 関数を用いて表示させています。このような内容であれば、権限確認を行わなくても実行できます。
セル A1 に確認対象となるスプレッドシートのファイル ID を入力してから、このリンクを開きます。 ※スクリプトエディタが開かれるだけなので、普通にメニューから「拡張機能」→「Apps Script」と選択しても動作としては同じです。
スクリプトエディタを開いたら、先頭にある関数 checkImportFunctions が選択されているはずなので、「▷ 実行」ボタンを押してプログラムを実行します。
この「▷ 実行」ボタンを押したタイミングで、はじめての実行時には権限の確認が行われるはずです。
この関数を実行することで、スクリプトエディタの下部に表示されている「実行ログ」の部分に検索した結果が表示されます。
最後に
今回のプログラムは、冒頭でも説明したようにスプレッドシート内に設定されている関数を探すものでしたが、実際には Googleスプレッドシートに備えられている「検索と置換」の機能で実現できるような内容のものです。
あくまでも一つの事例としてご覧ください。
こういったプログラムも、実際に自力で作成しようとすると、それなりの時間がなければ作れないのですが、ChatGPT などの生成 AI に作らせるとすぐに作ってくれます。そのまま使えないケースもありますが、一から作成するよりは早いように思います。
うまく意図したように動作しなかった場合には、なぜ動作しないのかを確認して、その要因に対応しなければならないので、結局のところある程度は自作できるだけのスキルは必要になってくるのかもしれません。 とは言え、使えるものは、うまく活用したらいいと思います。😘
最後に、お決まりのフレーズなどを書いておきます。
一応の動作確認は行っているものの、不慮のトラブルによって損害等が生じても、責任はとれませんので予めご了承ください。
コメントを含めても短いスクリプトであり、実行に際して目的外の場所への書き出しや収集などは行っていません。
特別なエラー処理は行っていないので、意図しないケースでエラーが発生してしまうかもしれません。どうにもならない場合には、ご連絡ください。
わたし自身にしてみると、このような「スクリプトを作ること」が目的になっているような感じですが、このスクリプトが何かの役に立てば幸いです。
これらの記事への感謝の意は、記事に対する「スキ ♡」や、以下のような Amazon のアフィリエイトリンク経由での商品の購入、note の「チップ」機能を利用してもらえると、このようなプログラム作成の励みになります。😍
Amazon のアフィリエイトリンクを開くと、それ以降 24時間以内に商品を購入した場合に、紹介者(この場合は、わたし)に紹介料が発生します。