概要
Google Apps Script (GAS)を使って開発する際、多くの場合はプロジェクトを開いたときに起動するスクリプトエディタ上で行っているかと思います。スクリプトエディタの左側にはファイルのリストがあります。.gsや.html、最近では.jsonもあります。スクリプトが大きくなっていくとファイル毎に分離して管理することがあるかと思われます。スクリプトやHTMLを新規でプロジェクトへ追加すると、左側にあるリストの最後尾に追加されていきます。リスト内に複数のファイルができたとき、ファイルを並び替えたいと考えることがあります。この投稿では、プロジェクト内のファイルを並び替える方法についてご紹介します。
方法
1. 一時的な並び替え
- 最近のアップデートによってスクリプトエディタの上部のメニューバーで「表示」→「アルファベット順にファイルを並び替える」にチェックを入れることでファイルをアルファベット順に並び替えることができるようになっています。これは再度プロジェクトを読み込みしてもチェックが入ったままのため、アルファベット順に並んだままです。チェックを外すと元に戻ります。
- プロジェクト内にフォルダを作成することでファイルをドラッグ&ドロップして並び替えることができるようにもなっています。しかし、これはプロジェクトを閉じて再度読み込みすると元に戻ってしまいます。
- プロジェクト内に作成したフォルダに入っているファイルであればドラッグ&ドロップで並び替えを行うことで、プロジェクトを再読み込みしても並び替えた状態は維持されることが分かりました。(参考)ただし、これには制限があります。ブラウザのCookieをクリアすると並び替えたファイルは元に戻ってしまいます。このような制限付きであればデフォルトの状態でファイルを並び替えることは可能です。
2. 永続的な並び替え
次のような流れでプロジェクト内のファイルの並び替えが実現できることを確認しました。
- プロジェクト内の全ファイルを取得する。
- 取得したファイルは、各ファイルを要素とした配列を含んだオブジェクトになっているのでその配列を好きな順に並び替える。
- このとき、IDは削除し、ファイル名はそのままにする必要があります。
- プロジェクト内で重複しないファイル名を持ったファイルでプロジェクトを上書き更新する。
- これにより、プロジェクト内のファイルは追加した1つのファイルのみになります。
- 並び替えたオブジェクトでプロジェクトを上書き、あるいは新規プロジェクトとして作成する。
このようにして並び替えたファイルは、プロジェクトの再読み込みやCookieのクリアで元に戻ることはありません。
この方法には注意点があります。もしも並び替えたファイルで既存プロジェクトを上書きすると、プロジェクト内のファイルを総入れ替えすることになるため、各ファイルの履歴がなくなってしまいます。並び替えたファイルを新規プロジェクトとして作成する場合は問題ありません。
並び替え用のツール
GUI
上記の流れを行うアドオンを作成しました。リポジトリはこちらです。
導入方法
- アドオンが公開されているページへ移動する。
- "+無料"のボタンをクリックする。
- Googleへのログイン画面が表示されるのでログインする。
- スプレッドシートが自動で開いて「アプリの使用を開始」のダイアログが表示されるので続行ボタンを押して認証を行う。
- インストールが終わると、メニューバーのアドオン部分に簡単な起動方法が出力されるので、アドオン -> RearrangeScripts -> Rearrange scriptsを選択してサイドバーを起動する。
起動後はデモンストレーションにあるようにファイルを選択してドラッグ&ドロップによりファイルを並び替えて保存します。
- "Overwrite to project"にチェックを入れていると、開いているプロジェクトへ並び替えたファイルを上書きします。
- "Create as new project"にチェックを入れていると、並び替えたファイルは新規プロジェクトとしてルートフォルダに作成されます。
CLI
Goを使って作成すると下記のようになります。リポジトリはこちらです。
導入方法
下記のどちらからも導入方法をみることができます。
ファイル並び替えに対するマニフェストへの影響
マニフェストファイル(appsscript.json)自体は他のファイルと一緒に並び替えを行うことができることを確認しています。一方、削除できないようになっているため、ユニークファイル名で上書き更新しても影響されません。
この情報がお役に立ちましたら幸いです。

