質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

1回答

1547閲覧

スプレッドシートとLINEの連携で、特定列の最終行を取得する方法を教えて下さい。

ko1

総合スコア23

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2021/08/10 06:47

お世話になります。ご教示頂けましたら嬉しいです。

下記のコードでLINEからMessaging APIを使用してスプレッドシートに自動で記載する所までは成功しました。

ただG列にLINEメッセージ投稿時、20時15分以降だったら確認と記載「=IF(mod(A2, 1)>=time(20, 15, 0),"確認","")」

H列に、G列で確認が記載された場合はC列の記載を合体させて表示「=K2&" "&C2」と記載しており、

この関数が7行まで入っています。(実際には100行入れていました)

すると、G列とH列に関数が入っているためかLINEから取得したデータが8行目から入ってしまい、getlowを変更したりしてみましたがどうしても8行目から始まってしまいます。

これをG列とH列の関数をGASに入れてしまい、A2からLINEからのメッセージを表示させる事は可能でしょうか。

もしくはG列H列の関数はそのままに、A2から順番に入力が表示されるように設定する方法がありましたら、

お手数ですがご教示の程よろしくお願い申し上げます。

画像:関数が入っている状態
イメージ説明

GAS

1var TOKEN = 'LINE TOKEN'; 2 3function doPost(e) { 4 var userMessage = JSON.parse(e.postData.contents).events[0].message.text; 5 var user_id = JSON.parse(e.postData.contents).events[0].source.userId; 6 //var user_disp_name = JSON.parse(e.postData.contents).events[0].displayName; 7 8 if (userMessage.match(/^\@/)) { 9 userMessage = userMessage.substr(1); 10 } else { 11 return; 12 } 13 14 var response = e.postData.getDataAsString(); 15 var spreadsheetId = "スプレッドシートID"; 16 var sheetName = "log"; 17 var spreadsheet = SpreadsheetApp.openById(spreadsheetId); 18 var sheet = spreadsheet.getSheetByName(sheetName); 19 20 21 var url = "https://api.line.me/v2/bot/profile/" + user_id; 22 var userProfile = UrlFetchApp.fetch(url, { 23 headers: { 24 Authorization: "Bearer " + TOKEN, 25 }, 26 }); 27 var json_user = JSON.parse(userProfile); 28 var user_disp_name = json_user.displayName; 29 console.log(user_disp_name); 30 31 32 var arr = userMessage.split(/\s/); 33 34 arr.unshift(user_disp_name); 35 36 arr.unshift(new Date()); 37 38 sheet.appendRow(arr); 39 40 return ContentService.createTextOutput(JSON.stringify({ content: "post ok" })).setMimeType(ContentService.MimeType.JSON); 41}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

LINEとの連携は気にせず、とりあえず特定の列の最終行を取得したいということでしたら、以下のサイトを参考にしてみてはいかがでしょうか。

https://moripro.net/gas-get-specified-lastcol-lastrow/

投稿2021/08/11 06:14

sawa

総合スコア3002

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問