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
340デフォルトの名無しさん
2016/08/24(水) 01:12:18.88ID:dEIn8nhr GASでgoogleAPIを叩いてgmailの下書きを作成するものを作ったのですが、
これを毎日作成(雛形をコピー)するスプレッドシードで使いたいと思っています。
スプレッドシートに書いてコピーすると、gAPIの紐付けプロジェクトが変わっているので設定しなおさなければ使えず、困っています。
スプレッドシートをコピーして、シート上のボタンを押したらすぐに下書きを作れる状態を作りたいのですが、どのような方法がありますか?
これを毎日作成(雛形をコピー)するスプレッドシードで使いたいと思っています。
スプレッドシートに書いてコピーすると、gAPIの紐付けプロジェクトが変わっているので設定しなおさなければ使えず、困っています。
スプレッドシートをコピーして、シート上のボタンを押したらすぐに下書きを作れる状態を作りたいのですが、どのような方法がありますか?
341デフォルトの名無しさん
2016/08/24(水) 09:46:43.51ID:nL2g9QDB >>340
GASのGmailAppでダメ?
ttp://qiita.com/minanami/items/87641f09192be1b5010b
個人的にはフォームから入力させた方がGUI的にいいと思うけど
スプレッドシートに保存したいならその後GASで自動追加させとけばいいし
GASのGmailAppでダメ?
ttp://qiita.com/minanami/items/87641f09192be1b5010b
個人的にはフォームから入力させた方がGUI的にいいと思うけど
スプレッドシートに保存したいならその後GASで自動追加させとけばいいし
342デフォルトの名無しさん
2016/08/24(水) 15:58:08.87ID:Ku8YOB4B >>340
ライブラリ化する
ライブラリ化する
343デフォルトの名無しさん
2016/08/25(木) 08:04:24.21ID:Y3c8VA1Y344デフォルトの名無しさん
2016/08/25(木) 23:18:14.53ID:5XLt8Aa8345デフォルトの名無しさん
2016/08/27(土) 08:39:19.05ID:m8PsOLXX346334
2016/08/27(土) 11:42:11.09ID:RucMLpGl347デフォルトの名無しさん
2016/09/28(水) 22:05:17.24ID:eXjFddOW ここ最近CalendarAppのアクセス頻度でエラーが出るようになった
Googleはアナウンスなしで仕様変更してくるのやめてほしい
Googleはアナウンスなしで仕様変更してくるのやめてほしい
348デフォルトの名無しさん
2016/10/19(水) 12:06:30.27ID:r6QG4f4p G Suite ω
349デフォルトの名無しさん
2016/10/19(水) 18:25:48.15ID:V4/PZwvc 株価のサイトにはNASDAQとかもあるのか
このJSONデータが無料ってすごいな
このJSONデータが無料ってすごいな
350デフォルトの名無しさん
2016/10/22(土) 17:05:09.77ID:O48rD9qT >>347
ほんそれ
ほんそれ
351デフォルトの名無しさん
2016/11/25(金) 23:29:15.59ID:dTj7tfXq プロジェクトの.gsファイルって並び替えってできないんですか?
352デフォルトの名無しさん
2016/12/13(火) 18:03:00.36ID:x2U1jQSF google sitesとスプレッドシートとの連携について教えて下さい。
google sitesで作成したページ(AAAについての確認とします)上に個人名でいくつかの
CK BOXがあります。
----------------------------
<AAAについての確認>
□Aさん
□Bくん
□Cちゃん
□Dちゃん
□Eさん
送信
----------------------------
いくつかのCK BOXにCKが入っているとして”送信”を押したら次の様にスプレッドシートを操作する方法を
教えて下さい。
1. googleドライブ上の指定されたスプレッドシート内に<AAAについての確認>というシートが作成される。
2. 1で作成されたシートにAさんからEさんまでのCK BOX STATUSを記録する
3. 送信した日付も記録する
目的としては、家族内情報共有ホームページを作成したいです。
Googleサイトが無償でホームページが作成できるとのことでGoogleサイトでのこの内容の動きが
出来るか教えていただきたいです。
google sitesで作成したページ(AAAについての確認とします)上に個人名でいくつかの
CK BOXがあります。
----------------------------
<AAAについての確認>
□Aさん
□Bくん
□Cちゃん
□Dちゃん
□Eさん
送信
----------------------------
いくつかのCK BOXにCKが入っているとして”送信”を押したら次の様にスプレッドシートを操作する方法を
教えて下さい。
1. googleドライブ上の指定されたスプレッドシート内に<AAAについての確認>というシートが作成される。
2. 1で作成されたシートにAさんからEさんまでのCK BOX STATUSを記録する
3. 送信した日付も記録する
目的としては、家族内情報共有ホームページを作成したいです。
Googleサイトが無償でホームページが作成できるとのことでGoogleサイトでのこの内容の動きが
出来るか教えていただきたいです。
353デフォルトの名無しさん
2016/12/13(火) 21:30:54.00ID:mRmuTzdU フォームの名前を<AAAについての確認>とすればいい。
354デフォルトの名無しさん
2016/12/14(水) 13:19:44.27ID:UzzFPJML CK BOX
って何かと思った
って何かと思った
355デフォルトの名無しさん
2016/12/17(土) 01:48:09.89ID:3C8QRPXl GASであるサイトをスクレイピングしたいけど、ログインしないと情報が取得できない。
クッキーをセットしたりすればログインしてアクセスできるけど、それってセキュリティ的に危険かな?
クッキーをセットしたりすればログインしてアクセスできるけど、それってセキュリティ的に危険かな?
356デフォルトの名無しさん
2016/12/19(月) 23:51:02.67ID:Hch485Lz GASでスプレッドシートをいじろうと思ってるのですか、まず有効なスプレッドシートを選択してくださいと。と表示されてできません。なにがダメなのでしょうか。下記のようにやっています。
var ss = SpreadsheetApp.OpenById("");
var sheet = ss.getSheetByName("");
SpreadsheetApp.setActiveSheet(sheet);
var ss = SpreadsheetApp.OpenById("");
var sheet = ss.getSheetByName("");
SpreadsheetApp.setActiveSheet(sheet);
357デフォルトの名無しさん
2016/12/20(火) 12:59:03.44ID:lAXr92yw IDは?
358デフォルトの名無しさん
2016/12/20(火) 19:57:35.71ID:ktde9hau oops
359デフォルトの名無しさん
2016/12/21(水) 00:25:00.04ID:nYEPRmnr ID、シート名ともにあってます…
スプレッドシートからスクリプトエディタを使わないとできないのでしょうか?今は別にスクリプトファイルを作ってやってます
スプレッドシートからスクリプトエディタを使わないとできないのでしょうか?今は別にスクリプトファイルを作ってやってます
360デフォルトの名無しさん
2016/12/21(水) 08:27:21.58ID:h8+/QyVK >>356
”→'
”→'
361デフォルトの名無しさん
2016/12/22(木) 18:37:45.76ID:0Tg51mYJ362デフォルトの名無しさん
2016/12/22(木) 18:40:37.70ID:0Tg51mYJ363デフォルトの名無しさん
2016/12/22(木) 23:50:12.42ID:TIDq1bhf >>356
試してはないけど、まずアクティブなシート取得しないとエラるっぽい
http://nevernoteit1419.blogspot.jp/2012/01/blog-post_569.html?m=1
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#setActiveSheet(Sheet)
試してはないけど、まずアクティブなシート取得しないとエラるっぽい
http://nevernoteit1419.blogspot.jp/2012/01/blog-post_569.html?m=1
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#setActiveSheet(Sheet)
364デフォルトの名無しさん
2016/12/27(火) 01:28:56.39ID:tIGH6DEG みなさんありがとうございました!
Var SS = SpreadsheetApp.openById("");
Var sheet = SS.getSheetByName("");
SpreadsheetApp.getActivesheet ();
でエラー出ずにやることができました
Var SS = SpreadsheetApp.openById("");
Var sheet = SS.getSheetByName("");
SpreadsheetApp.getActivesheet ();
でエラー出ずにやることができました
365デフォルトの名無しさん
2016/12/27(火) 14:37:37.38ID:6KX94UiV sheetが使われてない
366デフォルトの名無しさん
2017/01/08(日) 20:32:30.74ID:BBb65MXo GASでローカルのtxt、たとえばc:\\test.txtなんかをスプレッドシートに展開したいのだけれど
csvを展開するスクリプト(https://github.com/prog-mitsu/importCsv)
をいじくりまわしてもどうもうまくいかない
このスクリプトだと、フォームが表示されるのだけれど
フォームの表示なしで、固定のテキストファイル(たとえばc:\\test.txt)を展開することって
GASではむりなんかいな?
csvを展開するスクリプト(https://github.com/prog-mitsu/importCsv)
をいじくりまわしてもどうもうまくいかない
このスクリプトだと、フォームが表示されるのだけれど
フォームの表示なしで、固定のテキストファイル(たとえばc:\\test.txt)を展開することって
GASではむりなんかいな?
367デフォルトの名無しさん
2017/01/08(日) 21:45:18.24ID:5b4VWoeT ローカルのものをGoogleDriveにupするAPIはあるよ
368366
2017/01/09(月) 07:41:00.04ID:kW/T2j6A >>367
早速の返信ありがとうございます
いろいろ調べましたが
http://tokidoki-web.com/2013/08/file-api%E3%81%A7%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E6%83%85%E5%A0%B1%E5%8F%96%E5%BE%97%E3%81%97%E3%81%A6%E3%82%84%E3%82%93%E3%82%88/
にあるとおり
>セキュリティの問題上でパスを「C:\file.txt」や「../text/file.txt」の様に指定してファイルを書き直す事はできません。
との状況です
早速の返信ありがとうございます
いろいろ調べましたが
http://tokidoki-web.com/2013/08/file-api%E3%81%A7%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E6%83%85%E5%A0%B1%E5%8F%96%E5%BE%97%E3%81%97%E3%81%A6%E3%82%84%E3%82%93%E3%82%88/
にあるとおり
>セキュリティの問題上でパスを「C:\file.txt」や「../text/file.txt」の様に指定してファイルを書き直す事はできません。
との状況です
369デフォルトの名無しさん
2017/01/09(月) 10:02:02.53ID:/7U8UXhW ローカルのものをGoogleDriveにupしたあと
それをGASで開くんだよ
それをGASで開くんだよ
371デフォルトの名無しさん
2017/01/13(金) 00:01:00.63ID:YkcCHApN373デフォルトの名無しさん
2017/02/02(木) 07:52:54.77ID:hDfY8PDB 半年ほど前にお世話になった者です
スプレッドシートでimportdata関数を使っていたんですが
Loading......が頻発するので、やはりGASで対処したいのです
データ取得までは出来てると思うのですが、シートに書き込む段階が全くおかしいようで・・
function fetchData(){
var response = UrlFetchApp.fetch("http://hesonogoma.com/stocks/data/japan-all-stock-prices");
var json = response.getContentText();
var kakaku = JSON.parse(json);
var range = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(1, 1);
range.offset(0, 0, 6000, 26).clear();
for(var i=0; i<kakaku.length; i++) {
var event = kakaku[i];
range.offset(i+1,0).setValue(event);
}
}
正解か、参考になるサイトをご教授いただきたいのです
色んなサイトのコード切り貼りしすぎて、頭がおかしくなってきたw
スプレッドシートでimportdata関数を使っていたんですが
Loading......が頻発するので、やはりGASで対処したいのです
データ取得までは出来てると思うのですが、シートに書き込む段階が全くおかしいようで・・
function fetchData(){
var response = UrlFetchApp.fetch("http://hesonogoma.com/stocks/data/japan-all-stock-prices");
var json = response.getContentText();
var kakaku = JSON.parse(json);
var range = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(1, 1);
range.offset(0, 0, 6000, 26).clear();
for(var i=0; i<kakaku.length; i++) {
var event = kakaku[i];
range.offset(i+1,0).setValue(event);
}
}
正解か、参考になるサイトをご教授いただきたいのです
色んなサイトのコード切り貼りしすぎて、頭がおかしくなってきたw
374デフォルトの名無しさん
2017/02/02(木) 12:56:10.24ID:Y5kXFMjA アクセス権は?
375373
2017/02/03(金) 06:23:34.32ID:HRggU1Ve >>374
仕組みがよくわからないんですが、
ログにはデータ表示されるのでアクセスは出来ているはず・・・
・・もしかしてアクセス権というのは違法性の問題とかですか!?
すみません、だったら質問とりやめますが
仕組みがよくわからないんですが、
ログにはデータ表示されるのでアクセスは出来ているはず・・・
・・もしかしてアクセス権というのは違法性の問題とかですか!?
すみません、だったら質問とりやめますが
376デフォルトの名無しさん
2017/02/03(金) 08:05:00.39ID:HRggU1Ve 色々やってみたら一応なんとかなりました
1年ちょいのモヤモヤが一気に解消して、いま涙目になってますウォォ
ありがとうございました!
1年ちょいのモヤモヤが一気に解消して、いま涙目になってますウォォ
ありがとうございました!
377デフォルトの名無しさん
2017/02/03(金) 16:11:50.71ID:Jl+ODihZ 役に立たんちんぽだな
378デフォルトの名無しさん
2017/02/15(水) 00:43:00.46ID:8OzNcjl5 エラーのメールいっぱいくるからトリガー止めようと思っても保存押したらサーバーエラーになっちゃう
379デフォルトの名無しさん
2017/02/15(水) 13:37:01.14ID:8OzNcjl5 "サービスで1日に使用しているコンピュータ時間が長すぎます”っていうエラー出るだけど
どういうエラーか分かりますか?
なにもいじってないのに昨晩から急に出るようになった
どういうエラーか分かりますか?
なにもいじってないのに昨晩から急に出るようになった
380デフォルトの名無しさん
2017/02/15(水) 13:39:42.93ID:0zPxl8zN 無限ループ
381デフォルトの名無しさん
2017/02/15(水) 13:40:56.40ID:8OzNcjl5 なるほど
なんで急になったんだろう
なんで急になったんだろう
382デフォルトの名無しさん
2017/02/18(土) 13:34:37.67ID:sYCIN7Mu 1日のMAXが累計1時間だっけか
処理回数が多いか、実行時間が長いんだろうな
処理回数が多いか、実行時間が長いんだろうな
383379
2017/02/19(日) 12:34:42.66ID:I5IVz31O 1日止めて何も変えずトリガー元に戻しましたが、今のところ問題無し
数は減らしましたがペースは変えず
数は減らしましたがペースは変えず
384デフォルトの名無しさん
2017/02/27(月) 17:20:09.61ID:D6mIqUvN Spreadsheetで行の非表示/表示はsheet.hideRow(rowIndex)/sheet.unhideRow(rowIndex)ですが、
ある行が非表示であるかどうかはどのように確認できますか?
ある行が非表示であるかどうかはどのように確認できますか?
385デフォルトの名無しさん
2017/03/02(木) 18:37:21.00ID:ZV5SMkF2 visible
386デフォルトの名無しさん
2017/03/09(木) 00:32:07.05ID:JhFIW3VD387デフォルトの名無しさん
2017/03/09(木) 00:45:24.51ID:9+K5Dr1K Visible
388デフォルトの名無しさん
2017/03/10(金) 02:53:31.23ID:+YP/FacC https://code.google.com/p/google-apps-script-issues/issues/detail?id=195
これがOpen issueってことはサポートされてないんでは?
これがOpen issueってことはサポートされてないんでは?
389デフォルトの名無しさん
2017/03/11(土) 14:16:44.62ID:QRqRtZxP >>388
ありがとうございます。確かにそのページによるとサポートされてなさそうですね。
stackoverflowでいくつかの同様な質問を見つけましたが、できない的なことが書かれてました。
visibleの件ももう少し調べてみて、できそうになかったら諦めます。
ありがとうございます。確かにそのページによるとサポートされてなさそうですね。
stackoverflowでいくつかの同様な質問を見つけましたが、できない的なことが書かれてました。
visibleの件ももう少し調べてみて、できそうになかったら諦めます。
390デフォルトの名無しさん
2017/03/26(日) 23:38:49.69ID:bKMbQXbX var triggerUniqueId = ScriptApp.newTrigger("doPost2")
.timeBased()
.after(100)
.create()
.getUniqueId();
これを実行すると以下の3パターンの動作になるのだがなんとかならないかな?
・すぐにdoPost2に飛んでくる
・数秒〜数十秒後にdoPost2に飛んでくる
・どんだけ待とうがdoPost2に飛んでこない(何分か待ってれば飛んでくるのか?)
ちなみに飛んでこなかった場合は全てのトリガを削除してからやり直してる。
.timeBased()
.after(100)
.create()
.getUniqueId();
これを実行すると以下の3パターンの動作になるのだがなんとかならないかな?
・すぐにdoPost2に飛んでくる
・数秒〜数十秒後にdoPost2に飛んでくる
・どんだけ待とうがdoPost2に飛んでこない(何分か待ってれば飛んでくるのか?)
ちなみに飛んでこなかった場合は全てのトリガを削除してからやり直してる。
391390
2017/03/27(月) 00:25:00.99ID:0WjH3gBI 微妙に勘違いされそうな書き方だったので追記
doPost2に飛んできたときはその中でトリガを削除しているので
「飛んでこなかった場合は全てのトリガを削除してからやり直してる。」ということです。
doPost2に飛んできたときはその中でトリガを削除しているので
「飛んでこなかった場合は全てのトリガを削除してからやり直してる。」ということです。
392デフォルトの名無しさん
2017/03/27(月) 01:50:47.06ID:R2ENwT8H 100ms後にdoPost2に飛ばしたいってこと?
最終的になにがしたいかわからん
そのidでなにすんの?
最終的になにがしたいかわからん
そのidでなにすんの?
393デフォルトの名無しさん
2017/03/27(月) 07:58:56.68ID:7fg5PAil PayPal IPNの処理が目的です。
394デフォルトの名無しさん
2017/03/27(月) 08:47:26.49ID:VebtMPKj 目先の目的は「指定した時間後にdoPost2を実行したい」です。
100msが1秒になるにはまだ許容範囲ですが、
さすがに数十秒後やかなり待っても飛んでこないのはなにか設定がおかしいのかなと。
100msが1秒になるにはまだ許容範囲ですが、
さすがに数十秒後やかなり待っても飛んでこないのはなにか設定がおかしいのかなと。
395デフォルトの名無しさん
2017/03/27(月) 20:46:24.21ID:2rEhsR/n トリガーをつくるのではなく、Utilities.sleepじゃダメ?
396デフォルトの名無しさん
2017/03/27(月) 23:05:58.94ID:8SS48vh4 大雑把に以下のような流れになるのでsleepでは無理っす。
1, PayPalからPOSTがくる
2, PayPalにHTTP 200を返す
3, PayPalにPOSTを投げる
https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNIntro/
function doPost(e) {
トリガ仕掛ける
HTTP 200を返す
}
function doPost2() {
POSTを投げる
}
いろいろ試したけど60秒とか大きな値ならそれっぽいタイミングでトリガがかかるみたい。
短すぎる設定時間はダメなのかなぁ。
1, PayPalからPOSTがくる
2, PayPalにHTTP 200を返す
3, PayPalにPOSTを投げる
https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNIntro/
function doPost(e) {
トリガ仕掛ける
HTTP 200を返す
}
function doPost2() {
POSTを投げる
}
いろいろ試したけど60秒とか大きな値ならそれっぽいタイミングでトリガがかかるみたい。
短すぎる設定時間はダメなのかなぁ。
397デフォルトの名無しさん
2017/03/28(火) 08:44:43.71ID:o5IlqyIy トリガの指定って分単位だった気がする
内部的にcronだから
○時ちょうどにトリガー仕掛けたくて試したけど無理で、59分にしかけて00秒まで待つって実装にしたことがある
非同期処理ができないから難しいかも
秒数は一定じゃないから、1分後にトリガー設定しても最大1分59秒後になることもある
にしても面倒な仕様だなPaypal
内部的にcronだから
○時ちょうどにトリガー仕掛けたくて試したけど無理で、59分にしかけて00秒まで待つって実装にしたことがある
非同期処理ができないから難しいかも
秒数は一定じゃないから、1分後にトリガー設定しても最大1分59秒後になることもある
にしても面倒な仕様だなPaypal
398デフォルトの名無しさん
2017/05/05(金) 06:31:43.18ID:SiZHVQw5 VBAのCall ステートメントは、Google Apps Scriptの場合どう記述すればいいですか?
399デフォルトの名無しさん
2017/05/05(金) 07:47:20.79ID:SiZHVQw5 自己解決しました。(・ω<) テヘペロ
400デフォルトの名無しさん
2017/05/14(日) 12:32:35.84ID:jKxGUXHj アクティブシートのカーソルがあるセル(アクティブセル)の行番号を、別のシート(setei)のB1へコピーしたいのですが、
うまく行きません。
5行目のvar copyValue〜の値をmsgBoxで出力すると、希望通りの値が出ているので、そこまでは合っていると思うのでが、
6行目で取得した行番号を、別のシートのB1に入れる所で躓いています。解決方法を教えて頂けないでしょうか?
function myFunction() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet_copyFrom = sheet.getActiveSheet();
var sheet_copyTo = sheet.getSheetByName('setei');
var copyValue = sheet_copyFrom.getActiveCell().getRow();
sheet_copyTo.getRange('B1').setValues(copyValue);
}
うまく行きません。
5行目のvar copyValue〜の値をmsgBoxで出力すると、希望通りの値が出ているので、そこまでは合っていると思うのでが、
6行目で取得した行番号を、別のシートのB1に入れる所で躓いています。解決方法を教えて頂けないでしょうか?
function myFunction() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet_copyFrom = sheet.getActiveSheet();
var sheet_copyTo = sheet.getSheetByName('setei');
var copyValue = sheet_copyFrom.getActiveCell().getRow();
sheet_copyTo.getRange('B1').setValues(copyValue);
}
401デフォルトの名無しさん
2017/05/14(日) 13:22:55.89ID:v32VfkzT 行番号をコピーするの?アクティブセルの値じゃなくて?
402デフォルトの名無しさん
2017/05/14(日) 13:30:26.13ID:v32VfkzT sheet_copyTo.getRange('B1').setValue(copyValue);
403デフォルトの名無しさん
2017/05/14(日) 15:17:11.71ID:jKxGUXHj404デフォルトの名無しさん
2017/05/21(日) 21:07:56.13ID:UO8/oZl+ 質問です。
スプレッドシートのシートを並び替えることはできますか?
セル範囲のデータならSORTでできることは知っているのですが、シートには使えませんよね。
日付がシート名になってて、それを昇順に並び替えしたいのです。
よろしくお願いします。
スプレッドシートのシートを並び替えることはできますか?
セル範囲のデータならSORTでできることは知っているのですが、シートには使えませんよね。
日付がシート名になってて、それを昇順に並び替えしたいのです。
よろしくお願いします。
405デフォルトの名無しさん
2017/05/22(月) 08:08:37.50ID:Bx+b+qt8 出来ないことはなだろうが面倒くさいし、丸投げならお断り。
406デフォルトの名無しさん
2017/05/22(月) 16:43:39.47ID:j0GB+9U0 IDかわりましたけど404です。
>>405
めんどくさい方法ですけど、一応自分で作ってはみました。
これよりいい方法があるのか、改めてお知恵をお貸しください。
var ss = SpreadsheetApp.openById(file.getId());
var sheets = ss.getSheets();
// シート名(yyyyMMdd形式)で昇順ソート
sheets.sort(function(a, b){
var aa = Number(a.getSheetName()) || a.getSheetName();
var bb = Number(b.getSheetName()) || b.getSheetName();
if (aa < bb) return -1;
if (aa > bb) return 1;
return 0;
});
// 別スプレッドシートにコピー
for (var n in sheets)
{
var sheet = sheets[n];
var sheetName = sheet.getSheetName();
sheet.copyTo(sortedSs).setName(sheetName);
}
同じスプレッドシートでの並べ替えを諦めて、別スプレッドシートにソート済みをコピーしたってだけのものです。
>>405
めんどくさい方法ですけど、一応自分で作ってはみました。
これよりいい方法があるのか、改めてお知恵をお貸しください。
var ss = SpreadsheetApp.openById(file.getId());
var sheets = ss.getSheets();
// シート名(yyyyMMdd形式)で昇順ソート
sheets.sort(function(a, b){
var aa = Number(a.getSheetName()) || a.getSheetName();
var bb = Number(b.getSheetName()) || b.getSheetName();
if (aa < bb) return -1;
if (aa > bb) return 1;
return 0;
});
// 別スプレッドシートにコピー
for (var n in sheets)
{
var sheet = sheets[n];
var sheetName = sheet.getSheetName();
sheet.copyTo(sortedSs).setName(sheetName);
}
同じスプレッドシートでの並べ替えを諦めて、別スプレッドシートにソート済みをコピーしたってだけのものです。
407デフォルトの名無しさん
2017/05/22(月) 22:49:33.07ID:Bx+b+qt8 1.シート数を取得
2.全シート名を配列へ
3.配列をソート array.sort()
4.シートを移動
2.全シート名を配列へ
3.配列をソート array.sort()
4.シートを移動
408デフォルトの名無しさん
2017/05/23(火) 20:48:03.04ID:RApg7j5+ >>407
4. シートを移動
これができなくて悩んでたんですが
SpreadsheetオブジェクトにinsertSheetメソッドやmoveActiveSheetメソッドがありますね。
何とか実装できそうです。
ありがとうございました。
4. シートを移動
これができなくて悩んでたんですが
SpreadsheetオブジェクトにinsertSheetメソッドやmoveActiveSheetメソッドがありますね。
何とか実装できそうです。
ありがとうございました。
409デフォルトの名無しさん
2017/06/23(金) 10:37:10.09ID:0OdP20aK 乙
410デフォルトの名無しさん
2017/06/25(日) 21:20:03.77ID:xjvWfy2S getValuesで取得した二次配列の、あるインデックス番号Ary[n][n]から、セル番号を取得するにはどうすれば良いでしょうか?
又、それはAPIを使わず、javaの配列処理の中で完結できるものなのでしょうか?
又、それはAPIを使わず、javaの配列処理の中で完結できるものなのでしょうか?
411デフォルトの名無しさん
2017/06/26(月) 07:20:27.40ID:POytUkXJ その二次配列はどのセル番号から取得したんだよ。
412デフォルトの名無しさん
2017/06/26(月) 11:16:36.54ID:H+izVTcm modは義務教育で教えるべきだな
413デフォルトの名無しさん
2017/06/26(月) 15:45:17.47ID:Zgx9U3+p gasなのかわからないですが、間違いならすみません。
フォームで@郵便番号を入れたら住所の一部を表記させたいのですが、できるのでしょうか?
A特定の数字をいれたら、外部からその数字に該当するデータを引っ張れるでしょうか?(社員コードいれなら社員名がでるイメージです)
誠にすみませんが、可能ならばご教授
おねがいします。
gasはさわったことないので、できそうならば、やってみたいとおもいます。
フォームで@郵便番号を入れたら住所の一部を表記させたいのですが、できるのでしょうか?
A特定の数字をいれたら、外部からその数字に該当するデータを引っ張れるでしょうか?(社員コードいれなら社員名がでるイメージです)
誠にすみませんが、可能ならばご教授
おねがいします。
gasはさわったことないので、できそうならば、やってみたいとおもいます。
414デフォルトの名無しさん
2017/06/26(月) 20:44:30.70ID:iMKCKa0h415デフォルトの名無しさん
2017/06/26(月) 21:07:30.37ID:YNcumjCY416デフォルトの名無しさん
2017/06/26(月) 22:04:28.18ID:c+BwvDt7 うーん、この、ggrks感
417デフォルトの名無しさん
2017/07/05(水) 17:50:45.17ID:aOT9LPA2 /**
* @return ライブラリ名
*/
とやっているのに返り値のメソッド補完が効きません…
何か間違っているでしょうか…
* @return ライブラリ名
*/
とやっているのに返り値のメソッド補完が効きません…
何か間違っているでしょうか…
418デフォルトの名無しさん
2017/07/05(水) 18:12:42.59ID:lervoDRk それ、ただのコメントでは?
419デフォルトの名無しさん
2017/07/05(水) 19:25:23.18ID:aOT9LPA2 >>418
コメント付けると補完が効くようになると聞きました
コメント付けると補完が効くようになると聞きました
420デフォルトの名無しさん
2017/07/05(水) 19:46:41.16ID:lervoDRk 波括弧で括ってないからかな?
421デフォルトの名無しさん
2017/07/06(木) 14:10:14.25ID:flMfxcNT うちはできてる
422デフォルトの名無しさん
2017/07/12(水) 23:56:43.84ID:zDi+fEh9 外部サイトで申し訳ないのですが、GASについて下記のサイトのチュートリアルを試していたのですが
ttps://tonari-it.com/gas-web-appli-spreadsheet-append/
真似をしてみても、エラー出てしまいます。
getActiveSheet を呼び出す権限がありません(行 2、ファイル「test2」、プロジェクト「HTMLページ表示」)
自分のコードが間違えたのかと、コードをコピペしたり、スクリプト認証を再度許可を出すために
現在とは別にファイルを作り直したりしたのですが、同じエラーが出てしまいます。
このエラーを回避するにはどうすれば良いでしょうか?
ttps://tonari-it.com/gas-web-appli-spreadsheet-append/
真似をしてみても、エラー出てしまいます。
getActiveSheet を呼び出す権限がありません(行 2、ファイル「test2」、プロジェクト「HTMLページ表示」)
自分のコードが間違えたのかと、コードをコピペしたり、スクリプト認証を再度許可を出すために
現在とは別にファイルを作り直したりしたのですが、同じエラーが出てしまいます。
このエラーを回避するにはどうすれば良いでしょうか?
423デフォルトの名無しさん
2017/07/13(木) 13:23:39.30ID:G6DCMcFU よそから持ってきたライブラリを使ってないか
424422
2017/07/13(木) 13:30:04.56ID:7vUNc/rI すみません自己解決しました。
原因はスクリプトにプロジェクトのトリガーを設定していなかったことが原因だった様です。
公開済みのHTMLなのでアクセスすれば良いだけでなのに、なんでや!と思っていたのですが、
googleのwebアプリの場合、公開時にアサインされるHTMLへのリンクは、実はHTMLへのリンクではなく、
リンク > Ajax > .gs > html という流れらしく(たぶん)
3番目の.gsにトリガーが設定されてないとダメという感じの様です。なので.gsのトリガー設定した所動きました。
[設定したトリガー]
実行:doGet
イベント:スプレッドシートから・起動時に設定
このトリガー自体適当に設定したので、spreadsheetに紐付いた(コンテナバウンド)webアプリがこのトリガーで本当に良いのか?
.gsがスタンドアローンだったらどうするのか?などは自分の知識ではまだ不明です。
割と有名(みんなが引っかかる)ワナらしく、「GAS 実行する権限がありません」でググると色々出てきます。
原因はスクリプトにプロジェクトのトリガーを設定していなかったことが原因だった様です。
公開済みのHTMLなのでアクセスすれば良いだけでなのに、なんでや!と思っていたのですが、
googleのwebアプリの場合、公開時にアサインされるHTMLへのリンクは、実はHTMLへのリンクではなく、
リンク > Ajax > .gs > html という流れらしく(たぶん)
3番目の.gsにトリガーが設定されてないとダメという感じの様です。なので.gsのトリガー設定した所動きました。
[設定したトリガー]
実行:doGet
イベント:スプレッドシートから・起動時に設定
このトリガー自体適当に設定したので、spreadsheetに紐付いた(コンテナバウンド)webアプリがこのトリガーで本当に良いのか?
.gsがスタンドアローンだったらどうするのか?などは自分の知識ではまだ不明です。
割と有名(みんなが引っかかる)ワナらしく、「GAS 実行する権限がありません」でググると色々出てきます。
425デフォルトの名無しさん
2017/07/13(木) 14:07:47.08ID:G6DCMcFU そんなことはチュートリアルの一番最初に書いてある
426デフォルトの名無しさん
2017/09/26(火) 05:38:02.61ID:uiCOOs0C ぐぐってきたけど、ここそんなに人気ないの?
427デフォルトの名無しさん
2017/09/26(火) 15:54:12.38ID:dGip1y4C ऄ
428デフォルトの名無しさん
2017/09/26(火) 19:33:58.52ID:vmZLMK5C すみませんが質問させてください。
現在、google appsのみで簡易ウェブアプリの制作を試みています。
構成は
htmlservice+gas+spredseet(DB)
です。
各種申請をweb化するのですが、アクセスしたユーザーのgmailアドレスもDBに格納します。
session.getactiveuser().getemailを利用するため、スクリプトの実行者は「アプリケーションアクセスしているユーザー」にしています。
そうすると、spreadsheetも全員に公開する必要がありますが、spreadsheetの中身は個人情報を少し含むため見られたくありません。
なにかいい方法はありますでしょうか、、、fusiontablesなどであればできるのでしょうか?
現在、google appsのみで簡易ウェブアプリの制作を試みています。
構成は
htmlservice+gas+spredseet(DB)
です。
各種申請をweb化するのですが、アクセスしたユーザーのgmailアドレスもDBに格納します。
session.getactiveuser().getemailを利用するため、スクリプトの実行者は「アプリケーションアクセスしているユーザー」にしています。
そうすると、spreadsheetも全員に公開する必要がありますが、spreadsheetの中身は個人情報を少し含むため見られたくありません。
なにかいい方法はありますでしょうか、、、fusiontablesなどであればできるのでしょうか?
429デフォルトの名無しさん
2017/09/26(火) 19:49:32.88ID:pQJJ1OIB ユーザーごとの情報はユーザープロパティに入れるべきでは?
430デフォルトの名無しさん
2017/09/27(水) 13:03:25.12ID:Is6BRq5M >>429
ご助言ありがとうございます。
propaties serviceについて調べた見ましたが、ユーザープロパティとして保存した場合、他のユーザーからは一切アクセスできないものと思いました。
一部のユーザー(システム管理を行う数名)に対しては、データの参照ができるようにしたいと思ったおります(申請されたデータを承認するようなワークフローアプリを検討しているため。後出して申し訳ありません)
ご助言ありがとうございます。
propaties serviceについて調べた見ましたが、ユーザープロパティとして保存した場合、他のユーザーからは一切アクセスできないものと思いました。
一部のユーザー(システム管理を行う数名)に対しては、データの参照ができるようにしたいと思ったおります(申請されたデータを承認するようなワークフローアプリを検討しているため。後出して申し訳ありません)
431デフォルトの名無しさん
2017/09/27(水) 14:45:10.73ID:/heCrwKp サイズが十分小さければスクリプトプロパティかな。
たしか500KBくらいまで。
あるいは、スプレッドシートにスクリプトを付属させるんじゃなく、
独立プロジェクトにして、openByIdとかopenByUrlとかは?
たしか500KBくらいまで。
あるいは、スプレッドシートにスクリプトを付属させるんじゃなく、
独立プロジェクトにして、openByIdとかopenByUrlとかは?
432デフォルトの名無しさん
2017/09/27(水) 15:36:25.01ID:Is6BRq5M >>431
ご助言ありがとうございます。
プロパティについては、思いの外データの種類が増えそうなため難しそうです。
スクリプトをスタンドアロンにして、openbyidがいいですかね、万一idがバレてしまった時のことが不安ですが、そういったことは起こらないと思っていい感じでしょうか。
ご助言ありがとうございます。
プロパティについては、思いの外データの種類が増えそうなため難しそうです。
スクリプトをスタンドアロンにして、openbyidがいいですかね、万一idがバレてしまった時のことが不安ですが、そういったことは起こらないと思っていい感じでしょうか。
433デフォルトの名無しさん
2017/09/28(木) 10:38:02.39ID:PJxaABWy アプリを分けて階層化しろ
434デフォルトの名無しさん
2017/09/29(金) 01:18:28.86ID:tHWOJPZ9 for (var i = 1; i <= ss.getLastRow() ; i++){
ss.getRange(x,y).setFormula('=IMPORTHTML("https://www.yahoo.co.jp","table"1+i,');
}
for分の中で関数の最後の部分を1ずつ足していきたいのですが、セルに出力された際は「i」の部分は数字としては見てくれません。
1つずつ足していく方法はありますでしょうか。
ss.getRange(x,y).setFormula('=IMPORTHTML("https://www.yahoo.co.jp","table"1+i,');
}
for分の中で関数の最後の部分を1ずつ足していきたいのですが、セルに出力された際は「i」の部分は数字としては見てくれません。
1つずつ足していく方法はありますでしょうか。
435デフォルトの名無しさん
2017/09/29(金) 08:18:30.31ID:qX48jByc >>433
ありがとうございます。
ライブラリ化するということでしょうか。
getEmailする部分を別アプリ(アプリにアクセスしているユーザー実行)にして、spreadsheet操作をするアプリはオーナーとして実行する感じでしょうか。
調べてみます。
ありがとうございます。
ライブラリ化するということでしょうか。
getEmailする部分を別アプリ(アプリにアクセスしているユーザー実行)にして、spreadsheet操作をするアプリはオーナーとして実行する感じでしょうか。
調べてみます。
436デフォルトの名無しさん
2017/09/29(金) 11:06:26.65ID:/1pN5XFr437434
2017/09/29(金) 11:38:46.26ID:tHWOJPZ9 自己解決しました。
ss.getRange(x,y).setFormula('=IMPORTHTML("yahoo.co.jp","table",1+'+i+')');
ss.getRange(x,y).setFormula('=IMPORTHTML("yahoo.co.jp","table",1+'+i+')');
438デフォルトの名無しさん
2017/10/27(金) 20:03:28.12ID:CxLsHkIL googleドライブにアップしたエクセルxlsを自動でspreadsheetに変換するコードはありますか
439デフォルトの名無しさん
2017/10/28(土) 10:08:42.77ID:w8au0uVc すべてのシートで文字の一括置換をしたいのだけど、セル毎に処理するしかないのかな?
レスを投稿する
ニュース
- ホリエモン、タクシーでイラッ!!「運転手の人たちコミュニケーション弱い人多くて、毎回行き先の誘導で揉める」 [ネギうどん★]
- 【車文化】なぜスポーツカーは"チー牛の車"と嘲笑されるのか? ネットスラングの偏見とは? [おっさん友の会★]
- 【音楽】三浦大知に続き、いきものがかりもチケット売れ残り告白。“アーティストの価値”急落の根本原因とは [ネギうどん★]
- 【福岡】「知らない人がシャワーを浴びている」独居女性(28)の部屋に侵入した自称大工男(43)逮捕「自分の家にいるつもりだった」 [おっさん友の会★]
- 【車文化】なぜスポーツカーは"チー牛の車"と嘲笑されるのか? ネットスラングの偏見とは? ★2 [おっさん友の会★]
- 【速報】ドジャース・大谷翔平がパパに! 第1子となる「女児誕生」を報告 早朝から日米のファンが祝福★2 [冬月記者★]
- 万博協会「紙の地図が売れすぎてレジも増設する事態になっている。どういうことなんだ・・・」 [256556981]
- 【悲報】両津勘吉さん「大阪万博なんか東京じゃまったく盛り上がってなかった」 [616817505]
- ▶宝鐘マリンと俺の愛の巣
- 【悲報】 外国人、旅館の食事をほとんど残す人が続出「明日からは出さないでくれ。ファストフードやコンビニ飯のほうがマシ」 [434776867]
- 【悲報】大阪万博➕89000 [616817505]
- 【悲報】大阪万博に行ってきたが、混みすぎ! [257926174]