GASで関数名からスクリプトファイルを特定する方法!大量の.gsファイルから効率よく検索する手順

クラウドサービス

Googleスプレッドシートに紐づいたGoogle Apps Script(GAS)を長期間運用していると、スクリプトファイルが増えてしまい、目的のfunction(関数)がどのファイルに記述されているのか分からなくなることがあります。

特に「無題1」「無題2」のような名前の.gsファイルが大量に存在する場合、1つずつ開いて確認する方法は時間がかかります。この記事では、関数名から対象ファイルを効率的に探す方法や、自動検索する方法を解説します。

GASエディタの検索機能を使って関数名を探す方法

最も簡単な方法は、Google Apps Scriptエディタに搭載されている検索機能を利用する方法です。

GASエディタを開いた状態で、キーボードの検索機能(Windowsの場合はCtrl+F、Macの場合はCommand+F)を使用すると、現在開いているファイル内を検索できます。

ただし、この方法では1つのファイル内だけが対象になるため、100個近い.gsファイルがある場合には効率的ではありません。その場合はプロジェクト全体を対象にした検索を利用します。

GASプロジェクト全体から関数名を検索する方法

GASエディタには、プロジェクト内のすべてのファイルを対象に検索できる機能があります。左側メニューや検索アイコンからプロジェクト全体検索を利用すると、すべての.gsファイル内にある文字列を一括で探せます。

例えば、探したい関数名が「sampleFunction」の場合、検索欄に「sampleFunction」と入力すると、その関数が記述されているファイル名とコードの位置が表示されます。

この方法なら、「無題1」から「無題100」までファイルを順番に開く必要がなく、数秒で対象ファイルを特定できます。

GASを使って関数名とファイル名を自動抽出する方法

大量のファイルを管理している場合は、GAS自身を使ってプロジェクト内のファイル内容を取得し、特定の関数名を含むファイルを探す方法もあります。

GASプロジェクトのファイル情報を取得するには、Google Apps Script APIやClaspなどの開発ツールを利用する方法があります。標準のSpreadsheet用GASだけでは、自分自身のスクリプトファイル一覧を直接取得する機能は制限されています。

例えば、Google Apps Script APIを有効化してファイル一覧を取得し、各ファイルの内容からfunction名を検索する仕組みを作れば、100個以上の.gsファイルでも自動的に対象ファイルを特定できます。

Apps Script APIを利用した検索の流れ

自動検索を行う場合は、以下のような流れで処理します。

  • Google Apps Script APIを有効化する
  • 対象のGASプロジェクトIDを取得する
  • APIからファイル一覧とコード内容を取得する
  • 指定したfunction名が含まれるファイルを検索する

例えば「updateData」という関数を探したい場合、すべてのスクリプトファイルを取得して「function updateData」という文字列を検索すれば、該当するファイル名を一覧表示できます。

一度仕組みを作っておけば、今後ファイル数が増えても同じ方法で検索できるため、大規模なGASプロジェクト管理に向いています。

今後ファイルが増えないように整理するポイント

大量の「無題〇〇」ファイルが発生する原因の多くは、作成時のファイル名変更を後回しにしてしまうことです。GASではファイル名を分かりやすく変更しておくことで、後からのメンテナンスが大幅に楽になります。

例えば、「売上集計.gs」「メール送信.gs」「データ更新.gs」のように処理内容ごとに名前を付けておくと、目的のコードを探す時間を減らせます。

また、関連する処理ごとに関数をまとめたり、コメントで役割を記載したりすることも、長期運用では重要になります。

まとめ:GASの関数検索はプロジェクト全体検索や自動化で効率化できる

Googleスプレッドシートに紐づいたGASで大量の.gsファイルが存在する場合でも、1つずつ確認する必要はありません。GASエディタのプロジェクト全体検索を利用すれば、関数名から対象ファイルを簡単に特定できます。

さらにファイル数が多い場合は、Google Apps Script APIなどを利用した自動検索の仕組みを作ることで、目的のfunctionがどのファイルに存在するかを効率的に調べられます。

今後の管理を考えると、ファイル名を適切に設定し、処理ごとに整理しておくことが最も確実な対策になります。

コメント

タイトルとURLをコピーしました