Google Apps Script入門
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
#contents
** Google Apps Scriptとはなにか? [#l030c051]
- 概要: Google の各サービスを制御するためのスクリプト
- 公式サイト: https://developers.google.com/apps-script/
- 知識: JavaScript
- 準備: ブラウザ / Googleアカウント
** 開発の準備をしていこう [#m02b94c8]
+ Google Drive >> "GAS_lessons" フォルダを作成
+ Google Sheets >> "MySpreadsheet" を作成
+ Tools >> Script editor... より "MyProject" スクリプト作成
+ デフォルトの Code.gs を "MyScript.gs" へ名称変更
+ View >> Compact controlls を選択しエディタを最大化
** Hello Worldを表示させよう [#jf3f80bf]
- &color{red}(*); GAS は Google のサーバー上で実行される...
- &color{red}(*); 下記コードは実行エラーとなる
function hello() {
alert("hello");
}
- ログに hello world を表示させる(View >> Logs より確認...
function hello() {
Logger.log("hello world");
}
- スプレッドシート上に hello! を表示させる
- &color{red}(*); 実行時に Authorization required ダイア...
function hello() {
Browser.msgBox("hello!");
}
** カスタム関数を作ってみよう [#r88e1e80]
- スプレッドシート上で "=関数名()" で利用可能なカスタム関...
- 引数の値を2倍する関数
function getDouble(n) {
return n * 2;
}
** シートの値を操作してみよう [#s4f0beb6]
- 対象を選択して処理をする(App > ActiveSpreadsheet > Act...
- A1セルを指定して 100 を挿入する関数
function setData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange("A1");
range.setValue(100);
}
** リファレンスを読み解いてみよう [#edbf2044]
- 公式サイト >> REFERENCE >> Spreadsheet >> SpreadsheetAp...
- Range(1, 2) を選択し 100 を挿入し背景色を変更する
function setData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange(1, 2);
range.setValue(100);
range.setBackground("#ff0000");
}
** テストデータを作成してみよう [#s9665ca7]
- 1列目の1〜20行目に配列で定義した名前をランダムに...
- 2列目の1〜20行目にランダムな数値を挿入
function initSheet() {
var sheet = SpreadsheetApp.getActiveSheet();
var names = ["taguchi", "fkoji", "dotinstall"];
sheet.clear();
for (var i = 1; i <= 20; i++) {
sheet.getRange(i, 1).setValue(names[Math.floor(Math....
sheet.getRange(i, 2).setValue(Math.floor(Math.random...
}
}
** 結果の判定をしてみよう [#y5e2644f]
- 2列目の値が70点以上であれば3列目に"OK"を表示し背景色を...
function getResults() {
var sheet = SpreadsheetApp.getActiveSheet();
for (var i = 1; i <= sheet.getLastRow(); i++) {
if (sheet.getRange(i, 2).getValue() >= 70) {
sheet.getRange(i, 3).setValue("OK").setBackground(...
} else {
sheet.getRange(i, 3).setValue("NG").setBackground(...
}
}
}
** addMenu()を使ってみよう [#v22d4aa6]
- 関数をスプレッドシート内のメニューに仕込む
function showMenu() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menu = [
{name: "初期化", functionName: "initSheet"},
{name: "判定", functionName: "getResults"}
];
ss.addMenu("処理メニュー", menu);
}
** onOpen()、onEdit()を使ってみよう [#n4feab4d]
- onOpen(): スプレッドシートが開かれた時に実行される関数
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menu = [
{name: "初期化", functionName: "initSheet"},
{name: "判定", functionName: "getResults"}
];
ss.addMenu("処理メニュー", menu);
}
- onEdit(e): 編集された時に実行される関数
- 編集された時に編集者をコメントに追加する
function onEdit(e) {
e.range.setComment("Edited by: " + e.user);
}
終了行:
#contents
** Google Apps Scriptとはなにか? [#l030c051]
- 概要: Google の各サービスを制御するためのスクリプト
- 公式サイト: https://developers.google.com/apps-script/
- 知識: JavaScript
- 準備: ブラウザ / Googleアカウント
** 開発の準備をしていこう [#m02b94c8]
+ Google Drive >> "GAS_lessons" フォルダを作成
+ Google Sheets >> "MySpreadsheet" を作成
+ Tools >> Script editor... より "MyProject" スクリプト作成
+ デフォルトの Code.gs を "MyScript.gs" へ名称変更
+ View >> Compact controlls を選択しエディタを最大化
** Hello Worldを表示させよう [#jf3f80bf]
- &color{red}(*); GAS は Google のサーバー上で実行される...
- &color{red}(*); 下記コードは実行エラーとなる
function hello() {
alert("hello");
}
- ログに hello world を表示させる(View >> Logs より確認...
function hello() {
Logger.log("hello world");
}
- スプレッドシート上に hello! を表示させる
- &color{red}(*); 実行時に Authorization required ダイア...
function hello() {
Browser.msgBox("hello!");
}
** カスタム関数を作ってみよう [#r88e1e80]
- スプレッドシート上で "=関数名()" で利用可能なカスタム関...
- 引数の値を2倍する関数
function getDouble(n) {
return n * 2;
}
** シートの値を操作してみよう [#s4f0beb6]
- 対象を選択して処理をする(App > ActiveSpreadsheet > Act...
- A1セルを指定して 100 を挿入する関数
function setData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange("A1");
range.setValue(100);
}
** リファレンスを読み解いてみよう [#edbf2044]
- 公式サイト >> REFERENCE >> Spreadsheet >> SpreadsheetAp...
- Range(1, 2) を選択し 100 を挿入し背景色を変更する
function setData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange(1, 2);
range.setValue(100);
range.setBackground("#ff0000");
}
** テストデータを作成してみよう [#s9665ca7]
- 1列目の1〜20行目に配列で定義した名前をランダムに...
- 2列目の1〜20行目にランダムな数値を挿入
function initSheet() {
var sheet = SpreadsheetApp.getActiveSheet();
var names = ["taguchi", "fkoji", "dotinstall"];
sheet.clear();
for (var i = 1; i <= 20; i++) {
sheet.getRange(i, 1).setValue(names[Math.floor(Math....
sheet.getRange(i, 2).setValue(Math.floor(Math.random...
}
}
** 結果の判定をしてみよう [#y5e2644f]
- 2列目の値が70点以上であれば3列目に"OK"を表示し背景色を...
function getResults() {
var sheet = SpreadsheetApp.getActiveSheet();
for (var i = 1; i <= sheet.getLastRow(); i++) {
if (sheet.getRange(i, 2).getValue() >= 70) {
sheet.getRange(i, 3).setValue("OK").setBackground(...
} else {
sheet.getRange(i, 3).setValue("NG").setBackground(...
}
}
}
** addMenu()を使ってみよう [#v22d4aa6]
- 関数をスプレッドシート内のメニューに仕込む
function showMenu() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menu = [
{name: "初期化", functionName: "initSheet"},
{name: "判定", functionName: "getResults"}
];
ss.addMenu("処理メニュー", menu);
}
** onOpen()、onEdit()を使ってみよう [#n4feab4d]
- onOpen(): スプレッドシートが開かれた時に実行される関数
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menu = [
{name: "初期化", functionName: "initSheet"},
{name: "判定", functionName: "getResults"}
];
ss.addMenu("処理メニュー", menu);
}
- onEdit(e): 編集された時に実行される関数
- 編集された時に編集者をコメントに追加する
function onEdit(e) {
e.range.setComment("Edited by: " + e.user);
}
ページ名: