GAS로 도구 만들기
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를 실행해 봅시다.
"main.js"의
out 시트가 이렇게 될 것

승인을 받았을 때는 이쪽

3-3. check 메소드를 변경해 본다
처리 중에 "주소가 비어 있으면"이라는 체크 처리를 추가합시다.
Reference
이 문제에 관하여(GAS로 도구 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nintia8/items/b875fc9b46f93d75fdf8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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를 실행해 봅시다.
"main.js"의
out 시트가 이렇게 될 것

승인을 받았을 때는 이쪽

3-3. check 메소드를 변경해 본다
처리 중에 "주소가 비어 있으면"이라는 체크 처리를 추가합시다.
Reference
이 문제에 관하여(GAS로 도구 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nintia8/items/b875fc9b46f93d75fdf8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
// メインメソッド。このツールの大元となるメソッドです。
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');
}
// 「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」メソッド。
// 引数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
]);
}
}
Reference
이 문제에 관하여(GAS로 도구 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nintia8/items/b875fc9b46f93d75fdf8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)