【GAS】セルの値を判別してLINEに送信する方法

LINEとの連携

LINEとの連携一覧

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

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

前回

【GAS】GoogleスプレッドシートからLINEにメッセージを送る方法(トークルームの作成、LINE Notify APIの登録)
  • 簡単にスプレッドシートからLINEにメッセージが送れます。
  • スプレッドシートに貼り付けたボタンからマクロを起動することができます。
  • 今回は、とっても価値の高い方法をお伝えします。


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

    • 定期的にセルを判別する方法がわかります。(LINEに送信できます)
    • GOOGLEFINANCE関数をArrayFormula的な動きをさせることができます。

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

    あのー、乖離率が5を超えたらLINEにメッセージを送るようにしたいんですけど。
    あー、トリガーを設定して判別すればいいよ。

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

    ご質問

    G2セルが5以上になれば通知がくるようにしたいです。

     

     

    準備

    スプレッドシートからLINEにメッセージを送れるようにします。

    【GAS】GoogleスプレッドシートからLINEにメッセージを送る方法(トークルームの作成、LINE Notify APIの登録)
  • 簡単にスプレッドシートからLINEにメッセージが送れます。
  • スプレッドシートに貼り付けたボタンからマクロを起動することができます。
  •  

    動画はこちら

    【GAS】Googleスプレッドシートの値を判別してLINEに送信する方法

    スクリプト

    //セル値を取得しLINEに送信する
    function SendLinefromCell() {
      const SH_NAME = "値のチェック"
      const CKCELL = "G2"
    
    
      const sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SH_NAME)
      let checkval = sh.getRange(CKCELL).getValue()
      console.log(checkval)
    
    
      if (checkval > 5) {
        sh.getRange("H2").setValue("5を超えました。LINEに送信します。")
        // sendLineMessage("5を超えました。")
      }
      else {
        sh.getRange("H2").setValue("5以下です")
    
    
      }
    }

    ※動画のスクリプトから関数名を変更し、シート名とセルの位置を定義しました。あなたの環境に合わせて、SH_NAME,CKCEllを変更してください

     

     

     

    【GAS】GoogleスプレッドシートからLINEにメッセージを送る方法(トークルームの作成、LINE Notify APIの登録)
  • 簡単にスプレッドシートからLINEにメッセージが送れます。
  • スプレッドシートに貼り付けたボタンからマクロを起動することができます。
  •  

     

    シートはこちら

    *クリックすることでシートが開きます。

     

     

    GOOGLEFINANCEでArrayFormula的な動き

    一気にSUMする方法(BYROW,LAMBDA)(Gスプレッドシート)
  • 範囲を行単位で処理するLAMBDA、BYROWの使い方がわかります。
  • ArrayformulaでできなかったSUMやTEXTJOINが実現できます。
  • =BYROW(E17:E19, LAMBDA(rrow,GOOGLEFINANCE(rrow)))

     

     

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

    つぎはこちら

    LINEとの連携一覧

    コメント

    1. いずみ より:

      本当にご丁寧にありがとうございます。感謝します。
      そしてたびたび質問すみません・・
      メッセージが空白ですというようなスクリプトエラーが出ちゃって何回やっても直せません。。。
      エラー内容はメールに送らせていただきました。
      スクリプトは
      https://technical.verybestcbp.com/sendline/
      こちらのコードにLINEトークンを張り付けたのですが、何がおかしいのでしょうか?
      スプレッドシートは共有できるのですが、スクリプトの共有方法がわからず文字での説明だとわかりにくくすみません。。。

    2. いずみ より:

      お返事ありがとうございます!
      おかげさまで、何とかLINEでメッセージは送ることができました。
      しかし、セルに反映された数値そのものは送れるのですが、
      トリガーを設定しても
      5以上or5以下で送るということができません。
      なぜなのでしょうか・・・
      度々すみません

      ソースコードは

      //セル値を取得しLINEに送信する
      function getG2() {
      const SH_NAME = “EURGBPUSD”
      const CKCELL = “G2”

      const sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SH_NAME)
      let checkval = sh.getRange(CKCELL).getValue()
      console.log(checkval)

      if (checkval > 5) {
      sh.getRange(“H2”).setValue(“5を超えました。LINEに送信します。”)
      // sendLineMessage(“5を超えました。”)
      }
      else {
      sh.getRange(“H2”).setValue(“5以下です”)
      // sendLineMessage(“5以下です”)

      }
      }

      • hiroshi より:

        なるほど。
        行の先頭の//はコメントという意味です(行自体がプログラムとして無視されます)。
        なので、
        // sendLineMessage(
        先頭の//を削除して
        sendLineMessage(
        としてください。

        さらにそもそも要件は、5以上だったので
        if (checkval > 5) {
        ではなく
        if (checkval >= 5) {
        となります。

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