サイトアイコン Googleスプレッドシート 完全攻略

【GAS】Googleドキュメントにスプレッドシートで指定したデータを差し込む

GAS応用の一覧

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

【GAS】Googleドキュメントにスプレッドシートのデータを差し込む2
スプレッドシートから一気にデータを読み込む方法がわかります。 関数に複数の引数を渡す方法がわかります。

今回は、とっても価値の高い方法をお伝えします。


これを知ることであなたは、

逆に、知らないと

なので、サクッとマスターして

と答えてあげてください。

GASがわからなくても差し込みする方法はこちら↓

【コピペでできる】 GoogleドキュメントにGスプレッドシートからデータを差し込む
  • Googleドキュメントの定型文にGoogleスプレッドシートのデータを差し込むことができます。
  • GASがなんのことかわからなくてもコピペで簡単にできます。
  • さらに自分用に簡単にカスタマイズできます。
  •  

     

    動画はこちら

    シートはこちら

    *クリックすることでシートが開きます。(コピーしてお使いください)

    スクリプト

    //テンプレートをコピーしスプレッドシートの単語に置換する
    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フォームのプルダウンに追加する
  • GASで名前付き範囲の取得ができます。
  • GASでGoogleフォームに名前付き範囲の項目を追加することができます。
  • GASでプルダウン、ラジオボタン、リストボックスの項目も追加できます。
  • GAS応用の一覧

    モバイルバージョンを終了