Google Apps Script でのプログラミング等に関する質問スレです
Excel や Access の VBA に不満のあるあなた
web アプリだけでなくクライアントアプリからも利用したいあなた
ローカルなデータベースやファイルだとバックアップに不安のあるあなた
ム板に無かったので立ててみます
Google Apps Script
ttps://developers.google.com/apps-script/
Google Drive API
ttps://developers.google.com/drive/
Getting Started with the Google Data Python Library
ttps://developers.google.com/gdata/articles/python_client_lib
■関連スレ
Google Maps API 質問箱
http://peace.2ch.net/test/read.cgi/tech/1131627583/
Microsoft SkyDrive API
http://peace.2ch.net/test/read.cgi/tech/1385604796/
【GoogleAppsScript】猿92【研究せよ!!!】
http://nozomi.2ch.net/test/read.cgi/php/1398600864/
GoogleAPIってどうよ?
http://nozomi.2ch.net/test/read.cgi/php/1018614427/
Google App Engine for Python 6アプ目
http://nozomi.2ch.net/test/read.cgi/php/1358570953/
Google App Engine for java
http://peace.2ch.net/test/read.cgi/tech/1317639323/
GoogleWebToolkit[GWT]について語ろう
http://nozomi.2ch.net/test/read.cgi/php/1147975874/
【MACRO】Google Apps Script 質問スレ【DRIVE】
2014/06/29(日) 11:07:03.38ID:5HmND7Qc
743デフォルトの名無しさん
2021/03/01(月) 10:25:00.27ID:rO9qQ6pi >>741
HTML側でスプレッドシート開いて二次元配列に放り込んでからテーブルに出力してんですけど実用に耐えないくらい時間かかります。
functionで二次元配列に入れるべきなのかな
配列の受け渡しとかいまいちわかんない
HTML側でスプレッドシート開いて二次元配列に放り込んでからテーブルに出力してんですけど実用に耐えないくらい時間かかります。
functionで二次元配列に入れるべきなのかな
配列の受け渡しとかいまいちわかんない
744デフォルトの名無しさん
2021/03/01(月) 12:44:15.12ID:V9NClIIm コード載せたら添削してあげるよ
745デフォルトの名無しさん
2021/03/01(月) 17:03:50.84ID:PbAWyOdW APIを使った方がいいかもね
746デフォルトの名無しさん
2021/03/03(水) 18:08:09.09ID:/zPRpQHx Browser.msgBox('hoge');
var ui = SpreadsheetApp.getUi();
ui.alert('hoge');
どっちもAndroidスプレッドシートアプリでは動かず一時停止状態のままになってしまいます
どうすれば回避できますかね?
処理が終わるまでshowModalDialogで操作させないようにする処理も泥アプリでは動かなくて困っています…
var ui = SpreadsheetApp.getUi();
ui.alert('hoge');
どっちもAndroidスプレッドシートアプリでは動かず一時停止状態のままになってしまいます
どうすれば回避できますかね?
処理が終わるまでshowModalDialogで操作させないようにする処理も泥アプリでは動かなくて困っています…
747デフォルトの名無しさん
2021/03/03(水) 21:30:50.23ID:hlvdZ6yU >>746
スマホでは色々制限があって無理です
スマホでは色々制限があって無理です
748デフォルトの名無しさん
2021/03/05(金) 11:04:43.54ID:wmkFGJMv 詳しい方助けてください。
当方結婚式のプロフィールムービーを制作しています。
今後、Googleフォームを使って、テロップ入力、写真をお客様自身でアップロードする仕組みを作れと言われて困っています。
問題となっているのが、フォームでの回答後、アップロードした写真がファイル名しかわからない点です。
そこで、アップロードした写真ファイルを一覧化し、PDF化したうえでお客様へ自動返信出来ないかと考えてみました。
GASを使ってなんとか・・と思いましたが、ネットを探してみても方法が見つからず、途方にくれています。
どなたかお力添えをお願いできないでしょうか?
当方結婚式のプロフィールムービーを制作しています。
今後、Googleフォームを使って、テロップ入力、写真をお客様自身でアップロードする仕組みを作れと言われて困っています。
問題となっているのが、フォームでの回答後、アップロードした写真がファイル名しかわからない点です。
そこで、アップロードした写真ファイルを一覧化し、PDF化したうえでお客様へ自動返信出来ないかと考えてみました。
GASを使ってなんとか・・と思いましたが、ネットを探してみても方法が見つからず、途方にくれています。
どなたかお力添えをお願いできないでしょうか?
749デフォルトの名無しさん
2021/03/05(金) 16:48:28.45ID:tfvc3NNv スプレッドシートに出力してそれをpdf化すれば?
750デフォルトの名無しさん
2021/03/06(土) 02:12:47.82ID:D36VxduV 何でフォームじゃなきゃ駄目なのか分からんが、
そんな指示を出すような奴は、
フォームとフォームっぽい何かがあったとしても、違いなんか分かりゃしないぞ。
そんな指示を出すような奴は、
フォームとフォームっぽい何かがあったとしても、違いなんか分かりゃしないぞ。
751デフォルトの名無しさん
2021/03/06(土) 17:23:31.98ID:eKT9Xq9d752デフォルトの名無しさん
2021/04/06(火) 23:13:17.50ID:ao+gKvtS scrapingのライブラリでParser とcheeriogs以外で良いのあります?
cheerioよさそうだけどjquery知ってる前提でドキュメントが無くてjquery知らないからきつい。メソッドとかjqueryのやつ使えるの?
cheerioよさそうだけどjquery知ってる前提でドキュメントが無くてjquery知らないからきつい。メソッドとかjqueryのやつ使えるの?
753デフォルトの名無しさん
2021/04/13(火) 17:26:12.26ID:o3TSl1rF 自宅からスプレッドシートのdoPostに1分毎にテキストを送ってセルに書き込むだけの実験中なのですが、
実行数の所からログを確認すると2000回に1回くらいステータスが「失敗しました」になっています。
自宅の記録ではステータスコードは200が返ってきています。
doPost内をtry~catchにいれてエラーメッセージを書き込もうとしましたが、何も書き込まれていませんでした。
doPostが起動していない…?
なぜ失敗しているか分かる方いませんか。
実行数の所からログを確認すると2000回に1回くらいステータスが「失敗しました」になっています。
自宅の記録ではステータスコードは200が返ってきています。
doPost内をtry~catchにいれてエラーメッセージを書き込もうとしましたが、何も書き込まれていませんでした。
doPostが起動していない…?
なぜ失敗しているか分かる方いませんか。
754デフォルトの名無しさん
2021/04/13(火) 20:44:13.01ID:YlnYj74B >>748
自作フォームは難しい。
様々なページを作らないといけない
要するにファイルアップローダー、
TeraTerm, Putty みたいな画面が欲しいのでしょ
各顧客用のフォルダを作って、そこへアップロードするのでしょ
自作するのはキツイ。
何かのサービスを使うべき
自作フォームは難しい。
様々なページを作らないといけない
要するにファイルアップローダー、
TeraTerm, Putty みたいな画面が欲しいのでしょ
各顧客用のフォルダを作って、そこへアップロードするのでしょ
自作するのはキツイ。
何かのサービスを使うべき
755デフォルトの名無しさん
2021/04/13(火) 21:04:50.52ID:YlnYj74B >>752
jQuery で、スクレイピングするだけなら、
要素の取得、HTML・Text の所だけ読めばよい。
全部の文書を、読む必要はない
let abc = $( '#abc' ).html( );
console.log( abc );
$( 'CSS セレクター' ) を書けば、jQuery オブジェクトが取得できる。
jQuery( 'CSS セレクター' )でも良い
これを実行してみれば?
console.log( window.$ );
console.log( window.jQuery );
jQuery で、スクレイピングするだけなら、
要素の取得、HTML・Text の所だけ読めばよい。
全部の文書を、読む必要はない
let abc = $( '#abc' ).html( );
console.log( abc );
$( 'CSS セレクター' ) を書けば、jQuery オブジェクトが取得できる。
jQuery( 'CSS セレクター' )でも良い
これを実行してみれば?
console.log( window.$ );
console.log( window.jQuery );
756デフォルトの名無しさん
2021/04/13(火) 21:11:20.27ID:YlnYj74B757デフォルトの名無しさん
2021/04/13(火) 21:28:22.61ID:c7k7neBn なんでjsの話してんの
758デフォルトの名無しさん
2021/04/22(木) 01:56:49.59ID:zbsSdEd/ GASからWindows APIを介してWindowsアプリに指示してWindowsアプリの自動操縦て出来ます?
これのスプレッドシート+GAS版を作りたいんですが。
https://youtu.be/r_9JLzXMsk4
これのスプレッドシート+GAS版を作りたいんですが。
https://youtu.be/r_9JLzXMsk4
759デフォルトの名無しさん
2021/04/22(木) 21:51:19.63ID:IEn85Cov スプレッドシートのrange.getValues()のreturnで日付が勝手にDate object に変換キャストされるのいらんのだけど
文字列にできますか
文字列にできますか
760デフォルトの名無しさん
2021/04/22(木) 22:12:53.54ID:Bcy1rpDS >>759
Utilities.formatDateで変換してください
Utilities.formatDateで変換してください
761デフォルトの名無しさん
2021/04/23(金) 01:28:15.06ID:KvwPc6n1 やっぱ自分でstringに戻すしかないのですね
どうも
どうも
762デフォルトの名無しさん
2021/04/23(金) 01:36:47.27ID:Mr1QFRKK763デフォルトの名無しさん
2021/05/19(水) 06:26:47.48ID:+jFbNy+f トリガーを使って、"Sheet1"というシートのA1セルが変更された時のみ他の処理をさせたいのですが、
どのように掛けば良いでしょうか
SpreadsheetApp.getActive();
からシート名も取れると思いますが、引数からオブジェクトを指定するなどはできないでしょうか
VBAで書くと以下のような感じです
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = "Sheet1" Then
Debug.Print "sheet1が変更されました"
End If
End Sub
どのように掛けば良いでしょうか
SpreadsheetApp.getActive();
からシート名も取れると思いますが、引数からオブジェクトを指定するなどはできないでしょうか
VBAで書くと以下のような感じです
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = "Sheet1" Then
Debug.Print "sheet1が変更されました"
End If
End Sub
764デフォルトの名無しさん
2021/05/19(水) 09:54:24.41ID:iHfxsQ4v >>763
function onEdit( e ) {
if (e.source.getSheetByName() === "Sheet1"
&& e.range.getRow() === 1
&& e.range.getColumn() === 1) {
//なんか処理
}
}
function onEdit( e ) {
if (e.source.getSheetByName() === "Sheet1"
&& e.range.getRow() === 1
&& e.range.getColumn() === 1) {
//なんか処理
}
}
765デフォルトの名無しさん
2021/05/19(水) 21:19:17.86ID:+jFbNy+f766デフォルトの名無しさん
2021/05/25(火) 09:12:15.05ID:7Zlc4Jvy function pswV1(contract){
var url = "https://api.pancakeswap.info/api/tokens/" + contract;
var content = UrlFetchApp.fetch(url).getContentText("UTF-8");
var obj = JSON.parse(content);
return Number(obj.data.price);
}
この関数作って使ってるんだけど、
定期的に再実行させるにはどうしたら良いのかな?
可能なら1分に1回再実行させたい。
var url = "https://api.pancakeswap.info/api/tokens/" + contract;
var content = UrlFetchApp.fetch(url).getContentText("UTF-8");
var obj = JSON.parse(content);
return Number(obj.data.price);
}
この関数作って使ってるんだけど、
定期的に再実行させるにはどうしたら良いのかな?
可能なら1分に1回再実行させたい。
767デフォルトの名無しさん
2021/05/25(火) 12:30:25.88ID:UFi3lRqC トリガー使えばええやん
768デフォルトの名無しさん
2021/05/25(火) 14:37:01.15ID:7Zlc4Jvy769766
2021/05/25(火) 15:16:25.01ID:7Zlc4Jvy とりあえずトリガー設定してみたけど最短1時間しかないね。
取得してるのは仮想通貨のレートだから最長でも5分程度にはしておきたい。
取得してるのは仮想通貨のレートだから最長でも5分程度にはしておきたい。
770766
2021/05/25(火) 15:20:50.17ID:7Zlc4Jvy ごめんなさい。
1分ありました。
1分ありました。
771766
2021/05/25(火) 15:23:17.48ID:7Zlc4Jvy 何度もすまん。
無効な引数でエラーになる。
やはりセル内で使用する関数にトリガーは使えないのでは?
無効な引数でエラーになる。
やはりセル内で使用する関数にトリガーは使えないのでは?
772デフォルトの名無しさん
2021/05/25(火) 19:19:13.82ID:bqN1UUYu そのセルの情報も書け
773766
2021/05/25(火) 19:47:34.24ID:7Zlc4Jvy セル内は
=pswV1("0x27327672d1dc51f4dc58c9f413e1fa7e7ad8245e")
としています。
いまのところロード時とタブ切り替え時の任意リロード時のみ実行されます。
=pswV1("0x27327672d1dc51f4dc58c9f413e1fa7e7ad8245e")
としています。
いまのところロード時とタブ切り替え時の任意リロード時のみ実行されます。
774デフォルトの名無しさん
2021/05/25(火) 20:07:56.28ID:bqN1UUYu775766
2021/05/25(火) 20:25:01.51ID:7Zlc4Jvy >>774
複数あります。
いまのところ5個くらいですが日々変動します。
トリガーがダメならセル内から呼び出す関数からは引数とセル位置だけグローバル配列に入れておいて
トリガーから呼んだ関数でまとめて通信させる方法もあるのかなと考え始めてます。
まだ実装してないので動くかわかりませんが。
複数あります。
いまのところ5個くらいですが日々変動します。
トリガーがダメならセル内から呼び出す関数からは引数とセル位置だけグローバル配列に入れておいて
トリガーから呼んだ関数でまとめて通信させる方法もあるのかなと考え始めてます。
まだ実装してないので動くかわかりませんが。
776デフォルトの名無しさん
2021/05/25(火) 21:36:08.76ID:FW9zXdEp >>775
それか1分おきにどこでもいいからセル書き換えるようにすれば勝手に再計算されるのでは
それか1分おきにどこでもいいからセル書き換えるようにすれば勝手に再計算されるのでは
777デフォルトの名無しさん
2021/06/03(木) 05:38:31.48ID:B8Ey28oS GASでPhantom JS cloudで動的なページをスクレイピングする時に、どうやらページが重くて表示に時間がかかるため取得できない値があります
すでに表示されたサイトに対してjQueryで取得したりPythonとseleniumを使って
driver.get(url)
time.sleep(30)
html = driver.page_source
みたいに待機時間を作ればちゃんと取得できるので値は確かに存在しており、GASでうまくいかないのは待機時間がないせいだと思います
Phantom JS cloudでも待機時間を入れたいのですが可能でしょうか?どこに入れればよいのでしょうか?
すでに表示されたサイトに対してjQueryで取得したりPythonとseleniumを使って
driver.get(url)
time.sleep(30)
html = driver.page_source
みたいに待機時間を作ればちゃんと取得できるので値は確かに存在しており、GASでうまくいかないのは待機時間がないせいだと思います
Phantom JS cloudでも待機時間を入れたいのですが可能でしょうか?どこに入れればよいのでしょうか?
778デフォルトの名無しさん
2021/06/07(月) 12:08:43.93ID:tyfu3spt フォームの選択肢ラジオボタンA,B,Cの
それぞれにバラバラの回答数上限を設定する方法を教えてください。さらにラジオボタン横に残数があるとなお嬉しい
それぞれにバラバラの回答数上限を設定する方法を教えてください。さらにラジオボタン横に残数があるとなお嬉しい
779デフォルトの名無しさん
2021/06/07(月) 13:30:55.90ID:pl6618+T >>777
GAS は知らないけど、
Ruby, Selenium Webdriver, Nokogiri では、
要素の検索の timeout を長くするとか、
driver.manage.timeouts.implicit_wait = 30
それか、sleep するとか、
driver.navigate.to url
sleep 30
doc = Nokogiri::HTML( driver.page_source )
GAS は知らないけど、
Ruby, Selenium Webdriver, Nokogiri では、
要素の検索の timeout を長くするとか、
driver.manage.timeouts.implicit_wait = 30
それか、sleep するとか、
driver.navigate.to url
sleep 30
doc = Nokogiri::HTML( driver.page_source )
780デフォルトの名無しさん
2021/06/10(木) 08:31:00.19ID:rZOQ7XKm 機能の23時にはちゃんと動いていたスクリプトが、今朝試してみたらエラーが出てしまってる
function doPost(e) {
const getdata = JSON.parse(e.postData.getDataAsString());
//略
}
という関数を使ってるスクリプトがいくつかあるんだけど、全部
TypeError: e.postData.getDataAsString is not a function
というエラーが出るようになってしまった
同じ人いる?
function doPost(e) {
const getdata = JSON.parse(e.postData.getDataAsString());
//略
}
という関数を使ってるスクリプトがいくつかあるんだけど、全部
TypeError: e.postData.getDataAsString is not a function
というエラーが出るようになってしまった
同じ人いる?
782デフォルトの名無しさん
2021/06/11(金) 01:04:22.78ID:W2MDAmi/783デフォルトの名無しさん
2021/06/12(土) 21:54:06.58ID:yi8Rxd+W 見当はずれな質問も可能性高いんですが,
GASでうんこした時間をカレンダー登録するだけのスクリプト書いて,
ウェブアプリとしてデプロイしてAndroidのchromeのショートカット作って
それをデスクトップに保存して,そのアイコンをクリックすれば自分の
Googleカレンダーにうんこした時間登録できるとこまではできたんですが,
webショートカットなので当然chromeが起動してエラー画面が表示されちゃう
これをクリックしたらwebページも出さずに処理させる方法ってあるんでしょうか?
GASでうんこした時間をカレンダー登録するだけのスクリプト書いて,
ウェブアプリとしてデプロイしてAndroidのchromeのショートカット作って
それをデスクトップに保存して,そのアイコンをクリックすれば自分の
Googleカレンダーにうんこした時間登録できるとこまではできたんですが,
webショートカットなので当然chromeが起動してエラー画面が表示されちゃう
これをクリックしたらwebページも出さずに処理させる方法ってあるんでしょうか?
784デフォルトの名無しさん
2021/06/13(日) 00:34:56.20ID:drIN04VN >>783
claspで実行すれば?
https://github.com/google/clasp
https://takuya-1st.hatenablog.jp/entry/2021/06/08/021238
Androidってのがスマホから実行するって意味ならゴメンだけど
claspで実行すれば?
https://github.com/google/clasp
https://takuya-1st.hatenablog.jp/entry/2021/06/08/021238
Androidってのがスマホから実行するって意味ならゴメンだけど
785デフォルトの名無しさん
2021/06/13(日) 00:57:33.48ID:TPT9gOWH >>784
ありがとうございます.
やっぱりそういう目的のものではないんですなあ……
スマホは常時持ち歩いているのでうんこするときに便所でワンクリックで
うんこした時刻を記録したいという目的なのでスマホから実行させたいんですよね
やっぱりアプリ作るしかないのかしら(´・ω・`)
ありがとうございます.
やっぱりそういう目的のものではないんですなあ……
スマホは常時持ち歩いているのでうんこするときに便所でワンクリックで
うんこした時刻を記録したいという目的なのでスマホから実行させたいんですよね
やっぱりアプリ作るしかないのかしら(´・ω・`)
786デフォルトの名無しさん
2021/06/13(日) 19:42:39.72ID:lkc6O7cF >>785
TermuxのCUIからリクエスト送れないかね
TermuxのCUIからリクエスト送れないかね
787デフォルトの名無しさん
2021/06/13(日) 22:42:32.09ID:TPT9gOWH788デフォルトの名無しさん
2021/06/14(月) 01:54:11.31ID:btOps/6G >>787
bashで書いたのをctrl + rとかで呼び出せばいいんちゃう
bashで書いたのをctrl + rとかで呼び出せばいいんちゃう
789デフォルトの名無しさん
2021/06/14(月) 14:10:38.65ID:G+aGjkZp >>785
iPhoneだと↓みたいな感じでできるみたいだから
https://ntwmachine.com/shortcut-gas
Androidでも↓みたいなアプリでできそうじゃない?
HTTP Request Shortcuts
https://play.google.com/store/apps/details?id=ch.rmy.android.http_shortcuts
iPhoneだと↓みたいな感じでできるみたいだから
https://ntwmachine.com/shortcut-gas
Androidでも↓みたいなアプリでできそうじゃない?
HTTP Request Shortcuts
https://play.google.com/store/apps/details?id=ch.rmy.android.http_shortcuts
790デフォルトの名無しさん
2021/06/14(月) 17:48:55.22ID:WNlBtQy0 >>787
TaskerとTermux用Taskerプラグイン買えばショートカットとか色々なトリガーでコマンド実行できる
TaskerとTermux用Taskerプラグイン買えばショートカットとか色々なトリガーでコマンド実行できる
791デフォルトの名無しさん
2021/06/14(月) 21:57:18.79ID:m506649G >>783のやりたいこととやってみたことを100%理解してるわけじゃないけど、詳しくないなりに考えたのが、自分ならうんこした時間をカレンダーに記録するスクリプトと連携したスプレッドシートがあったとして、IFTTTでボタンウィジェットを押したらそのスプレッドシートに何でもいいから行が追加されるようにして、うんこ記録関数のトリガーはスプレッドシートが更新された時に発動するようにする
792デフォルトの名無しさん
2021/06/15(火) 16:38:21.05ID:0GdnjUqP >>783
キチンとhtml出力して、html内にウインドウ閉じるJavaScriptを入れるってのはダメですか?
キチンとhtml出力して、html内にウインドウ閉じるJavaScriptを入れるってのはダメですか?
793デフォルトの名無しさん
2021/06/15(火) 22:38:27.71ID:Pikc/bWs うわー皆さんいろいろアイディアありがとうございます.
>>792
試してみたんですがAndroid環境だと画面閉じないですね…
>>791
単純にうんこした時間をGoogleカレンダーに登録したいだけなんすよね…
なのでスプレッドシートとかは使いたくなくて,コードは
var date = new Date();
CalendarApp.getDefaultCalendar().createEvent("💩",date , date)
こんな感じで十分なので,できればこれをandroid上でアイコンに割り当てて一発実行したいのです.
>>788
ターミナル開く手間は避けたくて……
>>789
>>790
このどっちかででけそうな気がしてきたのでちょっと試してみます!
>>792
試してみたんですがAndroid環境だと画面閉じないですね…
>>791
単純にうんこした時間をGoogleカレンダーに登録したいだけなんすよね…
なのでスプレッドシートとかは使いたくなくて,コードは
var date = new Date();
CalendarApp.getDefaultCalendar().createEvent("💩",date , date)
こんな感じで十分なので,できればこれをandroid上でアイコンに割り当てて一発実行したいのです.
>>788
ターミナル開く手間は避けたくて……
>>789
>>790
このどっちかででけそうな気がしてきたのでちょっと試してみます!
794デフォルトの名無しさん
2021/06/15(火) 22:54:32.69ID:Jy0S46aa 絵文字かわヨ
795デフォルトの名無しさん
2021/07/13(火) 10:23:44.28ID:CjZmk7C6 共有しているスプレッドシートの
「編集者は権限を変更して共有できます」のチェックボックスを外す(無効にする)
ソースコードを教えてください
setShareableByEditors(shareable) を使えばできるようなのですが
使い方が分かりません
よろしくお願いいたしますm(_ _)m
「編集者は権限を変更して共有できます」のチェックボックスを外す(無効にする)
ソースコードを教えてください
setShareableByEditors(shareable) を使えばできるようなのですが
使い方が分かりません
よろしくお願いいたしますm(_ _)m
796デフォルトの名無しさん
2021/07/13(火) 10:54:14.06ID:Vr6vzxIM >>795
その関数の引数をfalseにするだけやろ
その関数の引数をfalseにするだけやろ
797デフォルトの名無しさん
2021/07/14(水) 18:54:15.93ID:GFXnTS4Q グループ内で簡易なうpろだとして使いたいのですが、ファイルのアップロード、コメントが記入できて、
アップロード先のURLとコメントをスプレッドシートにリスト化してくにはどうしたらいいんでしょうか?
ファイルのアップロード、コメント記入してそれをスプレッドシートにリスト化、それぞれは出来たんですが組合わせると動作しません。
なにかサンプルになるようなページを教えていただけると助かります…
アップロード先のURLとコメントをスプレッドシートにリスト化してくにはどうしたらいいんでしょうか?
ファイルのアップロード、コメント記入してそれをスプレッドシートにリスト化、それぞれは出来たんですが組合わせると動作しません。
なにかサンプルになるようなページを教えていただけると助かります…
798デフォルトの名無しさん
2021/07/15(木) 15:20:59.29ID:ygp86UHP シートを作る
うpするGASを書く
アップロード先のURLとコメントをスプレッドシートにリスト化
>ファイルのアップロード、コメント記入してそれをスプレッドシートにリスト化、それぞれは出来たんですが
もっと具体的に
出来ればソースとか晒すべき
うpするGASを書く
アップロード先のURLとコメントをスプレッドシートにリスト化
>ファイルのアップロード、コメント記入してそれをスプレッドシートにリスト化、それぞれは出来たんですが
もっと具体的に
出来ればソースとか晒すべき
799デフォルトの名無しさん
2021/07/15(木) 21:16:55.83ID:gFOIdhYR800デフォルトの名無しさん
2021/07/18(日) 21:16:48.01ID:hteKw5EV スプレッドシートのトリガー
onSelectionChangeの挙動ホント悪すぎる
ここらへんVBAと比べてダメ過ぎだな
onSelectionChangeの挙動ホント悪すぎる
ここらへんVBAと比べてダメ過ぎだな
801デフォルトの名無しさん
2021/07/29(木) 06:32:21.24ID:RJZsh/tv スプレッドシートのグラフもひどいよ。
setOption(‘vAxes.1.title’,’hoge’)とかも
setOption(‘vAxes.1.title’,’hoge’)とかも
802デフォルトの名無しさん
2021/08/01(日) 21:02:43.56ID:zu2woDem スプレッドシートとhtmlserviceで簡単なwebアプリ作ろうと思ったのですが、ユーザー毎のデータも扱う場合、どうやるのがいいんでしょうか。
アプリの実行者を「ログインしているユーザー」にすると、スプレッドシートへのアクセス件が必要だから、他の人のデータにアクセスされそうで怖い。
だからといって、実行者を「自分」(開発者)にすると、操作してるユーザーが誰なのかを判別できないし・・。
アプリの実行者を「ログインしているユーザー」にすると、スプレッドシートへのアクセス件が必要だから、他の人のデータにアクセスされそうで怖い。
だからといって、実行者を「自分」(開発者)にすると、操作してるユーザーが誰なのかを判別できないし・・。
803デフォルトの名無しさん
2021/08/05(木) 11:42:49.43ID:eMHroxtV804デフォルトの名無しさん
2021/08/08(日) 03:08:43.28ID:JLttzwiP >>803
user | name | score
aaa@gmail.com | taro | 85
bbb@gmail.com | jiro | 75
みたいにスプレッドシートをDBとして使うWEBアプリの場合、
アプリを「自分(開発者)」として実行すると、ログインユーザーのemailが取得できないから、スプレッドシートから当該ユーザーのデータを取得できない
「アクセスしているユーザー」として実行すれば、ログインユーザーのemailが取得できるけど、このスプレッドシートへのアクセス権を与えないといけないので、他のユーザーの情報も全て見れてしまう
ので、普通はどうするものなのかが知りたいです。(有償のworkspaceは使わない前提です)
user | name | score
aaa@gmail.com | taro | 85
bbb@gmail.com | jiro | 75
みたいにスプレッドシートをDBとして使うWEBアプリの場合、
アプリを「自分(開発者)」として実行すると、ログインユーザーのemailが取得できないから、スプレッドシートから当該ユーザーのデータを取得できない
「アクセスしているユーザー」として実行すれば、ログインユーザーのemailが取得できるけど、このスプレッドシートへのアクセス権を与えないといけないので、他のユーザーの情報も全て見れてしまう
ので、普通はどうするものなのかが知りたいです。(有償のworkspaceは使わない前提です)
805デフォルトの名無しさん
2021/08/10(火) 05:15:26.61ID:MjVqGGgl806デフォルトの名無しさん
2021/08/10(火) 11:13:59.22ID:9wi/dlAk GAS には、ユーザー認証機能があるの?
認証は、Firebase Authentication じゃないの?
認証は、Firebase Authentication じゃないの?
807デフォルトの名無しさん
2021/08/19(木) 04:51:29.28ID:l+iKsjPF const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const pivotSheet = spreadsheet.getSheetByName('a');
const pivotTables = pivotSheet.getPivotTables();
pivotTables.forEach(pivotTable => {
const pivotValues = pivotTable.getPivotValues();
pivotValues.forEach(pivotValue => Logger.log(pivotValue));
});
こんなかんじでpivotTablから値をとりたいのですが、ログとしては
pivotValueという値しか返ってこないのですが、なんででしょうか?
pivotValue.getValue() のようなことがしたいんです。具体的な数値が返ってくるような。
const pivotSheet = spreadsheet.getSheetByName('a');
const pivotTables = pivotSheet.getPivotTables();
pivotTables.forEach(pivotTable => {
const pivotValues = pivotTable.getPivotValues();
pivotValues.forEach(pivotValue => Logger.log(pivotValue));
});
こんなかんじでpivotTablから値をとりたいのですが、ログとしては
pivotValueという値しか返ってこないのですが、なんででしょうか?
pivotValue.getValue() のようなことがしたいんです。具体的な数値が返ってくるような。
808デフォルトの名無しさん
2021/08/19(木) 08:07:07.49ID:hKprbQAC809デフォルトの名無しさん
2021/08/19(木) 12:03:47.46ID:l+iKsjPF >>808
getValue()は使えないみたいなんですよね、not a functionになって
getValueでしてみたらnullが帰ってきて謎...
ぐぐってもサンプルが出てこなくてまいりましたわ
getValue()は使えないみたいなんですよね、not a functionになって
getValueでしてみたらnullが帰ってきて謎...
ぐぐってもサンプルが出てこなくてまいりましたわ
810デフォルトの名無しさん
2021/08/19(木) 13:20:16.21ID:JpyvyW0f 公式のリファレンス読みなさい
811デフォルトの名無しさん
2021/10/13(水) 00:47:48.09ID:Qk99MJFD812デフォルトの名無しさん
2021/10/13(水) 01:39:22.36ID:sH5qc9+o >>811
何言ってだ
何言ってだ
813デフォルトの名無しさん
2021/10/17(日) 20:46:12.87ID:Nd7q+jNJ ピボットテーブルで出力したテーブルの特定の文字列のセルを非表示にしたいのですが
やり方が御座いましたらご教示お願いいたします
条件付き書式で一致すれば文字を白にするといった「見えなくする」ではなく
セルをコピーしてもコピーされない状態にしたいです
よろしくお願いいたします
やり方が御座いましたらご教示お願いいたします
条件付き書式で一致すれば文字を白にするといった「見えなくする」ではなく
セルをコピーしてもコピーされない状態にしたいです
よろしくお願いいたします
814デフォルトの名無しさん
2021/11/01(月) 23:15:46.54ID:Q50KTbzj 公式見てもわからなかったんですが、
新しいスプレッドシートを作る関数→できる
そのスプレッドシートに何か書き込む関数→できる
そのスプレッドシートのスクリプトエディタをいじってスクリプトを付ける関数→?
できるんでしょうか?
新しいスプレッドシートを作る関数→できる
そのスプレッドシートに何か書き込む関数→できる
そのスプレッドシートのスクリプトエディタをいじってスクリプトを付ける関数→?
できるんでしょうか?
815デフォルトの名無しさん
2021/12/02(木) 21:38:11.37ID:FXlnpm0p816デフォルトの名無しさん
2021/12/18(土) 23:17:06.97ID:a3T2SFZh はじめまして。
質問ですが、GoogleスプレッドシートのGAS(Google Apps Script)で、
「計算結果のみ」を別のスプレッドシートへコピーする方法を教えてください。
var ss_copyFrom = SpreadsheetApp.openById('コピー元のシートID');
var ss_copyTo = SpreadsheetApp.getActiveSpreadsheet();
var sheet_copyFrom = ss_copyFrom.getSheetByName('シート名');
var sheet_copyTo = ss_copyTo.getSheetByName('別のスプレッドシートのシート名');
var copyValue = sheet_copyFrom.getRange('W3:W200').getValues();
sheet_copyTo.getRange('B4:B201').setValues(copyValue);
上記でコピーそのものはできていますが、表示されるのが
コピー元であるスプレッドシートに入力されている「=T4-U4-V4」の結果
(コピー先のT列、U列、V列には何も入っていないため、「1899/12/30」が表示されています)で、
本当に表示させたいのはコピー元のスプレッドシートで「=T4-U4-V4」が計算された結果の数値「1」なのです。
GASについてはド素人(今月から使い始めました)で、ネット検索で色々調べてみましたが、
これといった解決策がわからず、困り果てています。
何とかお知恵を貸していただけますよう、お願い致します。
質問ですが、GoogleスプレッドシートのGAS(Google Apps Script)で、
「計算結果のみ」を別のスプレッドシートへコピーする方法を教えてください。
var ss_copyFrom = SpreadsheetApp.openById('コピー元のシートID');
var ss_copyTo = SpreadsheetApp.getActiveSpreadsheet();
var sheet_copyFrom = ss_copyFrom.getSheetByName('シート名');
var sheet_copyTo = ss_copyTo.getSheetByName('別のスプレッドシートのシート名');
var copyValue = sheet_copyFrom.getRange('W3:W200').getValues();
sheet_copyTo.getRange('B4:B201').setValues(copyValue);
上記でコピーそのものはできていますが、表示されるのが
コピー元であるスプレッドシートに入力されている「=T4-U4-V4」の結果
(コピー先のT列、U列、V列には何も入っていないため、「1899/12/30」が表示されています)で、
本当に表示させたいのはコピー元のスプレッドシートで「=T4-U4-V4」が計算された結果の数値「1」なのです。
GASについてはド素人(今月から使い始めました)で、ネット検索で色々調べてみましたが、
これといった解決策がわからず、困り果てています。
何とかお知恵を貸していただけますよう、お願い致します。
817デフォルトの名無しさん
2021/12/19(日) 02:11:05.33ID:TUb0vitt >>816
単純にスプレッドシートの表示形式が数値か日付かって話じゃないの
単純にスプレッドシートの表示形式が数値か日付かって話じゃないの
818デフォルトの名無しさん
2021/12/19(日) 11:32:13.88ID:RkNKFft4819デフォルトの名無しさん
2021/12/20(月) 12:14:27.96ID:ViJtvVZ6 スプレッドシートのメニューバー変わりましたよね?
拡張機能からスクリプト画面選ぶようになってる…
調べたら10月から順次変わってる…?今日気付いたんですが2ヶ月掛かって更新されたってことでしょうか?
拡張機能からスクリプト画面選ぶようになってる…
調べたら10月から順次変わってる…?今日気付いたんですが2ヶ月掛かって更新されたってことでしょうか?
820デフォルトの名無しさん
2021/12/20(月) 14:36:16.49ID:Xy/RGdSX うちのは10月末に変わってたよ。
821デフォルトの名無しさん
2022/01/15(土) 18:08:24.36ID:OIci5frO web版のエディタが使いにくい。
ファイル+のとこのペイン?っていうの?あれが邪魔で小さくしたくてデベロッパーコンソールでイジってるんだけどどのcss変えれば小さくできますか?
ファイル+のとこのペイン?っていうの?あれが邪魔で小さくしたくてデベロッパーコンソールでイジってるんだけどどのcss変えれば小さくできますか?
822デフォルトの名無しさん
2022/01/17(月) 18:17:08.30ID:ymAJekA/ スライドからスクリプト開いてスクルプト書きました。
スライドからそのスクリプト実行したくて、onOpen()でスライド表示時の右サイドバーにスジュリプト起動ボタンを表示するようにしました。
ところが、スライド開いた時にこのonOpenが実行っされません。
トリガーに登録せよ!という情報もあったのですが、トリガー登録画面には、「スライドを開いた時」的なものは無く、
「カレンダーを開いた時」のようなものしかありませんでした。
スライドを開いた時に、スクリプト起動させるボタンのようなものを表示して、そこからスクチプトを起動したいです。
方法があれば教えてください。
スライドからそのスクリプト実行したくて、onOpen()でスライド表示時の右サイドバーにスジュリプト起動ボタンを表示するようにしました。
ところが、スライド開いた時にこのonOpenが実行っされません。
トリガーに登録せよ!という情報もあったのですが、トリガー登録画面には、「スライドを開いた時」的なものは無く、
「カレンダーを開いた時」のようなものしかありませんでした。
スライドを開いた時に、スクリプト起動させるボタンのようなものを表示して、そこからスクチプトを起動したいです。
方法があれば教えてください。
823822
2022/01/18(火) 10:50:27.27ID:Y4BAPieC 解決しました。下記に載ってました。
Https://myfunc.jp/items/00015/index.html
Https://myfunc.jp/items/00015/index.html
824デフォルトの名無しさん
2022/02/20(日) 03:04:59.59ID:kcCfXnh0 指定した文字列Aと背景色の2条件で集計したいのですが、書き方を教えて下さい。
文字列Aだけ、背景色だけ、などはいくつか見つけられたのですが、組み合わせ方が分かりません…。
文字列Aだけ、背景色だけ、などはいくつか見つけられたのですが、組み合わせ方が分かりません…。
825デフォルトの名無しさん
2022/02/21(月) 21:47:26.46ID:UKJTHoUK https://script.google.com/
このページって何処からたどり着くんですか?
googleドライブとかから新規にスクリプトを作成するのは出来るんですけど
何処にも上記のリンクが無いです
このページって何処からたどり着くんですか?
googleドライブとかから新規にスクリプトを作成するのは出来るんですけど
何処にも上記のリンクが無いです
826デフォルトの名無しさん
2022/02/28(月) 14:47:01.29ID:QEzJwIFm 出来そうで出来ないというか検索してもやりかたが見つからなかったので
知ってたら助けて欲しい
【やりたいこと】
エクセルファイルをGASでスプレッドシートに変換してスプレッドシートにする
但しエクセルファイルの各シートのセルにはエクセル特有の文法で記載された計算式や関数がふんだんに使われているものとする
【ひっかかっていること】
単純にGASでDriveAppやDrive.Filesを用いてエクセルファイルをスプレッドシートに変換するだけだと
変換されたスプレッドシートのセルにはエクセルの特有の文法で記載された計算式や関数が移植されてきただけで
スプレッドシートではエクセル特有の文法で記載された計算式や関数は処理できないのでやりたいことが出来ない状態
なのでエクセルのセルに埋め込まれてる計算式で求められた計算値だけをスプレッドシートに移植したい
知ってたら助けて欲しい
【やりたいこと】
エクセルファイルをGASでスプレッドシートに変換してスプレッドシートにする
但しエクセルファイルの各シートのセルにはエクセル特有の文法で記載された計算式や関数がふんだんに使われているものとする
【ひっかかっていること】
単純にGASでDriveAppやDrive.Filesを用いてエクセルファイルをスプレッドシートに変換するだけだと
変換されたスプレッドシートのセルにはエクセルの特有の文法で記載された計算式や関数が移植されてきただけで
スプレッドシートではエクセル特有の文法で記載された計算式や関数は処理できないのでやりたいことが出来ない状態
なのでエクセルのセルに埋め込まれてる計算式で求められた計算値だけをスプレッドシートに移植したい
827デフォルトの名無しさん
2022/02/28(月) 20:31:28.47ID:PjfLudyf 関数で計算されてるデータを全て数値などに置き換えた物をアップすれば簡単じゃね?
データとして貼り付ければ一瞬だしマクロ組めるでしょ。
データとして貼り付ければ一瞬だしマクロ組めるでしょ。
828デフォルトの名無しさん
2022/03/01(火) 18:33:50.02ID:VTA82jsu そのエクセルが他から提出されてくるもので数百単位であるので
個々にそのマクロを仕込んだものを実行するというのは大変かなぁ
できればエクセルはそのままで一括で読み込んで
GASのなかでやっちゃいたい
無理げかなぁ
個々にそのマクロを仕込んだものを実行するというのは大変かなぁ
できればエクセルはそのままで一括で読み込んで
GASのなかでやっちゃいたい
無理げかなぁ
829デフォルトの名無しさん
2022/03/01(火) 18:59:33.32ID:CkaReruZ そういう後だしするからアドバイスするだけ無駄ってのが出てくるんだよね
830デフォルトの名無しさん
2022/03/02(水) 20:59:04.21ID:CHjRcKIO >>826
スプレッドシートでは処理できない、って言う時点でGASじゃ無理でしょ。
どうしてもやりたいなら、下記くらいしか思いつかない。
@その数式と同じ動きをする関数を自分でGASで実装する
AWinのタスクスケジューラとか使って、VBAでExcel文字列化するなりCSV出力するなりして、それをGASでスプレッドシート化する。GoogleドライブアプリでWinとドライブを同期する
スプレッドシートでは処理できない、って言う時点でGASじゃ無理でしょ。
どうしてもやりたいなら、下記くらいしか思いつかない。
@その数式と同じ動きをする関数を自分でGASで実装する
AWinのタスクスケジューラとか使って、VBAでExcel文字列化するなりCSV出力するなりして、それをGASでスプレッドシート化する。GoogleドライブアプリでWinとドライブを同期する
831デフォルトの名無しさん
2022/03/02(水) 21:59:04.64ID:vYgwEkZg しょうがないから一つヒント
同じフォルダ、若しくは特定のフォルダに入ってるExcelのファイルを全て文字に変換して保存するマクロを組めばOK
何百あろうが一瞬
全てのブックの全てのシートへループでぐるぐる回すだけだから、そんなに難しくないよ
同じフォルダ、若しくは特定のフォルダに入ってるExcelのファイルを全て文字に変換して保存するマクロを組めばOK
何百あろうが一瞬
全てのブックの全てのシートへループでぐるぐる回すだけだから、そんなに難しくないよ
832デフォルトの名無しさん
2022/03/11(金) 16:04:46.03ID:GfEhxdTj GASのソースコード内でタイムゾーンを変更することはできるのだろうか?
GASのエディタにあるjsonに書いて指定するというのは見つけたが、それだとコード内でgoogleドライブから開いたスプレッドシートには適用されなかった
GASのエディタではTokyoにしてても開いたスプレッドシートはPacificになってる
GASのエディタにあるjsonに書いて指定するというのは見つけたが、それだとコード内でgoogleドライブから開いたスプレッドシートには適用されなかった
GASのエディタではTokyoにしてても開いたスプレッドシートはPacificになってる
833デフォルトの名無しさん
2022/03/11(金) 21:23:44.78ID:gLuUS5Uy それはスプレッドシート自体の設定いじる
834デフォルトの名無しさん
2022/03/11(金) 21:27:52.87ID:gLuUS5Uy もしくはGoogleアカウント設定のプロフィールのタイムゾーンいじると
それ以降作成したスプレッドシートはデフォルト変わってるはず
それ以降作成したスプレッドシートはデフォルト変わってるはず
835デフォルトの名無しさん
2022/03/11(金) 21:31:24.19ID:0mAcmeni >>834
デマ回答やめろ😡
デマ回答やめろ😡
836デフォルトの名無しさん
2022/03/16(水) 10:48:26.08ID:JIpzCEZ0 スプレッドシートの複数列を指定して二次元配列に入れる場合のやりかたはわかるんだけど
離れた二つの列を指定することって出来る?
range = Sheet.getRange("D2:E1000");
array1 =range.getValues();
Logger.log(array1);
例えばこれだとD列2行目からE列1000行目までの2列分のデータを二次元配列に格納されるけど
これをD列2行目からD列1000行目とN列2行目からN列1000行目のデータを二次元配列に入れたい
D列とE列は隣り合ってるけど
D列とN列は隣り合ってないからうまく実現できない
離れた二つの列を指定することって出来る?
range = Sheet.getRange("D2:E1000");
array1 =range.getValues();
Logger.log(array1);
例えばこれだとD列2行目からE列1000行目までの2列分のデータを二次元配列に格納されるけど
これをD列2行目からD列1000行目とN列2行目からN列1000行目のデータを二次元配列に入れたい
D列とE列は隣り合ってるけど
D列とN列は隣り合ってないからうまく実現できない
837デフォルトの名無しさん
2022/03/16(水) 11:31:39.30ID:y8PMgdeo Rangeも配列で指定すればいいんじゃね
838デフォルトの名無しさん
2022/03/28(月) 04:13:33.54ID:XbT1Q7Sk const files1 = DriveApp.getFolderById(folderId1).getFiles();
const files2 = DriveApp.getFolderById(folderId2).getFiles();
こんな感じで異なるフォルダに格納されてるファイルをgetFiles取得した場合
その結果のfiles1とfiles2を合体させてfiles3にするようなことってできる?
いまだとファイルの数だけ繰り返すっていうのでfiles1を回すループ処理とfiles2を回すループ処理という感じで見栄えが悪いから
2つをマージしたfiles3を回すループ処理って感じにしたい
const files2 = DriveApp.getFolderById(folderId2).getFiles();
こんな感じで異なるフォルダに格納されてるファイルをgetFiles取得した場合
その結果のfiles1とfiles2を合体させてfiles3にするようなことってできる?
いまだとファイルの数だけ繰り返すっていうのでfiles1を回すループ処理とfiles2を回すループ処理という感じで見栄えが悪いから
2つをマージしたfiles3を回すループ処理って感じにしたい
839デフォルトの名無しさん
2022/03/28(月) 09:02:53.32ID:/mas85k3 無理なのでループ処理部分をメソッド化するなりしてどうぞ
840デフォルトの名無しさん
2022/03/28(月) 11:53:32.50ID:XbT1Q7Sk えぇ〜…
残念
残念
841デフォルトの名無しさん
2022/03/31(木) 12:20:31.27ID:A0O2N5qb GASでセルの値を変更させて変更後の値を読み取ってって一連の処理をしたいんだけど
一連の処理が終わるまでシートに表示される値がリフレッシュされないらしく
処理としてはセルへ値を出力してるけど読み取る値が出力前の値になってる
強制的にシートに表示される値を最新にすることってできないの?
一連の処理が終わるまでシートに表示される値がリフレッシュされないらしく
処理としてはセルへ値を出力してるけど読み取る値が出力前の値になってる
強制的にシートに表示される値を最新にすることってできないの?
842デフォルトの名無しさん
2022/03/31(木) 13:19:55.86ID:5pPwE+XM コードを貼れ
843デフォルトの名無しさん
2022/04/01(金) 06:42:07.95ID:68FipywF setvalueで値をセルに入れるのってリアルタイム反映じゃなくて
スタックしてて処理が終わるみたいな切りがいいところで
まとめて反映する仕様じゃないのけ?
クラウドベースの実行だからサーバー側の負荷軽減のためだと聞いたが
コード云々でなんとかなるなら知りたい
スタックしてて処理が終わるみたいな切りがいいところで
まとめて反映する仕様じゃないのけ?
クラウドベースの実行だからサーバー側の負荷軽減のためだと聞いたが
コード云々でなんとかなるなら知りたい
レスを投稿する
