スプレッドシートに毎日たまっていく数字を、決まった形に集計する。決まった時間にメールを送る。そういう処理をGASで書けるようになった。
そこまで来ると、次にこう思う人が多いです。
「これ、次は何を覚えればいいんだろう」
調べると「GASの次はJavaScript」という話をよく見かけます。ただ、GAS自体がJavaScriptベースだと聞いた覚えもある。だとしたら、いま自分が書いているものと何が違うのか。学び直す意味があるのか。そこが分かりにくい。
この記事では、GASを触った経験がある人が「JavaScriptを学ぶべきかどうか」を判断するための軸を、3つに絞って整理します。
GASで作ったツール、「ここまでしかできない」と感じたことはないか
GASでできることは、意外と広いです。シートの値を読んで、条件で振り分けて、別のシートに書き込む。カレンダーやGmailと連携させる。この範囲なら、営業や企画の実務でもかなり戦えます。
ただ、しばらく使っていると壁に当たる場面が出てきます。
たとえば、こんなときです。
- 社内の人に使ってもらう画面で、ボタンを押した瞬間に表示が切り替わるような動きを作りたい
- 入力ミスをその場で「この欄は数字で入れてください」と赤字で知らせたい
- 自社サイトの特定の箇所だけ、ちょっとした動きを足したい
こういう「画面の中で何かが動く」系の要望は、GASのスクリプト(Google側で実行されるコード)だけでは手が止まりやすい部分です。
ここで「自分のスキルが足りないのかな」と思ってしまう人がいますが、そうとは限りません。そもそも守備範囲が違う、という話が混ざっています。
文法は同じなのに勝手が違う。迷うのは当然です
GASとJavaScriptの関係は、少しややこしいので簡単に整理します。
変数の書き方、if文での条件分岐、for文での繰り返し。この基本部分は、GASもJavaScriptもほぼ同じです。GASはJavaScriptをベースにした言語なので、ここは共通しています。GASを書けている時点で、JavaScriptの基礎文法はもう手が動く状態にあると考えていいです。
違うのは「どこで動くか」です。
GASのコードはGoogleのサーバー側で実行されます。あなたのパソコンではなく、Googleの環境で処理が走って、その結果がシートに反映される。
一方、Webページに書かれたJavaScriptは、そのページを見ている人のブラウザの中で動きます。手元で動くから、ボタンを押した瞬間に表示を変えるようなことができる。
同じ文法なのに、できることが違う。この「実行される場所の違い」が、勝手が違うと感じる正体です。
だから、GASからJavaScriptに進むのは、まったく新しい言語をゼロから覚え直す作業ではありません。ここは安心していいところです。
学ぶかどうかは、この3つで考えるとシンプルになる
「JavaScriptでできること」を調べると、Webアプリ、ゲーム、スマホアプリ……と際限なく出てきます。ただ、それを全部眺めても「自分が学ぶべきか」の答えは出ません。
判断するなら、次の3つだけ考えてみてください。
①ブラウザで動くものを作りたいか
画面上で何かが動く、反応する。そういうものを自分で作りたい気持ちがあるか。
②GASの「できないこと」にぶつかっているか
やりたいことがあるのに、GASでは実現できなくて止まった経験があるか。
③営業・企画の仕事で使い道が具体的にあるか
「勉強したら役に立ちそう」ではなく、「この作業に使いたい」と言える対象があるか。
3つのうち、ひとつでもはっきり当てはまるなら、学ぶ価値はあります。逆に、どれも「なんとなく」なら、いま無理に手を広げなくてもいいと思います。GASを深掘りする方が、仕事への跳ね返りは早いです。深め方に迷うなら、非エンジニア向けにGASの仕組みと学習手順を整理した記事も参考になります。
以下で、それぞれを詳しく見ていきます。
①ブラウザ上で動くものを作りたいなら、学ぶ意味は大きい
JavaScriptは、もともとWebページに動きをつけるための言語です。MDN Web Docs(ブラウザを開発しているMozillaが公開している、Web技術の公式に近い解説サイト)では、複雑なアニメーション、押せるボタン、ポップアップメニューといった「インタラクティブな要素」を実現するものとして説明されています。
言い換えると、Webページを見ている人の操作に反応する部分を担当している、ということです。
- 入力欄に文字を入れた瞬間に、文字数がカウントされる
- 「詳細を見る」を押すと、隠れていた説明が開く
- 送信前に「必須項目が空です」と表示される
こうした挙動は、たいていJavaScriptが動いています。
一方、GASのコードはGoogleのサーバー側で動くため、閲覧者のブラウザ上の表示を直接書き換える、という形にはなりません。GASの主な役割は、スプレッドシートやGmailなどGoogleのサービスを操作することにあります。
だから、「画面上の動き」を作りたいという気持ちがあるなら、それはJavaScriptを学ぶ十分な理由になります。実際にページを作って公開するところまで見据えるなら、HTML/CSSからサイト公開までの流れを解説した記事が土台の把握に役立ちます。
なお、JavaScriptはブラウザの外でも動きます。Node.jsという実行環境を使えばサーバー側の処理も書けます。ただ、ここは最初から考えなくて大丈夫です。まずはブラウザの中の話だけで十分です。
②GASの「できないこと」にぶつかっているなら、それが学ぶタイミング
さきほど「守備範囲が違う」と書いた部分を、もう少しはっきりさせておきます。
解説サイトで指摘されているのが、GASではHTMLの中身(DOM)への直接アクセスが制限される、という点です。Webページは、見出しやボタンといった部品の集まりでできています。その部品をコードから掴んで書き換える仕組みが、ブラウザのJavaScriptにはあります。GASのスクリプトからは、同じようには扱えません。
代わりにGASが持っているのは、スプレッドシート、ドキュメント、Gmail、カレンダーといったGoogleのサービスを操作するための機能です。GAS独自の書き方を使うことになります。
つまり、GASは「Googleのサービスを動かす」ことに軸足があり、「ブラウザの画面を直接動かす」ことは主な用途ではない。だから、あなたが画面まわりで詰まったのは、腕の問題というより道具の問題だった可能性があります。
もうひとつ、GAS利用者からよく出る疑問として、ブラウザJavaScriptで一般的な外部データ取得の書き方(fetch)がGASでは同じように使えない、という論点があります。GAS側にはGoogleが用意した別の仕組みがある、という整理で語られることが多いです。ただし、この点はGoogleの公式ドキュメントで裏を取れていないので、断定は避けておきます。実際に使うときは公式のリファレンスを確認してください。
いずれにせよ、「同じことをやろうとしても、書き方が違う場面がある」とだけ頭に入れておけば、つまずいたときに落ち着いて調べられます。
③営業・企画職としての「使い道」があるかで考える
ここが一番大事かもしれません。学んでも使い道がなければ、続きません。
参考になる例として、ヌーラボの公式ブログに、非エンジニア向けのJavaScript入門記事があります。そこで扱われているのは、Web上に表示されているデータを集めて、加工して、スプレッドシートに書き込むという処理です。
この形は、営業や企画の仕事と相性がいいと思います。
たとえば、こんな場面を思い浮かべてみてください。
- 定期的に見ている情報を、毎回手でコピーしてシートに貼り付けている
- 複数のページを開いて、同じ項目だけを拾い集めている
- その作業が、毎週それなりの時間を占めている
こうした「見る→拾う→貼る」の繰り返しは、コードで置き換えやすい部類です。しかもGASでシートに書き込む部分は、すでにあなたが書ける範囲でしょう。足りないのは、その手前の「集める」部分だけかもしれません。
手元の作業ごとにどの道具が向いているかを整理したいときは、営業・企画職向けにPython・GAS・VBAの使い分けをまとめた記事が判断の助けになります。
ただし、Webサイトからのデータ取得については、対象サイトの利用条件を先に確認しておくのが無難です。会社の業務で使うなら、なおさら技術より先に確認しておきたいところです。
「うちの仕事だと、そういう場面あるかな」と少し考えてみてください。ひとつも思いつかないなら、③は当てはまらない、で構いません。
学ぶ順番に迷ったら、GAS経験を差分学習に使う
学習順序については、意見が分かれています。
「未経験者はJavaScriptの基礎文法を先に学び、それからGASへ」という主張もあれば、「環境構築が不要なGASを教材にしてJavaScriptを学ぶ方がいい」という主張もあります。どちらも個人ブログの見解で、正解が決まっているわけではありません。
ただ、この記事を読んでいるあなたは、すでにGASを触っています。だとすれば、順番の議論に付き合う必要はあまりないと思います。
共通している部分はもう分かっている。だから、違うところだけを埋めればいい。これが一番効率がいいはずです。
MDNの入門編・ガイドで基礎を確認する
MDN Web Docsには、日本語のJavaScriptガイドがあります。入門編から順を追える構成で、文法、データ型、制御フロー、関数などがテーマ別にまとまっています。無料で参照できます。
GAS経験者なら、変数や条件分岐のあたりは飛ばし読みで十分です。「あ、これ知ってる」と思ったら次へ進んでください。全部を丁寧に読む必要はありません。
分からない用語が出てきたら、同じMDNのリファレンスで引けます。組み込みオブジェクトや構文を辞書的に引ける場所だと思ってください。
GASとの違いに注目しながら読む
読むときの視点はひとつでいいです。
「これ、GASでもできたっけ?」
そう自問しながら読み進めると、差分が浮かび上がってきます。特に注目したいのは、ページの部品を掴んで書き換える話、ボタンのクリックなど「何かが起きたときに処理を動かす」話。このあたりが、GASでは出てこなかった領域です。
逆に、そこまで押さえられれば、当面は十分だと思います。
最初の一歩は、小さなスクリプトを書いてみること
学習計画を立てる前に、まず動かしてみるのをおすすめします。JavaScriptはブラウザさえあれば試せます。
たとえば、ボタンをひとつ置いて、押したら文字が変わるだけ。それくらいの短いコードで構いません。書き方は、MDN Web Docsの学習コンテンツで確認できます。
これだけでも、「GASでは画面が変わらなかった」という感覚と、「JavaScriptだと変わる」という感覚の差が、身体で分かると思います。理屈で理解するより早いです。
うまく動かなくても気にしないでください。多くのブラウザには開発者ツールが用意されていて、そこでエラー内容を確認できるはずです。最初はそれを見て検索する、の繰り返しで進みます。GASでエラーログを見ていたのと、やっていることは同じです。
まとめ
整理すると、こうなります。
GASとJavaScriptは基本文法が共通しているので、ゼロからのやり直しにはなりません。違うのは主に「どこで動くか」で、そこから使える機能の差が生まれています。
学ぶかどうかを迷ったら、次の3つだけで判断してください。
- 画面の中で動くものを作りたいか
- GASでは無理だった、という場面に実際にぶつかっているか
- 自分の業務に、具体的な使い道が思い浮かぶか
どれも当てはまらないなら、いまはGASを深める方が仕事に効きます。逆にひとつでも当てはまるなら、進む価値はあります。
そして最初の一歩は、教材を選び直すことでも、学習計画を立て直すことでもありません。MDN Web Docsの入門編を開いて、ボタンを押したら文字が変わるだけのコードを動かしてみる。それだけで、続けられるかどうかの感触はつかめます。
そこで「思ったより地続きだった」と感じられたら、次に進めばいいと思います。
参考にした情報
- MDN Web Docs「JavaScript とは」「JavaScript ガイド」「入門編」「JavaScript リファレンス」(Mozilla)
- ヌーラボ公式ブログ「非エンジニアのための JavaScript 入門」
- gas-recipe.com「GASとJavaScriptの違い」ほか、GASとJavaScriptの差異に関する解説記事
※GASの仕様(利用可能な機能やランタイムの詳細)については、Google Apps Scriptの公式ドキュメントで最新の内容を確認してください。


コメント