【GAS】指定の数量数分セルをコピーする方法(Gスプレッドシート)

応用

GAS応用の一覧

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

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

前回

【GAS】スプレッドシートから一気にデータを読み込む方法(2次元配列攻略)
  • GASでスプレッドシートから一気にデータを取得する方法がわかります。
  • チェックボックスのON/OFFで処理を変更する方法がわかります。
  • 今回は、とっても価値の高い方法をお伝えします。


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

    • 2次元配列への格納方法がわかります。
    • setValuesの使い方がわかります。

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

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

    動画はこちら

    【GAS】2次元配列へのpushとSetValues

    シートはこちら

    ※クリックするとシートが開きます。

    スクリプト

    function managenorewrite() {
    
    
      //読み込み位置
      const STRARTROW = 2
      const CLMM = 1
      const CLMCNT = 2 //数量の位置
    
    
      //出力する位置
      const OUTROW = 3
      const OUTCLM = 8
    
    
      const sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
    
    
      let outbuff = []  //出力バッファ
    
    
      for (let row = STRARTROW; sh.getLastRow(); row++) {
        let buff = []
        let wval = sh.getRange(row, CLMM, 1, CLMCNT).getValues()  //1行読み込み
    
    
        console.log("wval=",wval)
    
    
        if (wval[0][0] == ""){
          break
        }
    
    
        let ncnt = wval[0][CLMCNT - 1]
    
    
        buff.push(wval[0][0])
    
    
        console.log("IN outbuff =",outbuff)
    
    
        //数量分バッファに格納する
        for (let i = 0; i < ncnt; i++) {
          outbuff.push(buff)
        }
        console.log("OUT outbuff =",outbuff)
    
    
      }
      sh.getRange(OUTROW, OUTCLM, outbuff.length, 1).setValues(outbuff)
    }

     

    考え方

    セルを1行読み込み

    値部分を格納し個数分PUSHする

     

     

    最後までご覧いただきありがとうございます。

    つぎはこちら

    Googleフォーム登録時に更新日を付加する方法
  • Googleフォームの入力値を簡単に取得できるようになります。
  • 適切に更新日を追加することができます。
  • GAS応用の一覧

    コメント

    タイトルとURLをコピーしました