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

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

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

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

Google Apps Script

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

2回答

6754閲覧

【GAS】Formで使った「this.parentNode」が上手く作動しない

truss_yuta

総合スコア5

Google スプレッドシート

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

Google Apps Script

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2020/04/16 12:34

編集2020/04/17 02:03

前提・実現したいこと

スプレッドシートに表示させたダイアログ上でユーザにファイルを指定させ、そのファイルのidとnameを取得する機能をGoogle Apps Scriptで作ろうとしています。

ファイルはGoogleDriveの企業用共有フォルダから取得しようとしています。

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

ファイル情報が取得できない。
条件によってスクリプト(checkFileメソッド)が実行されない。
エラーメッセージは恐らく出ていません。

該当のソースコード

index.html

javascript

1<!DOCTYPE html> 2<html> 3 <head> 4 <base target="_top"> 5 </head> 6 <body> 7 <form> 8 <input nama="myFile" type="file"> 9 <button onclick="google.script.run.checkFile(this.parentNode);">ファイル情報取得</button> 10 </form> 11 </body> 12</html>

.gs

javascript

1function showDialog(){ 2 var html = HtmlService.createHtmlOutputFromFile('index'); 3 SpreadsheetApp.getUi().showModalDialog(html, "fileチェック"); 4} 5 6function checkFile(form){ 7 var formBlob = form.myFile; 8 Logger.log('response=> "%s"', form.getName()); 9} 10 11function myFunction() { 12 this.showDialog(); 13}

試したこと

checkFileメソッドに文字列を渡すと、checkFileメソッドは実行されログには文字列が表示されます。

checkFileメソッドにthis.parentNodeを渡すとログは「ログを待機しています。お待ちください...」のまま変更がなく、記録にはmyFunctionメソッドのみの実行履歴がありcheckFileメソッドの実行履歴は出てきません(文字列を渡した場合はcheckFileメソッドが記録に記載されていました)

別方法としてGoogole Apps Scriptガイドの以下のURLの方法も試してみましたが、値の取得はできませんでした。
https://developers.google.com/apps-script/guides/html/communication#codegs_4

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

mac catalina
スプレッドシート

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

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

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

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

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

guest

回答2

0

自己解決

[https://teratail.com/questions/254169#reply-366614]のコメントに返信をいただいた【kisojinさん】の方法で解決しました。

kisojin
2020/04/17 16:07 編集
コメント欄と間違えてしまいました。すみません。
例えば、この問題と関係はありますか? https://stackoverflow.com/q/60742695

投稿2020/04/25 13:09

編集2020/04/25 13:12
truss_yuta

総合スコア5

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

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

0

明確な原因は分かっていませんが、inputのtype="file"でスプレッドシートを参照しようとしていたため起きたエラーだと思われます。
デベロッパーツールで500エラーが出ていたため、この考えに至りました。

投稿2020/04/17 04:35

truss_yuta

総合スコア5

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

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

truss_yuta

2020/04/25 13:07

返信が遅くなりすみません。 送っていただいたURLで解決できました!V8が有効になっていると、Formの解析が上手くいかないことがあるんですね〜 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問