ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回
【GAS基礎講座 2. 】ループを使い4つのセルに5を足し込んでいく方法(for)
GASでループさせることができるようになります。
一つの動作を連続して行うことができます。
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
- 自作関数と組み合わせてQUERYを実行する方法がわかります。
- サブルーチンの作り方がわかります。
なので、サクッとマスターして
と答えてあげてください。
動画はこちら
スクリプト
function test_makeQuery() {
// makeQuery("aaa","vvv","cccc")
makeQuery("","vvv","cccc")
// makeQuery("aaa", "", "ccc")
// makeQuery("aaa", "", "")
}
function makeQuery(strq1, strq2, strq3) {
const SELECT_A = "select *"
let basestr = ""
basestr = addstring( basestr,strq1 ,"A")
basestr = addstring( basestr,strq2 ,"B")
basestr = addstring( basestr,strq3 ,"C")
if (basestr === ""){
retstr = SELECT_A
}
else{
retstr = SELECT_A + " where " + basestr
}
// // 先頭にはandを付加しない(1個めの引数)
// if (basestr === "") {
// basestr = strq1
// }
// // 先頭にはandを付加しない(2個めの引数)
// if (strq2 !== "") {
// if (basestr === "") {
// basestr = strq2
// }
// else {
// basestr += " and " + strq2
// }
// }
// // 先頭にはandを付加しない(3個めの引数)
// if (strq3 !== "") {
// if (basestr === "") {
// basestr = strq3
// }
// else {
// basestr += " and " + strq3
// }
// }
console.log(retstr)
return retstr
}
// 先頭以外の場合はandを付加する
function addstring( bstr,addstr ,colstr){
if (addstr !== "") {
if (bstr === "") {
bstr = colstr + "='"+ addstr + "'"
}
else {
bstr = bstr + " and " +colstr + "='"+ addstr + "'"
}
}
console.log(bstr)
return bstr
}
シートはこちら
引数を範囲にした場合
- 自作関数で複数のセルを引数にする方法がわかります。
- ドキュメントの記載方法がわかります。
function test_arraytest() {
let strss = [["aaa", "bbb", "ccc"]]
arraytest(strss)
}
/**
* makeQueryRange
* QUERY文を生成する
* @param {Array<string[]>} strss 項目の範囲
* @return QUERY文
* @customfunction
*/
function makeQueryRange(strss) {
// let strss = [["aaa","bbb","ccc"]]
const itembuf = ["A", "B", "C"]
const SELECT_A = "select *"
let basestr = ""
let strs = strss[0]
console.log(strs.length)
for (let i = 0; i < strs.length; i++) {
basestr = addstring(basestr, strs[i], itembuf[i])
console.log(strs[i])
}
if (basestr === "") {
basestr = SELECT_A
}
else {
basestr = SELECT_A + " where " + basestr
}
return basestr
}
つぎはこちら
ExcelやGoogleスプレッドシートの名簿、住所録(テストデータ)作成方法
個人情報(氏名、フリガナ、生年月日、住所、血液型、電話番号)のサンプルデータが 一瞬で作れます。
コメント