1. はじめに
GASツール作成までを書きます。
2. GASの一般的な説明
2-1. 作り方、実行の仕方
3. テンプレシートを使ってGASを触ってみる
3-1. テンプレファイルを自分のところにコピーしましょう
テンプレ
上のテンプレファイルのコピーを作成
3-2. GASの各ファイルを読んでみましょう
ひとくちメモ:プログラミングはこれから起こることを書きます。mainメソッドから順番に、1行目からこれから起こることが書かれているようなイメージで読んでください。
main.js
// メインメソッド。このツールの大元となるメソッドです。
function main(){
// sheet.jsのメソッド「getSheetData」から配列を取得
const data = getSheetData();
// 出力用の配列(空)を用意
var outList = [];
// 配列の中身(連想配列が入っている)を1つずつ実行
for(var member of data){
// check.jsのメソッド「check」を実行。
// メソッド内部でoutListに追加がされているので、どんどんoutListに情報が貯まる
check(outList, member);
}
// sheet.jsのメソッド「writeSheet」を実行
writeSheet(outList, 'out');
}
sheet.js
// 「getSheetData」メソッド。inシートから情報を取得します。
function getSheetData(){
// シートそのものを取得。configというのはシート名。ここを変えればどのシートでも取得できる
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('in');
// シートの情報をすべて取得
var data = sheet.getDataRange().getValues();
// 1行目は見出しなのでスキップ。見出しがない場合にはこの処理は省略可能。
data.shift();
// 空の配列(リスト)をつくる
var list = [];
// 行数分回す
for(var row of data){
// 連想配列として、配列に追加
list.push({
// ID
id : row[0],
// 名前
name : row[1],
// 性別
sex : row[2],
// 血液型
bloodType : row[3],
// 生年月日
birthDay : row[4],
// 電話番号
phoneNumber : row[5],
// 携帯番号
cellPhoneNumber : row[6],
// メール
email : row[7],
// 住所。連想配列の最後なので「,」がない。
address : row[8]
});
}
// 配列を返却
return list;
}
// 「writeSheet」メソッド。
// 引数1 list シートに書き込む配列
// 引数2 sheetName 書き込むシート名
function writeSheet(list, sheetName){
// シートを取得
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
// 2行目から、配列分だけ行を追加
sheet.insertRows(2,list.length);
// 追加範囲に配列を出力
sheet.getRange(
2,
1,
list.length,
list[0].length
).setValues(list);
}
check.js
// 「check」メソッド。
// 引数1 outList シートに書き込む配列
// 引数2 member inシートから取得した各連想配列
function check(outList, member){
// エラー理由の変数を作成
var reason = '';
// もし電話番号が空欄だったら
if(member.phoneNumber === ''){
// 理由に文言を追加
reason += '電話番号なし\n';
}
// もしメールが空欄だったら
if(member.email === ''){
// 理由に文言を追加
reason += 'メールなし\n';
}
// もし理由が空欄じゃなかったら
if(reason !== ''){
// 出力用の配列に追加
outList.push([
// 今の日時
new Date(),
// 名前
member.name,
// 理由。配列の最後だから「,」がない
reason
]);
}
}
3-3. GASを実行してみましょう
3-3. checkメソッドを変更して見る
処理の中に「住所が空欄だったら」というチェック処理を追加してみましょう