【GAS】すでに入力済みかチェックする方法(forEachは使うな someメソッド)

応用

GAS基礎講座一覧

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

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

前回

【GAS基礎講座 26.】行挿入し現在の行をコピペする方法(マクロの作成)
GASで行の追加ができます。 GASで行のコピペができます。 GASをショートカットキーで呼び出すことができます。

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


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

  • 最後に入力した値が、今までに入力していないかどうかをチェックすることができます。
  • 配列内のチェックが簡単にできるようになります。

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

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

動画はこちら

Googleシート【GAS】すでに入力済みかチェックする方法(forEachは使うな someメソッド)

※サムネは、基礎講座となっていますが中級以上ですね。

シートはこちら

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

スクリプト

チェックする値の取得

  const CKROW = 5 //5列目
  const ss = SpreadsheetApp.getActiveSpreadsheet()
  const sh = ss.getActiveSheet()
  const val = sh.getActiveCell().getValue()
  const lrow = sh.getActiveCell().getRow()

  const ckvaluse = sh.getRange(2, CKROW, lrow - 2).getValues()

 

 

 

 

 

ループでやった場合
for(let i=0;i<lrow-2;i++){
    console.log(ckvaluse[i][0])
    if(ckvaluse[i][0] === val){
      console.log("すでに使用済み")
    }
  }

 

forEachでやった場合
 ckvaluse.forEach(item =>  {
    console.log(item)
    if (item[0] === val) {
      console.log("すでに使用済み")
    }
  })

 

someでやった場合
let ret = ckvaluse.some(item => item[0] === val)
  if (ret) {
    console.log("すでに使用済み")
  }

 

let ret = ckvaluse.some(item => item[0] === val)

だけでいけちゃいます。

someのイメージ
 ret = ckvaluse.some(function (item, i, ckvaluse) {
    if (item[0] === val) {
      console.log("すでに使用済み")
      return (true)
    }
  })

 

 

 

 

 

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

つぎはこちら

【GAS】日付形式の設定とセル内で改行させる方法(エスケープ文字)
  • GASで日付データの表示形式を設定する方法がわかります。
  • GASで文字列を改行させる方法がわかります。
  • GAS基礎講座一覧

    コメント

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