質問: Googleスプレッドシートのカラムが増えると、GASのスクリプトに自動的に変数や、それに応じたHTMLを吐き出すスクリプトを生成したいと思っているのですが、可能でしょうか? .gsファイルにアクセスして、そのファイル内に変数やスプレッドシートのシート名用の変数などを生成したいです。 調べてもダイアログを使った、ローカルファイル読み込みや、 POST通信で外部のテキストファイルを読み込む物などしか出てきませんでした。 GASでは同階層にある別のGASファイルをテキストファイルとして読み込み、 加工することは不可能なのでしょうか? とても投げやりになって申し訳ございませんが、 よろしくお願いいたします。
回答: スクリプトそのものの書き換えができるかどうかは知りませんが、**それができたとして** webアプリケーションの公開などを他にもやることがあります。 自動的に変数を書き換えられ技術があるなら、そもそも出力物が固定のシート名や列数に依存しないスクリプトを作ればよいのでわざわざファイルを書き換える必要がないとと思います。 ``` const test = () => { const f = DriveApp.getFilesByType(MimeType.GOOGLE_APPS_SCRIPT); while(f.hasNext()) { const s = f.next(); Logger.log(s.getBlob()); } } ``` これでとりあえずテストしましたが、`Exception: application/vnd.google-apps.script から application/pdf への変換はサポートされていません` となるので、getDataAsString も getBytes も実行できませんでした。読み出しもできないものを書き込むのは不可能だと思います。 もちろん https://developers.google.com/apps-script/reference/script/script-app#properties にも、スクリプトの内容を get したり set したりするメソッドはありませんでした。 知りたい、には仕様書以外には確認のしようがないので、teratail で解決できる問題ではないです。すごいプログラマーがいっている、は全く正しさを保証しません。私は問題を解決しようとして回答しているので、知りたいに応えることができず大変申し訳ないです。google の開発者でもないのに安易に回答して申し訳ありませんでした。