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

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

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

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google Apps Script

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

Q&A

解決済

1回答

1338閲覧

GASでアクティブなセルを取得する方法

mura-tin

総合スコア2

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google Apps Script

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

0グッド

1クリップ

投稿2021/09/08 15:23

前提・実現したいこと

GASで外部から受け取ったデータをスプレッドシートに書き込み、そのセルの行と列を取得する。

発生している問題・エラーメッセージ

4行目までで、doPost関数で値を受け取りスプレッドシートに記入するまでは出来ました。しかし、5行目以下のコードで記入したセルをアクティブなセルとして取得してメッセージを出すことは出来ませんでした。

該当のソースコード

GAS

1function doPost(e) { 2 var name = e.parameter.name; 3 var hobby = e.parameter.hobby; 4 SpreadsheetApp.getActiveSheet().getRange(8,1).setValue(hobby); 5 var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 6 var objSheet = objSpreadsheet.getActiveSheet(); 7 var objCell = objSheet.getActiveCell(); 8 const gyo = "行:"+objCell.getColumn(); 9 const retu = "列:"+objCell.getRow(); 10 Browser.msgBox( gyo+retu ); 11}

試したこと

参考元"https://www.pre-practice.net/2018/01/a1.html"
"https://breezegroup.co.jp/201906/gas-get/"

補足情報(FW/ツールのバージョンなど)

JavaScript

1<!DOCTYPE html> 2<head> 3 <meta charset="UTF-8"> 4 <title>doPostのテスト</title> 5</head> 6<body> 7 <h1>doPostのテスト(Form送信)</h1> 8 <form method="post" action="https://script.google.com/macros/s/・・・/exec"> 9 <p> 10 <label>名前 <input type="text" name="name"></label> 11 </p> 12 <p> 13 <label>趣味 <input type="text" name="hobby"></label> 14 </p> 15 <p> 16 <input type="submit" value="送信"> 17 </p> 18 </form> 19</body> 20</html>

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

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

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

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

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

guest

回答1

0

ベストアンサー

Browser.msgBox( gyo+retu );

とされていますが、これはPostしたクライアント側に表示されるわけではありません。
クライアント側で表示しようとすれば、HTMLを返すなどして画面を切り替えて表示するほかないと思います。

投稿2021/09/08 23:03

macaron_xxx

総合スコア3191

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

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

mura-tin

2021/09/09 13:24

return ContentService.createTextOutput('アクティブなセルの行は'+gyo+'、列は'+retu); でHTMLを返すことはできますがアクティブなセルが(1,1)になってしまい、取得したいセル(8,1)を返すことはできません。どうしたらいいでしょうか?
macaron_xxx

2021/09/09 22:59

setValue()はアクティブなセルにしません。 setActiveRangeでアクティブにして取得するか、そもそもアクティブなセルにせずに行列(8,1)をそのまま返せばいいと思います。
mura-tin

2021/09/14 15:55

遅くなりました。後ろに.active()をつけたらうまくいきました。解決の道筋が見えたのでベストアンサーにさせていただきます。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問