1. Apps Script へようこそ
Apps Script とは
Apps Script は、Google Workspace の自動化、カスタマイズ、拡張を可能にする迅速なアプリケーション開発プラットフォームです。Apps Script を使用すると、Google Workspace 内の面倒な作業や複雑な作業を効率化して、時間と労力を節約できます。
Apps Script の機能には、次のものがあります。
- Apps Script の組み込みサービスを使用すると、スクリプトで Google Workspace アプリケーション データの読み取り、更新、操作を行うことができます。
- Apps Script のブラウザ内コードエディタを使用してスクリプトを作成できます。コード開発ソフトウェアをインストールしたり実行したりする必要はありません。
- Google Workspace エディタのユーザー インターフェースを設計して、メニュー項目、ダイアログ、サイドバーを使用してエディタから直接スクリプトを有効にすることができます。
この Google スプレッドシートでの Apps Script の基礎の Codelab の再生リストでは、Apps Script の基礎と、Apps Script を使用して Google スプレッドシートの操作性を向上させる方法を学習します。この Codelab では、Apps Script の基本を学習します。
スプレッドシート サービス
Apps Script を使用して Google スプレッドシートを拡張すると、時間と労力を節約できます。Apps Script には、スクリプトが Google スプレッドシート ファイルとその中のデータとやり取りできるようにする Spreadsheet サービスが用意されています。このサービスを使用すると、次の一般的なスプレッドシート タスクを自動化できます。
- スプレッドシートを作成または変更します。
- セルのデータ、数式、書式設定を読み取り、更新する。
- カスタムボタンとメニューを作成します。
- 他の Google アプリケーションやサードパーティ ソースからデータをインポートしたり、データをエクスポートしたりできます。
- スプレッドシートを共有し、アクセスを制御します。
学習内容
このプレイリストでは、Google スプレッドシートで Apps Script を使い始めるために必要なすべてのトピックについて説明します。
このプレイリストの Codelab は順番に読むことを想定しています。この Codelab から始めて、順番に完了すると、最適な学習効果が得られます。
この Codelab の内容について詳しくは、次のセクションに進んでください。
2. はじめに
このプレイリストの最初の Codelab へようこそ。この Codelab では、Google スプレッドシートで Apps Script を使用する基本を学びます。この Codelab では、特にマクロとカスタム関数という 2 つの重要なコンセプトに焦点を当てます。
マクロとは、Google スプレッドシートで記録された一連の操作のことです。記録したマクロは、メニュー項目またはショートカット キーを使用して後で有効にし、これらの操作を繰り返すことができます。Google スプレッドシートと Apps Script コードエディタの両方で、独自のマクロを作成して更新できます。
Apps Script コードエディタでは、カスタム関数を作成することもできます。Google スプレッドシートが提供する組み込み関数(SUM
や AVERAGE
など)と同様に、Apps Script を使用して、単純な演算やニッチな演算(変換や文字列の連結など)用の独自のカスタム関数を作成できます。作成した関数は、スプレッドシートで組み込み関数と同じように呼び出すことができます。カスタム関数は、作成したセル数式で使用することもできます。必要に応じて、他の関数と組み合わせることもできます。
この Codelab に関連するコンセプトと要件については、以下をご覧ください。
学習内容
- Google スプレッドシートのスクリプトを作成する方法。
- Apps Script エディタの操作方法。
- マクロを作成および更新する方法。
- 初めてのスプレッドシートのカスタム関数を作成する方法。
必要なもの
- JavaScript の基本的な知識
- Google スプレッドシートに関する基礎知識
- スプレッドシートの A1 形式を読み取る機能
これで導入は終わりです。次のセクションに進んで、マクロの操作を開始しましょう。
3. Google スプレッドシートでマクロを作成する
通常、スプレッドシートで作業していると、セルの値のコピー、書式設定、数式の作成などの繰り返し作業のループに陥ることがあります。このような作業は退屈で、ミスにつながる可能性があります。繰り返し行う操作を自動化するには、Google スプレッドシートのマクロを使用します。マクロを使用すると、スプレッドシートで一連の操作を「記録」できます。マクロを記録しておくと、簡単なホットキー操作で、スプレッドシートの別の場所で同じ操作を繰り返すことができます。
このセクションでは、スプレッドシートでマクロを作成する方法について説明します。次のセクションでは、Apps Script を使用してマクロを作成する方法について説明します。
始める前に
続行する前に、データを含むスプレッドシートが必要です。Google が用意したデータシートをご利用いただけます。このリンクをクリックしてデータシートをコピーし、[コピーを作成] をクリックしてください。
使用できるサンプル スプレッドシートのコピーが Google ドライブ フォルダに作成され、「Copy of Top 10 Highest Grossing Films (2018)」という名前が付けられます。
マクロを作成する
スプレッドシートが用意できたら、Google スプレッドシートでマクロを記録できます。この例では、データのヘッダー行の書式を設定するマクロを作成します。手順は次のとおりです。
- セル A1 をクリックして、カーソルを行に配置します。これがヘッダー行です。
- メニューで、[拡張機能] > [マクロ] > [マクロを記録] を選択します。
記録を開始すると、Google スプレッドシートで行ったすべての操作(セルのハイライト表示、データの追加、別のシートへの切り替え、書式設定など)が記録されます。これらの操作は、後でマクロを保存して有効にすると、繰り返される「スクリプト」になります。
- [マクロ] ダイアログで、[相対参照] を選択します。
- [行 1] を選択します。
- 最上行の [塗りつぶしの色] を白から [濃いマゼンタ 3] に変更します。
- 一番上の行の [テキストの色] を黒から白に変更します。
- テキストを太字にするには、Ctrl+B キー(macOS の場合は Cmd+B キー)を押します。
- 最上部の行を固定するには、[表示] > [固定] > [1 行] を選択します。
- マクロ ダイアログで [保存] をクリックします。マクロの名前を入力する新しいダイアログが表示されます。名前として「Header」と入力し、[保存] をクリックします。
スプレッドシートのユーザー インターフェースを使用して、ヘッダーの書式設定に特化したマクロを作成しました。
マクロを有効にする
新しいマクロをスプレッドシートに適用する手順は次のとおりです。
- シートを作成するには、シートを追加アイコン
をクリックします。
- 新しいシートの A1:C2 にテキストを追加します。以下の入力例を参考にしてください。
- 1 行目をハイライト表示します。
- 選択した領域にマクロを適用するには、[拡張機能] > [マクロ] > [ヘッダー] をクリックします。
- 画面上の指示に沿って操作し、マクロを承認します。
- ステップ 4 を繰り返してマクロを再度実行します(承認すると最初の実行が停止します)。
これで、スプレッドシートでマクロを適用する方法を学習しました。スプレッドシートは次のようになります。
マクロを使用すると、スプレッドシートを効率的に作成できます。この Codelab の次のパートでは、マクロをさらに強力にする方法について説明します。マクロを記録する際に実際に行っているのは、Apps Script のコードを記述することです。実際には、マクロのアクションに対応するコードがスプレッドシートによって作成されます。次のセクションでは、Apps Script のブラウザ内エディタを使用してコードを直接変更する方法について説明します。
4. スクリプト エディタのマクロ
マクロを作成すると、Google スプレッドシートによって操作が Apps Script 関数として保存されます。マクロを有効にすると、Google スプレッドシートは Apps Script 関数を呼び出して、これらのアクションを同じ順序で適用します。
スクリプト エディタ
マクロを作成したら、そのコードを確認できます。マクロ スクリプトを表示するには、[拡張機能] > [Apps Script] をクリックして、Apps Script のブラウザ コードエディタを開きます。
スクリプト エディタを使用すると、Apps Script でコードを記述し、Google サーバーでスクリプトを実行できます。
macros.gs
の分析
現在のスクリプトを確認します。Google スプレッドシートでは、Header
マクロを記録したときに macros.gs
スクリプト ファイルが作成され、Header
という名前の対応する Apps Script 関数が入力されました。Header
マクロを有効にすると、スプレッドシートはこの関数を実行します。
Apps Script のマクロ関数の構造については、下の画像をご覧ください。手順を別の順序で記録した場合や、記録中にスプレッドシート内をクリックした場合は、コードがこの例と少し異なることがあります。
1 行目は、認可に影響するアノテーション コメントです。
/** @OnlyCurrentDoc */
ほとんどのスクリプトは、実行前にユーザーに権限を求めるようになっています。これらの権限は、ユーザーがスクリプトに許可する操作を制御します。スクリプト プロジェクトに @OnlyCurrentDoc
コメントがある場合、Apps Script は現在のスプレッドシートへのアクセスと更新の権限のみをリクエストします。このコメントがないと、Apps Script はユーザーのすべてのスプレッドシートへのアクセスと更新の権限を求めます。単一のファイルを操作する場合、このアノテーションを含めることをおすすめします。このコメントはマクロ レコーダーによって自動的に追加されます。
Apps Script がマクロの指示をどのように表しているかを確認するには、次の関数をご覧ください。
function Header(){
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(
spreadsheet.getCurrentCell().getRow(),
1, 1, sheet.getMaxColumns()).activate();
spreadsheet.getActiveRangeList().setBackground('#4c1130')
.setFontColor('#ffffff')
.setFontWeight('bold');
spreadsheet.getActiveSheet().setFrozenRows(1);
};
このコードは、Header
マクロを有効にすると実行されます。function
の後のラベル Header()
は、関数の名前とそのパラメータを定義します。Apps Script のマクロ関数には入力が不要であるため、Header()
にパラメータは不要であることを認識します。Apps Script では、常に中かっこで関数の本体を囲みます。
このプレイリストの後の Codelab では、マクロの作成に関連するクラスとコンセプトについて説明します。ここでは、次のコードの説明を読んで、マクロの構成要素とその役割について大まかに把握してください。最初の行を検討します。
var spreadsheet = SpreadsheetApp.getActive();
ここで、getActive()
は、スプレッドシートの現在のアクティブなスプレッドシート ファイルを表すオブジェクトを返し、それを新しい変数 spreadsheet
に設定します。
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(
spreadsheet.getCurrentCell().getRow(),
1, 1, sheet.getMaxColumns()).activate();
これらの行は、最初の行をクリックしてハイライト表示するアクションに対応しています。これを「アクティベーション」と呼びます。1 行目は現在のシートを sheet
変数に格納し、2 行目は getRange()
メソッドを使用して最初の行全体を取得し、activate()
を呼び出して有効にします。最初の行は、特定の行番号と列番号を使用して指定します。spreadsheet.getCurrentCell().getRow()
呼び出しは現在の行番号を返し、sheet.getMaxColumns()
はシートの最大列数を返します。
spreadsheet.getActiveRangeList().setBackground('#4c1130')
.setFontColor('#ffffff')
.setFontWeight('bold');
このコードは複雑になります。spreadsheet
でメソッドを効率的に呼び出すため、コードは getActiveRangeList()
に 3 つのメソッドをスタックし、コードがこの spreadsheet
メソッドを複数回冗長に呼び出すのを防ぎます。Apps Script を使用してコーディングするにつれて、1 つのクラスで複数のメソッドを呼び出すこの慣例(メソッド チェーンとも呼ばれます)に慣れてくるでしょう。コードブロック内の各メソッドの簡単な説明については、以下をご覧ください。
getActiveRangeList()
は、spreadsheet
の現在アクティブなRangeList
を返します。この場合、前の行で有効になった最初の行になります。setBackground(color)
メソッドとsetFontColor(color)
メソッドはどちらも、アクティブな範囲内のセルの色属性を変更します。setFontWeight(fontWeight)
は、アクティブな範囲のセルのフォントの太さを調整します。
最後に、最終行でマクロの最初の行を固定します。
spreadsheet.getActiveSheet().setFrozenRows(1);
これは、マクロを記録したときに生成されたスクリプトです。上記の用語や方法についてご不明な点がありましたら、お気軽にお問い合わせください。この説明は、Apps Script が一般的なマクロ関数で重視するアイデアや、今後の Codelab で取り上げるトピックについて考えていただくことを目的としています。
次のセクションでは、Header()
関数のコードを操作して、スクリプト エディタを使用してマクロをさらにカスタマイズする方法について説明します。
Apps Script でマクロをカスタマイズする
Apps Script エディタに、以前に Google スプレッドシートで作成したマクロが表示されます。関数本体の内容を調整することで、マクロの指示をカスタマイズして、さまざまなアクションや追加のアクションを実行できます。次の演習では、スクリプト エディタを使用してマクロを操作するさまざまな方法を説明します。
影響を受けるセルを変更する
マクロを変更して、行全体ではなく最初の行の最初の 10 列のみに影響するようにします。マクロを削除して再録音することもできます。ただし、Apps Script エディタを使用すると、これらの変更を直接行うことができます。その方法の 1 つは次のとおりです。
- スクリプト エディタで、
sheet.getMaxColumns()
を10
に置き換えます。この編集により、スプレッドシートでマクロが影響するセルの範囲が変更されます。
/** @OnlyCurrentDoc */
function Header(){
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(
spreadsheet.getCurrentCell().getRow(),
1, 1, 10).activate();
/* sheet.getMaxColumns() replaced with 10.*/
spreadsheet.getActiveRangeList().setBackground('#4c1130')
.setFontColor('#ffffff')
.setFontWeight('bold');
spreadsheet.getActiveSheet().setFrozenRows(1);
}
- スクリプトを保存するには、[保存]
をクリックします。
- プロジェクトの名前を変更するには、新しいプロジェクト名として「Macros and Custom Functions」と入力し、[名前を変更する] をクリックします。
- シートを作成するには、スプレッドシートでシートを追加アイコン
をクリックします。
- スクリプト エディタの関数リストで
Header
を選択し、[実行] をクリックします。
新しいシートに次の結果が表示されます。
アクティブ範囲またはターゲット範囲を変更すると、マクロは最初の行の一部にのみ影響するようになります。Apps Script のメソッドの多くは、処理対象のセルを指定するパラメータとして範囲または A1 形式の表記を受け取ります。
次に、マクロの色をカスタマイズする方法について説明します。
マクロの色を変更する
Apps Script を使用すると、スプレッドシートのマクロやその他の要素の配色をデザインする際に、範囲の塗りつぶし色やテキストの色を変更できます。以下の手順に沿って、マクロの色をカスタマイズする方法を確認します。
この手順では、マクロの背景色を変更する方法について説明します。
- スプレッドシートで、元のデータが含まれているシート(シート 1)に戻ります。
- 最初の行をクリックしてハイライト表示します。
- スクリプト エディタで、背景色
#4c1130
を#afeeee
に置き換えます。これらの値は、16 進数 3 桁表記を使用してさまざまな色を表します。
/** @OnlyCurrentDoc */
function Header(){
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(
spreadsheet.getCurrentCell().getRow(),
1, 1, 10).activate();
spreadsheet.getActiveRangeList().setBackground('#afeeee')
/* #4c1130 replaced with #afeeee.*/
.setFontColor('#ffffff')
.setFontWeight('bold');
spreadsheet.getActiveSheet().setFrozenRows(1);
}
- スクリプトを保存するには、[保存]
をクリックします。
- 関数リストから
Header
を選択し、[実行] をクリックします。
スプレッドシートでは、1 行目の最初の 10 列の背景色がカスタムのターコイズ色に変更されます。
setBackground(color)
のパラメータで 16 進数の色表記を #4c1130
(濃いマゼンタ 3)から #afeeee
(淡いターコイズ。スプレッドシートのデフォルトのカラーメニューでは選択できないオプション)に切り替えると、マクロの背景色の色属性が変更されます。
これで、マクロで設定された背景色セットが変更されました。テキストの色も変更する場合は、2 つ目のカラーコードを変更します。
- スプレッドシートで、最初の行をクリックして、ハイライト表示されていることを確認します。
- スクリプト エディタで、フォントの色
#ffffff
を#191970
に置き換えます。これにより、マクロはフォントの色を濃い青に設定します。
/** @OnlyCurrentDoc */
function Header(){
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(
spreadsheet.getCurrentCell().getRow(),
1, 1, 10).activate();
spreadsheet.getActiveRangeList().setBackground('#afeeee')
.setFontColor('#191970')/* #ffffff replaced with #191970.*/
.setFontWeight('bold');
spreadsheet.getActiveSheet().setFrozenRows(1);
}
- スクリプトを保存するには、[保存]
をクリックします。
- 関数リストから
Header
を選択し、[実行] をクリックします。
スプレッドシートに戻ると、ヘッダー行のテキストの色が濃い青色になっていることがわかります。
マクロは、スプレッドシートの操作を Apps Script コードとして記録したものであることがわかりました。次のセクションでは、Apps Script を使用して Google スプレッドシートを操作する別の方法であるカスタム関数について説明します。
5. 最初のスクリプトをコーディングする: カスタム関数
ほとんどのスプレッドシート アプリケーションと同様に、Google スプレッドシートには =SUM()
などの組み込みの数式関数がいくつかあり、スプレッドシートのデータをすばやく計算できます。カスタム関数は、Apps Script を使用して指定する関数です。カスタム関数を定義すると、組み込み関数と同じように、スプレッドシートのどこでも使用できます。
このセクションでは、通貨換算を行うカスタム関数を Apps Script で作成する方法について説明します。
スクリプト ファイルを作成する
「マクロ」セクションで使用したスプレッドシートとスクリプト プロジェクトを使用して、次の手順に沿って新しいスクリプトを作成する方法を学びます(このスクリプトは、最終的に最初のカスタム関数を作成するために使用できます)。
- Apps Script ファイルを作成するには、スクリプト エディタに戻ります。
- [ファイル] の横にある [ファイルを追加]
> [スクリプト] をクリックします。
- 新しいスクリプト ファイルに
customFunctions
という名前を付け、Enter キーを押します。(Apps Script は、スクリプト ファイル名に.gs
拡張子を自動的に付加します)。
エディタ内に customFunctions.gs
という名前の新しいタブが表示されます。
カスタム関数専用のスクリプトを作成したので、コードを入力できます。
米ドルをスイスフランに換算する
たとえば、「2018 年の興行収入上位 10 位の映画」のデータを変更して、米ドルだけでなくスイス フランでの世界の興行収入額も表示したいとします。カスタム関数を使用すると、簡単に実現できます。次の演習では、ドル値をフラン値に数学的に変換するカスタム関数を作成する方法を説明します。
最初のカスタム関数を作成する前に、関数が適切な出力を示すようにデータセットを変更します。手順は次のとおりです。
- スプレッドシートで、H 列を右クリックします。
- 表示されたメニューで [右に 1 つ挿入] をクリックします。
- セル I1 に「Worldwide_Gross (Swiss francs)」というラベルを付けます。
これで、コンバージョン カスタム関数の結果を保存できる列ができました。次に、スクリプト エディタを使用して最初のカスタム関数を作成します。
customFunctions.gs
で、myFunction()
のコードを次のコードに置き換えます。
/**
* Converts US dollars to Swiss francs.
*
* @param {number} dollars The total number of dollars.
* @return {number} swissFrancs The converted total of Swiss francs.
* @customfunction
*/
function USDTOCHF(dollars){
var swissFrancs = dollars * .99;
return swissFrancs;
}
これは、米ドルをスイスフランに換算するコードです。以下の手順に沿って、スプレッドシートでカスタム関数を実行する方法をご確認ください。
- スクリプトを保存するには、[保存]
をクリックします。
- スプレッドシートでセル I2 を選択します。
- 関数バーに「
=USDTOCHF(H2)
」と入力します。
列の残りのセルに数式を適用するには:
- カーソルを I2 セルの右下隅に移動し、小さな青いボックスを選択します(青いボックスをポイントすると、カーソルが
に変わります)。
- 青いボックスを下方向にドラッグして、範囲 I3:I11 をハイライト表示します。
列 I に、列 H の米ドル値をスイス フランに換算した値が表示されます。
これで、最初のカスタム関数が作成されました。次のセクションでは、USDTOCHF()
を構成するコードについて説明します。
USDTOCHF()
の分析
最初のコメントには、コードの目的が詳しく説明されています。
/**
* Converts US dollars to Swiss francs.
*
* @param {number} dollars The total number of dollars.
* @return {number} swissFrancs The provided value in Swiss francs.
* @customfunction
*/
このようなコメント ブロックは、プログラミングで関数が何をするかを説明するために頻繁に使用されます。
このコメントには、関数の説明(ドルをフランに変換する)と、関数のパラメータと戻り値の型を説明するアノテーションの 2 つの部分があります。
Apps Script は、アノテーションで JSDoc を使用して、コードのドキュメント化とオートコンプリートのヒントの作成を支援します。USDTOCHF()
で使用される各アノテーションが Apps Script の開発にどのように役立つかについては、以下をご覧ください。
@param
:@param
アノテーションを使用して、関数に渡される各パラメータを記述できます。@return
:@return
アノテーションを使用して、関数が返すものを記述できます。@customfunction
: カスタム関数のドキュメント コメントには、常に@customfunction
を追加する必要があります。このアノテーションは、以下のようにセルに関数名を入力したときに、Google スプレッドシートが組み込み関数を自動補完するのと同じように、カスタム関数を自動補完するよう Google スプレッドシートに通知します。
予測入力のポップアップに表示されるテキストが、コメント ブロックに配置した説明テキストと完全に一致していることに注目してください。カスタム関数を使いやすくするには、作成する説明文が適切かつ完全であることを確認します。
次に、関数 USDTOCHF()
のコードに注目します。
function USDTOCHF(dollars){
var swissFrancs = dollars * .99;
return swissFrancs;
}
前述のように、USDTOCHF()
は数値変数 dollars を受け取り、固定為替レートを掛けて、数値変数 swissFrancs
でスイス フランに換算された値を返します。入力パラメータは、カスタム関数をセルに追加するときに指定したセルに含まれる値です。この例では、入力された金額は H 列から取得されます。出力値 swissFrancs
は、関数のセル(この例では列 I)に配置されます。
次のセクションで説明するように、カスタム関数は数値または文字列の値で動作します。
文字列の接頭辞を連結する
関数 USDTOCHF()
の数値出力にスイス フランのプレフィックス CHF
を含めたいとします。Apps Script で連結演算子(+
),
を使用すると、次の手順で説明するように、この処理を行うことができます。
- スクリプト エディタで、
@return
アノテーションを更新して、数値ではなく文字列を返すようにします。 return swissFrancs
をreturn 'CHF' + swissFrancs
に変更します。
+
演算子は、swissFrancs
に含まれる値の先頭に文字列 CHF
を追加します。コードは次のようになります。
/**
* Converts US dollars to Swiss francs.
*
* @param {number} dollars The total number of dollars.
* @return {string} swissFrancs The provided value in Swiss francs.
* @customfunction
*/
function USDTOCHF(dollars){
var swissFrancs = dollars * .99;
return 'CHF' + swissFrancs;
}
- スクリプトを保存するには、[保存]
をクリックします。
スイス フランの文字列が列 I の値の前に付加されます。
これで、カスタム関数は米ドルをスイス フランに変換するだけでなく、通貨を文字列の接頭辞付きで出力するようになりました。
高度: 外部データを取得する
これは基本的なカスタム関数としては良いスタートですが、この例ではドルからスイスフランへの為替レートが一定であることを前提としています。代わりに、現在の為替レートを使用し、シートが再読み込みされるたびに値が再計算されて現在の換算額が表示されるようにしたいとします。そのためには、現在の為替レートを把握する手段が必要です。Google スプレッドシートでは、この情報をすぐに利用することはできませんが、Apps Script を使用して取得できます。
次のコードを使用すると、スイスフランから米ドルへの現在の換算レートを取得できます。
function USDTOCHF(dollars){
// Gets a cache that is common to all users of the script.
var cache = CacheService.getScriptCache();
// Accesses the memory location (rates.CHF) of the script cache.
var rate = cache.get('rates.CHF');
// If a cache miss occurs, the program fetches the current
// CHF rate from an API and stores the rate in the cache
// for later convenience.
if (!rate) {
var response =
UrlFetchApp.fetch('https://api.exchangeratesapi.io/latest?base=USD');
var result = JSON.parse(response.getContentText());
rate = result.rates.CHF;
cache.put('rates.CHF', rate);
}
// Converts dollars to CHF according to the latest rate.
var swissFrancs = dollars * rate;
// Returns the CHF value.
return 'CHF' + swissFrancs;
}
このコードは、サードパーティの為替レート API を使用して、金融情報サーバーから現在の為替レートを取得します。これは、UrlFetchApp
や CacheService
などの Apps Script サービスを使用して行われます。これらの高度なコンセプトはこの Codelab の範囲外ですが、Apps Script の汎用性を理解して、Google スプレッドシートで複雑なタスクを自動化できるようになります。
カスタム関数のガイドライン
カスタム関数の演習を完了しました。プロジェクトでカスタム関数を使用する際は、カスタム関数に特定の制限があることを理解しておくことが重要です。次のリストは、Google スプレッドシートのカスタム関数ガイドに記載されている制限事項をまとめたものです。
- ユーザー認証を必要とするカスタム関数は作成しないでください。カスタム関数は、サンプルデータの計算やテキスト編集などの簡単なタスクを実行するために作成します。Apps Script サービスの使用をご覧ください。
- カスタム関数に別の組み込み関数と同じ名前を付けたり、名前の末尾にアンダースコアを付けたりしないでください。命名ガイドラインを確認します。
- 可変引数をカスタム関数に渡さないでください。カスタム関数に引数として渡すことができるのは、決定論的(固定)値のみです。
=RAND()
の結果などの可変引数を渡すと、カスタム関数が機能しなくなります。引数のガイドラインをご覧ください。 - 完了までに 30 秒以上かかる関数は作成しないでください。時間がかかるとエラーが発生するため、関数コードはシンプルで、スコープを限定してください。カスタム関数で行う計算は、できるだけシンプルにすることをおすすめします。戻り値のガイドラインをご覧ください。
スクリプト エディタを使用してマクロを操作し、カスタム関数を作成することで、スプレッドシートを改善できるようになりました。次のセクションでは、学習した内容と、スクリプト作成スキルを向上させるために次にできることを確認します。
6. まとめ
Google スプレッドシートを使用した Apps Script の基礎の最初の Codelab が完了しました。Google スプレッドシートのマクロとカスタム関数を作成、編集することで、Apps Script の基本的なコンセプトを学びました。次の Codelab では、Apps Script の知識をさらに深めることができます。
この Codelab は役に立ちましたか?
学習した内容
- Apps Script の基本的なコンセプト。
- スクリプト エディタの操作方法。
- スプレッドシートのマクロを作成、更新する方法。
- Google スプレッドシートのカスタム関数を作成する方法。
次のステップ
このプレイリストの次の Codelab では、Apps Script の スプレッドシート サービスのコアクラスと用語について説明します。このサービスを使用すると、Apps Script を使用して Google スプレッドシートのデータの値と表示を細かく制御できます。
次の Codelab は、スプレッドシート、シート、範囲で確認してください。