パラダイス

瀬川商店 第46回:Google SheetsのTips

2025.09.19

劇伴の仕事をしているとSheetsとは切っても切れない関係になります。特に2人とか3人の作曲家が分担して曲を書き進めている場合は尚更です。僕の場合はGoogle Sheetsを使っています。MicrosoftのExcelが元々あったわけですが、Google Sheetsが正式にモバイルappを発表した2014年に切り替えました。その頃からLAにしばらく住んでいたのでリモートでスタッフ間でやり取りすることが必須の環境になってしまったし、劇伴で使うこれら表計算ソフトの関数はそれほど複雑ではないので簡単に移行できましたからね。

複数の作家が同時進行で作業している場合、Mナンバーをどうやって割り振っていくかという問題があります。Aさんが書いたものはM01〜M20を使い、Bさんが書いたものはM21〜M30を、同じくCさんが書いたものはM31〜M40を使う、、、という方法もありですが。プロジェクトのスタート時にそこまで正確に曲数を割り当てられるかというとそう簡単にはいきません。Aさんは速書きなので他の人が10曲書いてる間に20曲書いちゃうかもしれないしね(笑)Aさん、まだ余力があるからもっと書いちゃうよ〜みたいな時にじゃあAさんは次のMナンバーどこ使う?みたいな問題もあります。

また事務所のスタッフか、ホストの作曲家さんの性格にもよると思うのですが、Mナンバーの数字に空白ができるのが嫌〜という場合。例えばBさんは最終的にM24までしか書かなかったりすると、SheetsのM25からM29まで空白になってしまいますよね?僕はプログラミングが趣味なので、こういうのはただデータが入ってない、ただのブランクに見えるから気にしないのですが、これ気になる人は気になるのも分かります、、、

まあ頻繁に連絡取り合うのが一番なんですが(笑)、もうちょっとスマートにやる方法もあります。

「あ〜AIにやらせる話だなあ〜」と思ったでしょ?違うんですよ、トークン使わずにチャチャっとできるんです。

Google SheetsにはGoogle Apps Script(以下GAS)という強い味方があるんです。これを使うと、スクリプトが常にMナンバー順にSheetsの項目を並べ変えてくれます。GASはJava Scriptベースの言語ですが、Google Sheetsに使う以下の書き方などはGAS独自なはずです。


SpreadsheetApp.getActiveSpreadsheet()
sheet.getRange()


今回のスクリプトには変数を定義するconstも使いますが、これをGASで使えるようになったのは2018年らしいので、僕が最初にGASを使い始めたのもそれ以降なんでしょう(記憶にない)。

また前置き長くなっちゃいましたが、まず新規のGoogle Sheetsを用意してこんな感じにMナンバーがバラバラの状態でアップロードされているとします(これはAPIを叩いてクラウド上のフォルダにmp3をアップロードするとSheetsにファイル名が書き込まれるようになっている)。


1)拡張機能→Apps Scriptを選択します→Scriptの名前をAutoSorterにします

以下のようにスクリプトを書きます。ここで一番大事なのは3行目に書いてある”Uploads”を必ずソートしたいシート名と同一にすることです!

function autoSort() {
  // 操作するシートを指定
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Uploads");

  // ソートしたい列の番号を指定 (A列なら1, B列なら2)
  const sortColumn = 1;

  // データ範囲を取得 (2行目から最終行まで)
  const range = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn());

  // 指定した列を基準に昇順でソート
  range.sort(sortColumn);
}

2)次に左の時計マークが見えますね?そこをクリックすると「トリガー」が見えます。

3)右下に「+トリガーを追加」が見えるのでそこをクリック。

多分この作業を始めてGoogle Sheetsで行うときはこういうウィンドウが出てきた後に、「実行する関数を選択」の下がクルクル回って選択できないと思いますが、その場合は一度スクリプトに戻ってフロッピーディスクのアイコンをクリックして保存してください。

そうするとGoogleのセキュリティーからかなり強めのアラート(笑)が表示されると思いますが、ビビらずに自分のアカウントに対して許可してるだけなので心配せずに許可してください。

右側に「Back TO SAFETY」のボタンが見えると思いますが、左側のAdvancedをクリックして自分のアカウントに許可を出してください。

Go to AutoSorter (unsafe)

と書いてあってもクリックして進む!

最後の砦、この表示が出ても焦らず「許可」をクリック!それが済めば正式にスクリプトが承認されて無事にGoogle Sheetsで使用できるようになります。Sheetsに戻って冒頭のMナンバーのどれかを少し移動させると、それが先ほど選択した「変更時」に該当して、Mナンバーを基準とた並べ替えをしてくれます!

複数人の作曲家で作業するプロジェクトに限らず、1人の作曲家でもMナンバーに関係なく書きやすいところから書いていくことは良くあります。そういう時もただこのシートの一番下に書き込めば入力した瞬間にソート順に並べ替えてくれるのでとても便利です。是非試してみてください!

おまけ、デプロイの話

元々deployってWEBライターが下書きを完成させる時とか、開発中のコードが完成して人に見せる時に使います。日本語の訳すると展開するとか、配置するという意味なのはそのせいですね。ちょっと日本語にはない感覚なんですよね。プログラマーの感覚(僕はサンデープログラマーだけどw)だと

ビルド→プログラムを書いてる途中。実行できるところまで来てるけどまだ詰めの作業してる感じ。

デプロイ→完成したプログラムが、プログラマーの元を離れてまさに実装された瞬間になった状態。

リリース→実際にサービスが始まった、リリースされた状態(これは馴染みがありますね)。

開発から本番へ〜という段階のイメージですね。


音楽業界だと、

1)マスタリングが終わったから、週末には各ストアにデプロイしよう。
“The mastering is done, so let’s deploy the track to all the stores this weekend.”

2)新曲のデプロイ申請したけど、Spotify側の審査に少し時間がかかってるみたいだ。

“I submitted the new song for deployment, but it seems the review process on Spotify’s side is taking some time.”

3) 共同制作用のステムデータ(各パートの音源)を、共有サーバーにデプロイしておいたから確認よろしく。
“I’ve deployed the stems for our collaboration to the shared server, so please check them out.”

4) このシンセプリセット、自分の環境にデプロイするの失敗してるみたいで、うまく読み込めないんだ。
“It seems like the deployment of this synth preset to my environment failed, I can’t load it properly into my DAW.”

という使われ方もするんです。日本語だと「ステムデータ、アップしといたからよろしく〜」みたいに”アップロード”を使う事が断然多いんですけど海外だとdeploy使う事も多いです。IT系の文化の影響が濃いからだと思います。YouTubeのチュートリアル見ててもちょいちょい出てくるから、覚えておくといいかもね。

瀬川英史(瀬川商店)
劇伴の作曲家やってます。Netflix「シティーハンター」アニメ「烏は主を選ばない」等。シンセは危険物取扱者の甲種レベルの知識あり(多分)。
記事内に掲載されている価格は 2025年9月19日 時点での価格となります