ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回
【GAS】Googleドキュメントにスプレッドシートのデータを差し込む2
スプレッドシートから一気にデータを読み込む方法がわかります。 関数に複数の引数を渡す方法がわかります。
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
- スプレッドシート上でチェックしたデータを取得する方法がわかります。
- GASの変更方法がわかります。
なので、サクッとマスターして
と答えてあげてください。
GASがわからなくても差し込みする方法はこちら↓
【コピペでできる】 GoogleドキュメントにGスプレッドシートからデータを差し込む
動画はこちら
シートはこちら
*クリックすることでシートが開きます。(コピーしてお使いください)
スクリプト
//テンプレートをコピーしスプレッドシートの単語に置換する
function MakeDocFromTemplate() {
const SH_NAME = "購入一覧" //読み込みシート名
const BASE_URI = "*****************" //元となるファイルのURI
const DEST_FOLDER = "**********************" //コピー先フォルダのURI
const sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SH_NAME)
//元となるファイルを取得
const basefile = DriveApp.getFileById(BASE_URI)
//コピー先のフォルダ
const destfolder = DriveApp.getFolderById(DEST_FOLDER)
const values = sh.getDataRange().getValues()
// console.log(values[0])
let setdata = [] //ステータスとURL用のバッファ
for (i = 1; i < values.length; i++) {
if (values[i][ID_CHECK]) { //チェックボックスがon
setDocdata(values[i], basefile, destfolder)
console.log(values[i][ID_URL])
setdata.push(["作成済み", values[i][ID_URL]]) //バッファに要素を追加する
}
else {
setdata.push(["-----", ""]) //バッファに要素を追加する
}
}
console.log(setdata)
sh.getRange(2,ID_STATUS +1 , values.length - 1, 2).setValues(setdata)
}
// 0 1 2 3 4 5 6 7 8
// 'チェックボックス','', '名前', '郵便番号', '住所', '受注番号', '商品名', 'ステータス', 'URL'
const ID_CHECK = 0 //チェックボックス
const ID_NAME = 2 //名前
const ID_ZIPCODE = 3 //郵便番号
const ID_ADDRESS = 4 //住所
const ID_ORDERNO = 5 //受注番号
const ID_PRODUCTNAME = 6 //商品名
const ID_STATUS = 7 //ステータス
const ID_URL = 8 //URL
function setDocdata(setdata, bfile, dfolder) {
//新しいファイル名
console.log(setdata[ID_NAME])
const newfile = bfile.makeCopy(setdata[ID_NAME], dfolder)
const newid = newfile.getId()
const newurl = newfile.getUrl()
console.log(newurl)
const basedoc = DocumentApp.openById(newid)
console.log(basedoc.getName())
const basebody = basedoc.getBody()
//文字列の置換
//'', '名前', '郵便番号', '住所', '受注番号', '商品名', 'ステータス', 'URL'
basebody.replaceText('{名前}', setdata[ID_NAME])
basebody.replaceText('{郵便番号}', setdata[ID_ZIPCODE])
basebody.replaceText('{住所}', setdata[ID_ADDRESS])
basebody.replaceText('{受注番号}', setdata[ID_ORDERNO])
basebody.replaceText('{商品名}', setdata[ID_PRODUCTNAME])
setdata[ID_URL] = newurl //新しいURL
}
最後までご覧いただきありがとうございます。
つぎはこちら
【GAS】名前付き範囲を取得してGスプレッドシートからGoogleフォームのプルダウンに追加する