エクセルの神髄
Google Apps Script(GAS)入門

Google Apps Script(GAS)の入門編です
最終更新日:2017-01-22

Google Apps Script(GAS)入門

Google Apps Script(GAS)使ったことが無く、初めて使う方を対象に、出来るだけ平易な解説をしていきます、


また、文法的な話は極力少なめにして、実際に使えるようになることを目指します。

本シリーズでは、

Googleスプレッドシートで、Google Apps Scriptを使いながら、このスクリプト言語を学んで行きます。


とにかくやってみよう

第1回.Google Apps Scriptって何?GASって何?
GoogleAppsScriptはGoogleが提供するサーバーサイド・スクリプト環境でGoogleAppsScriptの頭文字をとってGASと省略されます。GoogleAppsはクラウドのグループウェアツール群ですがGASはGoogleドキュメント専用ではなくGoogleが提供するサービス全般で利用できるスクリプトです。

第2回.とにかく書いてみよう(スクリプト エディタ)
GoogleAppsScript(GAS)はGoogleが提供するサービス全般で利用できるスクリプトですと説明しましたではそのスクリプトはどこに・どのように書くのでしょうか。本シリーズではGoogleスプレッドシートでGoogleAppsScriptを使って行きますので何はともあれスプレッドシートを用意しましょう。


第3回.スクリプトを実行するには
GoogleAppsScriptを書いたら実行して結果を確認します正しく書けていれば期待した結果になりますが間違っていればエラーになったり期待外れの結果となります。前回書いたスクリプト functionmyFunction(){ Browser.msgBox(_HelloWorld_quot_,

第4回.セルに数字や文字を入れる
GoogleAppsScriptでスプレッドシートのセルに値を入れてみます、スプレッドシートを扱うのですから、まずはセルを扱う事から始めます。スプレッドシートを開いて、スクリプトエディタを起動してください。前回作成したfunctionの下に、新しいfunctionを追加します。

第5回.変数って何だ?
プログラミングを始めて最初に変数で躓く人が多いようです変数が使えなければプログラムは書けませんGoogleAppsScriptでの変数について解説します。スクリプトの書き方については前回までの記事でしっかり習得しておいてください。今回からは結果のスクリプトのみ掲載し詳細な書き順は掲載しません。

第6回.セルの値を使って計算する
セルの値を取得し計算に使い別のセルに結果を入れるこれをGoogleAppsScriptではどのように書くかを解説します。セルに値を入れるにはRangeオブジェクトのsetValueメソッド これを使いました。セルの値を取得するにはRangeオブジェクトのgetValueメソッド を使います。

第7回.同じ計算を行数分繰り返す
1回だけの処理なら、マクロ(スクリプト)を使わなくても手作業で十分です、同じ処理を繰り返し実行できるところに、マクロ(スクリプト)の最大の良さがあります。前回に続いて、以下の表で、金額=単価×数量 を計算します。前回は、2行目だけを計算しました。

第8回.最終行を取得して繰り返す
データは常に増減します、決まった行数しか処理できないのではこまります、実際に入っているデータの最終行をいかに取得するかを解説します。前回に続いて、以下の表で、金額=単価×数量 の計算を、データ行数が増減しても対応できるようにスクリプトを書き直します。

第9回.コメントの書き方
GoogleAppsScriptはプログラミング言語です、基本は英文ですが、英文そのものではなく、単語の組み合わせ、単語の省略形、記号等で出来ています、適宜コメントを書いて、わかり易くしておくことはとても重要です。スクリプトの実行に関係のないコメントの事を、コメントアウトと言います。

第10回.条件で処理を変える(条件分岐,if)
セルの値等の条件により処理内容を変更する条件分岐ですプログラムとは処理手順であり突き詰めれば条件分岐しながら繰り返し処理を行うものです。以下の表で条件分岐を具体例を説明します。やることはE列合否:合計点が210以上なら_○_以外は_×_ F列特待生:合計が240以上で

第11回.条件で処理を変える(条件分岐,switch)
条件分岐のifは2分岐ですtrueかfalseかです多分岐(多肢選択)の場合はif~elseifを使いますが別の書き方としてswitch文があります。前回使用した以下の表で条件分岐を具体例を説明します。やることはG列クラス:合計点が250以上なら_A_230以上なら_B_

第12回.表範囲をまとめて消去する
プログラミングにおいて、出力先を初期クリアしておくことは基本です、スプレッドシートで、あるシートから別のシートに集計・編集出力する時にも、出力先のシートは、初期クリアしておく必要があります。まずは、セルの値を消す方法です。セルの値の消去 setValueで、空文字を入れる。

第13回.セルに書式を設定する
スプレッドシートでは、主に表を作成し、データの入力・編集を行いますが、やはり、見栄えも重要な要素になってきます、見栄え良く、見やすい表になるように書式設定をします。以下の表を使います。上の何も書式設定されていない表を、下の表のように書式設定します。

第14回.複数のシートを扱う
スプレッドシートを使っていて一つのシートで済むことはむしろ少ないと思いますGoogleAppsScriptで複数のシートを扱う時のスクリプトの書き方になります。シートは以下のようにシート1 シート2 の二つがあるとしてシート1がアクティブつまりシート1を選択している状態で解説を進めます。

第15回.複数のスプレッドシートを扱う
GoogleAppsScriptで他のスプレッドシート(他のブック)のセル値を取得・変更する場合の解説ですIMPORTRANGE関数を使えば良いのですがGASで処理したい場合も出て来ます。そもそもスプレッドシートではIMPORTRANGE関数を使って他のブックのデータを簡単に取得できます。

文法を基礎から

第16回.Google Apps Scriptの文法を再確認
「GoogleAppsScriptはJavaScript互換言語ですのでJavaScriptの文法に準じます」と本シリーズの第1回で書きましたがあらためてJavaScriptの言語仕様文法について解説しますGoogleAppsScriptはJavaScript文法とほぼ同じですが完全に一致しているわけではありません。

第17回.JavaScript リファレンス
JavaScriptの言語リファレンスの抜粋を掲載します、MDN(MOZILLADEVELOPERNETWORK)からの抜粋に、編集・追記したものになります。MDNのJavaScriptのページです、このページの下位に、リファレンスがあります、すべてを網羅したJavaScriptリファレンスです。

第18回.組み込み関数を使う
プログラミング言語は多数ありますが制御文や演算子は極端な違いはなく読むだけならそれほど時間のかかかるものではありませんしかし実際に書く時に困る理由の一つが組み込み関数が思うように使えないことです。制御文や演算子と言ったものは数も多くなく英単語の略と記号を数十個覚えればほぼ網羅できてしまいます ※もちろん

第19回.いろいろな繰り返し処理
プログラミングにおいて、最も重要で最も多く使われるのが、条件分岐と繰り返し処理です、「条件により処理を変えながら繰り返し処理を行う」、これこそがプログラムによる自動化です。今回は、この繰り返し処理の記述について、ここまで説明してこなかった書き方も加えて、繰り返し処理の前提について説明します。

第20回.エラー処理(try・・・catch)
> GoogleAppsScriptでは他の言語(VBA等)でどうしても発生する事の多いデータ型のエラーが発生しません従ってスプレッドシートを扱っている範囲内ではほとんどエラーは出ないのですがとはいえ全くエラーが出ないという事でもありません。GoogleAppsScriptでは文字列に四則演算をしても

第21回.配列って何なんだ?
プログラミングを学ぶ上で乗り越えなければならない壁がいくつかありますがその一つが配列になると思いますその全てを自在に使いこなすには相当の時間が必要ですがまずは基礎から。配列は配列変数とも言い変数の一種になります。変数についの説明ではデータを入れて必要なときに利用するために用意した入れ物で


第22回.オブジェクト、メソッド、プロパティとは
JavaSciptの文法を数回にわたってやりましたが、最後として、オブジェクト、プロパティ、メソッド 基本の用語を確認しておきましょう。オブジェクト オブジェクトとは操作対象の事です。プログラムでは、「何かをどうする」と言った形で命令を書きます。

スプレッドシートの機能を使う

第23回.行・列を操作する(挿入・削除・非表示・サイズ)
シートの行や列全体に対する操作になります挿入削除表示非表示行高列幅これらはsheetオブジェクトのメソッドを使います。以下ではsheetオブジェクトのメソッドのうち行・列に関するメソッドを抜粋しています。処理 メソッド書式 簡単な説明 行削除 deleteRow(rowPosition) 指定された行の位置に行を削除します。

第24回.シートの挿入・削除・名前変更
シートの挿入、シートの削除、シートの名前変更です、シートの挿入・削除は、Spreadsheetオブジェクトのメソッド、名前の変更は、Sheetオブジェクトのメソッドになります。以下では、これだけ覚えておけば良いというメソッドに限定して抜粋しています。

第25回.スプレッドシート(ブック)の作成・名前変更
スプレッドシートの作成と名前変更です、スプレッドシートの作成は、SpreadsheetAppのcreateメソッド、名前の変更は、Spreadsheetオブジェクトのrenameメソッドになります。削除は、と思ってメソッドを探しましたが、見当たりませんでした。

第26回.セルのコピー&各種ペースト
GoogleAppsScriptで、スプレッドシートのセルをコピペする時の書き方になります、セルのコピペといっても、セル全体、値のみ、書式のみと、いろいろな貼り付け方法があります。記述方法は複数ありますが、基本の使い方だけ覚えれば十分です。

第27回.セルに数式を入れる
GoogleAppsScriptで、スプレッドシートのセルに、計算結果ではなく、計算式そのものを入れる場合のほうほうについての解説です。スクリプトで処理する場合は計算結果を入れる事が多いのですが、時に計算式を入れた方が後の使い勝手が良い場合もあります。

第28回.リンクの挿入・編集・削除
GoogleAppsScriptで、スプレッドシートのセルにハイパーリンクを挿入する場合です、しかし、そもそもスプレッドシートでは、Excelのハイパーリンクとは違い、HYPERLINK関数しかありません。そこで、スクリプトでハイパーリンク関数を挿入する方法についてという事になります。

第29回.メモの挿入・削除と改行文字
GoogleAppsScriptで、スプレッドシートのセルにメモを挿入・削除するスクリプトの書き方です、メモを改行する時の改行コードについても解説します。メモは、まさしくメモとして各種注意事項や、変更履歴等として使う事の出来る機能です。ただし、「コメントの挿入」とは違います。

第30回.並べ替え
GoogleAppsScriptで、スプレッドシートを並べ替えます、書き方のバリエーションがいろいろありますが、並べ替えキー列、昇順・降順、これらをどのように指定するかだけの違いになります。書き方のバリエーションごとに順に見ていきましょう。

第31回.入力規則
GoogleAppsScriptでスプレッドシートに入力規則を設定します入力規則は機能がとても多くそれにメ対応したソッドも多数あります。ここではメソッドの一覧と代表的な使い方を参考スクリプトを掲載します。入力規則の作成方法の概要 クラスSpreadsheetAppのメソッドnewDataValidationで入力規則のビルダDataValidationB…

第32回.グラフ
GoogleAppsScriptで、スプレッドシートにグラフを挿入します。スクリプトであまり凝ったレイアウトのグラフを作成しようとすると、結構大変になりますので、そのような場合は、手動で作成したグラフをスクリプトで変更する等の工夫も必要です。

第33回.表示の固定
GoogleAppsScriptでシートの表示(スクロール)の固定を設定します。表とは一般に横に項目縦にデータが連続して入っているものですスクロールした場合に見出しが見えなくなってしまう事のないように設定しておきます。表示(スクロール)の固定に関するメソッド Sheetのメソッドを使います。

第34回.シート保護
GoogleAppsScriptで、スプレッドシートを保護します、スプレッドシートの保護に関しては、少々面倒なスクリプトだと感じます。ここでは理屈抜きでサンプルコードの提示に徹します。保護する場合の実際のスクリプトのサンプルを見ていきましよう。

使えるテクニックを増やす

第35回.スプレッドシートが非常に遅い、高速化するには
GoogleAppsScriptでスプレッドシートのセルを扱うととても処理時間がかかりますあまりにも遅く目で動作がゆっくり見えるレベルですデータ量が多くなっても実用に耐える速度で処理する方法を解説します。スプレッドシートに比べればExcelはかなり速いですがVBAの書き方によっては処理時間がかかってしまう場合もあります。

第36回.フォルダとファイルを扱う(DriveApp)
GoogleAppsScriptで、Googleドライブのファイルやフォルダを扱う場合は、DriveAppクラスを使います。DriveAppクラスの各種メソッドの戻り値(FolderクラスやFileクラス)のメソッドを使って各種操作を行います。

第37回.フォルダの一覧取得・作成・削除(Folder)
GoogleAppsScriptでフォルダ内のサブフォルダ一覧を取得したりフォルダ内にサブフォルダを作ったり削除したりするスクリプトの書き方を解説します。使用するクラスはDriveApp Folder File FolderIterator FileIterator これらのメソッドを使います。

第38回.ファイルの一覧取得・削除(File)
GoogleAppsScriptで、フォルダ内のファイル一覧を取得したり、フォルダ内にファイルを作ったり削除したりするスクリプトの書き方を解説します。使用するクラスは、DriveApp Folder File FolderIterator FileIterator これらのメソッドを使います。




新着記事NEW ・・・新着記事一覧を見る

CSVの読み込み方法(ジャグ配列)|VBAサンプル集(7月15日)
その他のExcel機能(グループ化、重複の削除、オートフィル等)|VBA入門(7月14日)
オートフィルタ退避回復クラスを複数シート対応させるVBAクラス|VBA技術解説(7月6日)
オートフィルタを退避回復するVBAクラス|VBA技術解説(7月6日)
IfステートメントとIIF関数とMax関数の速度比較|VBA技術解説(6月23日)
Withステートメントの実行速度と注意点|VBA技術解説(6月6日)
VBA+SeleniumBasicで検索順位チェッカー(改)|VBA技術解説(6月2日)
マクロでShift_JIS文字コードか判定する|VBA技術解説(6月1日)
Shift_JISのテキストファイルをUTF-8に一括変換|VBAサンプル集(5月31日)
「VBAによる解析シリーズその2 カッコ」をやってみた|エクセル(5月21日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.変数とデータ型(Dim)|ExcelマクロVBA入門
5.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
6.繰り返し処理(For Next)|ExcelマクロVBA入門
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.ExcelマクロVBAの基礎を学習する方法|エクセルの神髄
10.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説



  • >
  • >
  • Google Apps Script(GAS)入門

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。




    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
    本文下部へ