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

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

新規登録して質問してみよう
ただいま回答率
85.31%
Google スプレッドシート

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

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

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

Q&A

解決済

1回答

614閲覧

備品貸出のgoogleフォーム スプレットシートとの連携

daichi_277368

総合スコア1

Google スプレッドシート

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

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

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

0グッド

0クリップ

投稿2023/09/16 07:12

実現したいこと

1.googleフォームから入力された日付、借りる備品、借りる人の名前が入力される
2.スプレットシートの1行目の備品名とA列目の日付で一致する位置に借りる人の名前を入力する。

前提

GASで備品貸出フォームを作成しています。
作成中にエラーを吐いていないのに実行されなく何をしていいのか困っています。

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

2023/09/16 15:41:15 情報 備品名 = デジタルカメラ① string 日にち = 2023/09/04 string 名前 = ささかま string

該当のソースコード

使用言語はGASでスプレットシートからのコンテナバインドスクリプトです。

function googleForms(e) { const [timeStamp, dating, equimentName, name] = e.values; Logger.log("備品名 = " + equimentName + " " + typeof(equimentName) + " 日にち = " + dating + " " + typeof(dating) + " 名前 = " + name + " " + typeof(name)); } function insertDataInCell(equimentName, name, dating) { const spreadsheetId = '1lNApnZyMDe0zW87CwS59vahjYnl62LFj65nop7rf5D0'; // スプレッドシートのIDを指定 const sheetName = '令和5年'; // シート名を指定 const spreadsheet = SpreadsheetApp.openById(spreadsheetId); const sheet = spreadsheet.getSheetByName(sheetName); // 1行目とA列目のデータを取得 const headerRow = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]; const headerCol = sheet.getRange(1, 1, sheet.getLastRow(), 1).getValues(); // 列番号 (i) の取得 const colIndex = headerRow.indexOf(equimentName); if (colIndex === -1) { console.log(`${equimentName} 行が見つかりません。`); return; } // 行番号 (j) の取得 const rowIndex = headerCol.findIndex(row => row[0] == dating); if (rowIndex === -1) { console.log(`${dating} 行が見つかりません。`); return; } // セルにデータ (name) を挿入 sheet. getRange(rowIndex + 1, colIndex + 1).setValue(name); console.log(`セル (${dating}, ${equimentName}) にデータを挿入しました: ${name}`); }

色々調べながら、やっていたのですが行き詰まってしまいました。
大学でプログラムはやっていたのですが、基礎も理解できていない状態です。申し訳ありませんがご教授お願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

ログが出力されているようですからgoogleFormsは実行されているのではないでしょうか。
そしてそのgoogleFormsからinsertDataInCellが呼び出されていないのでその他の処理が行われていないのでしょう。

JavScript

1function googleForms(e) { 2 const [timeStamp, dating, equimentName, name] = e.values; 3 Logger.log("備品名 = " + equimentName + " " + typeof(equimentName) + " 日にち = " + dating + " " + typeof(dating) + " 名前 = " + name + " " + typeof(name)); 4 insertDataInCell(equimentName, name, dating); 5} 6

とinsertDataInCellを呼び出すようしてみてはどうでしょうか。

投稿2023/09/16 07:40

YAmaGNZ

総合スコア10542

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

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

daichi_277368

2023/09/16 08:25

コメントありがとうございます。 ご指摘道理に変更したところデバックが機能しました。 また頑張ります。 2023/09/16 17:23:32 情報 備品名 = デジタルカメラ① string 日にち = 2023/09/01 string 名前 = ささかま string 2023/09/16 17:23:33 デバッグ 2023/09/01 行が見つかりません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問