[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2ch.scのread.cgiへ]
Update time : 12/13 18:40 / Filesize : 287 KB / Number-of Response : 981
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【MACRO】Google Apps Script 質問スレ【DRIVE】



1 名前:デフォルトの名無しさん mailto:sage [2014/06/29(日) 11:07:03.38 ID:5HmND7Qc.net]
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 質問箱
peace.2ch.net/test/read.cgi/tech/1131627583/
Microsoft SkyDrive API
peace.2ch.net/test/read.cgi/tech/1385604796/
【GoogleAppsScript】猿92【研究せよ!!!】
nozomi.2ch.net/test/read.cgi/php/1398600864/
GoogleAPIってどうよ?
nozomi.2ch.net/test/read.cgi/php/1018614427/
Google App Engine for Python 6アプ目
nozomi.2ch.net/test/read.cgi/php/1358570953/
Google App Engine for java
peace.2ch.net/test/read.cgi/tech/1317639323/
GoogleWebToolkit[GWT]について語ろう
nozomi.2ch.net/test/read.cgi/php/1147975874/

335 名前:329 mailto:sage [2016/08/06(土) 08:04:08.54 ID:2dv1pXxg.net]
>>334
レス有難うございます。PrintViewでどうにかできそうですか!

でもどうすればいいか解らないレベルなので
とりあえず図書館でjavascriptの本を借りてきました

「はじめに」
読んでるうちに寝てもうたw

336 名前:329 mailto:sage [2016/08/06(土) 08:13:37.42 ID:2dv1pXxg.net]
ちなみに>332の2を試してみたときのコードが

function getCsvSample() {
var folderId = '***********';
var destfolder = DriveApp.getFolderById(folderId);
var date = "2016-08-04";
var response = UrlFetchApp.fetch("hesonogoma.com/stocks/media/swf/copy_csv_xls_pdf.swf");
destfolder.createFile(date + '.csv', response.getContentText('Shift_JIS'));
}

です。拾ってきたコードをいじって実行したら
謎の文字化け集団が襲ってきました (ここで心折れる)

337 名前:デフォルトの名無しさん [2016/08/10(水) 23:27:34.29 ID:U9v+Tybh.net]
GASでスクレイピングしたいんですが、UrlFetchAppで取得したHTML(XMLじゃない)をDOM化するのってできますでしょうか?
正規表現で必要なところを取ってくるのは心が折れそうなので、セレクタで処理したいです。

338 名前:デフォルトの名無しさん [2016/08/11(木) 11:55:28.49 ID:v2n9djjr.net]
OK

339 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 16:34:55.39 ID:qVxIjH10.net]
>>332-336
Shift_JIS ではなく、UTF-8 で保存すれば?

その後、TeraPad などのエディタで、Shift_JIS に変換する

340 名前:329 mailto:sage [2016/08/13(土) 07:36:05.54 ID:VdLmMpzK.net]
>>339
レスありがとうございます
試してみたんですが、うまく変換できませんでした
やっぱりurlが違うのかな、、

このスレの質問、回答がほとんど理解できてない程度ので
もう少し基本からじっくり勉強してみます!
>>332の1だけ
引き続き質問を残させてください

341 名前:デフォルトの名無しさん [2016/08/13(土) 17:13:54.48 ID:byPJKfY1.net]
GAS関係なくね?

342 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 14:00:18.41 ID:SYSHEBtV.net]
>>332
CSVならGASでドライブに1回保存してからインポートすれば?
次の実行時にドライブAPIでファイル消せば残らんし
もしくはこれ
qiita.com/ms32/items/7e180c1c1d00fa8df647

>>337
parserつかえ
qiita.com/fireowl11/items/e703e35073b600528e7c

343 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 01:12:18.88 ID:dEIn8nhr.net]
GASでgoogleAPIを叩いてgmailの下書きを作成するものを作ったのですが、
これを毎日作成(雛形をコピー)するスプレッドシードで使いたいと思っています。
スプレッドシートに書いてコピーすると、gAPIの紐付けプロジェクトが変わっているので設定しなおさなければ使えず、困っています。

スプレッドシートをコピーして、シート上のボタンを押したらすぐに下書きを作れる状態を作りたいのですが、どのような方法がありますか?



344 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 09:46:43.51 ID:nL2g9QDB.net]
>>343
GASのGmailAppでダメ?
ttp://qiita.com/minanami/items/87641f09192be1b5010b
個人的にはフォームから入力させた方がGUI的にいいと思うけど
スプレッドシートに保存したいならその後GASで自動追加させとけばいいし

345 名前:デフォルトの名無しさん [2016/08/24(水) 15:58:08.87 ID:Ku8YOB4B.net]
>>343
ライブラリ化する

346 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 08:04:24.21 ID:Y3c8VA1Y.net]
>>342
329です 参考にしてみます
ありがとうございます!

347 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 23:18:14.53 ID:5XLt8Aa8.net]
>>332,>>346
よっしゃ、俺がやってやらぁ!って思って意気込んでサイトみたら普通にJSONで取れた
ttp://hesonogoma.com/stocks/data/japan-all-stock-prices.json

348 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 08:39:19.05 ID:m8PsOLXX.net]
>>347
おお、、、これで目的は果たせそうです
皆さん長々とありがとうございました!勉強も少しずつ続けます

349 名前:334 mailto:sage [2016/08/27(土) 11:42:11.09 ID:RucMLpGl.net]
>>342
ありがとうございます。ですが、そのライブラリだと正規表現を使うのと全く変わらないです。
いっそのこと自作しようと思います。
ありがとうございました。

350 名前:デフォルトの名無しさん [2016/09/28(水) 22:05:17.24 ID:eXjFddOW.net]
ここ最近CalendarAppのアクセス頻度でエラーが出るようになった

Googleはアナウンスなしで仕様変更してくるのやめてほしい

351 名前:デフォルトの名無しさん [2016/10/19(水) 12:06:30.27 ID:r6QG4f4p.net]
G Suite ω

352 名前:デフォルトの名無しさん mailto:sage [2016/10/19(水) 18:25:48.15 ID:V4/PZwvc.net]
株価のサイトにはNASDAQとかもあるのか
このJSONデータが無料ってすごいな

353 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 17:05:09.77 ID:O48rD9qT.net]
>>350
ほんそれ



354 名前:デフォルトの名無しさん mailto:sage [2016/11/25(金) 23:29:15.59 ID:dTj7tfXq.net]
プロジェクトの.gsファイルって並び替えってできないんですか?

355 名前:デフォルトの名無しさん mailto:sage [2016/12/13(火) 18:03:00.36 ID:x2U1jQSF.net]
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サイトでのこの内容の動きが
出来るか教えていただきたいです。

356 名前:デフォルトの名無しさん [2016/12/13(火) 21:30:54.00 ID:mRmuTzdU.net]
フォームの名前を<AAAについての確認>とすればいい。

357 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 13:19:44.27 ID:UzzFPJML.net]
CK BOX
って何かと思った

358 名前:デフォルトの名無しさん mailto:sage [2016/12/17(土) 01:48:09.89 ID:3C8QRPXl.net]
GASであるサイトをスクレイピングしたいけど、ログインしないと情報が取得できない。
クッキーをセットしたりすればログインしてアクセスできるけど、それってセキュリティ的に危険かな?

359 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 23:51:02.67 ID:Hch485Lz.net]
GASでスプレッドシートをいじろうと思ってるのですか、まず有効なスプレッドシートを選択してくださいと。と表示されてできません。なにがダメなのでしょうか。下記のようにやっています。

var ss = SpreadsheetApp.OpenById("");
var sheet = ss.getSheetByName("");

SpreadsheetApp.setActiveSheet(sheet);

360 名前:デフォルトの名無しさん [2016/12/20(火) 12:59:03.44 ID:lAXr92yw.net]
IDは?

361 名前:デフォルトの名無しさん [2016/12/20(火) 19:57:35.71 ID:ktde9hau.net]
oops

362 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 00:25:00.04 ID:nYEPRmnr.net]
ID、シート名ともにあってます…

スプレッドシートからスクリプトエディタを使わないとできないのでしょうか?今は別にスクリプトファイルを作ってやってます

363 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 08:27:21.58 ID:h8+/QyVK.net]
>>359
”→'



364 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 18:37:45.76 ID:0Tg51mYJ.net]
>>359
3行目は開いてるスプレッドシートに対してしか効かないとか。
試してないけど。

別に開かずとも変数sheetは取れてるだろうから、3行目は書かなくてもその後のやりたいことはできるのでは?

365 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 18:40:37.70 ID:0Tg51mYJ.net]
>>364
もしくは、3行目を
SpreadsheetApp.setActiveSheet
じゃなくて
ss.setActiveSheet
ってできないかな?

366 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 23:50:12.42 ID:TIDq1bhf.net]
>>359
試してはないけど、まずアクティブなシート取得しないとエラるっぽい
nevernoteit1419.blogspot.jp/2012/01/blog-post_569.html?m=1
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#setActiveSheet(Sheet)

367 名前:デフォルトの名無しさん mailto:sage [2016/12/27(火) 01:28:56.39 ID:tIGH6DEG.net]
みなさんありがとうございました!

Var SS = SpreadsheetApp.openById("");
Var sheet = SS.getSheetByName("");

SpreadsheetApp.getActivesheet ();

でエラー出ずにやることができました

368 名前:デフォルトの名無しさん [2016/12/27(火) 14:37:37.38 ID:6KX94UiV.net]
sheetが使われてない

369 名前:デフォルトの名無しさん mailto:sage [2017/01/08(日) 20:32:30.74 ID:BBb65MXo.net]
GASでローカルのtxt、たとえばc:\\test.txtなんかをスプレッドシートに展開したいのだけれど
csvを展開するスクリプト(https://github.com/prog-mitsu/importCsv)
をいじくりまわしてもどうもうまくいかない

このスクリプトだと、フォームが表示されるのだけれど
フォームの表示なしで、固定のテキストファイル(たとえばc:\\test.txt)を展開することって
GASではむりなんかいな?

370 名前:デフォルトの名無しさん mailto:sage [2017/01/08(日) 21:45:18.24 ID:5b4VWoeT.net]
ローカルのものをGoogleDriveにupするAPIはあるよ

371 名前:366 mailto:sage [2017/01/09(月) 07:41:00.04 ID:kW/T2j6A.net]
>>370
早速の返信ありがとうございます
いろいろ調べましたが
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」の様に指定してファイルを書き直す事はできません。

との状況です

372 名前:デフォルトの名無しさん [2017/01/09(月) 10:02:02.53 ID:/7U8UXhW.net]
ローカルのものをGoogleDriveにupしたあと
それをGASで開くんだよ

373 名前:366 mailto:sage [2017/01/12(木) 21:41:52.77 ID:35gbmkUr.net]
>>372
その、「ローカルのものをGoogleDriveにup」をフォームなどの表示なしに自動化したいのです



374 名前:デフォルトの名無しさん mailto:sage [2017/01/13(金) 00:01:00.63 ID:YkcCHApN.net]
>>373
デスクトップ版のGoogle Drive使って
自動同期でうpすれば?

375 名前:366 mailto:sage [2017/01/13(金) 23:07:28.92 ID:lbjer3ZB.net]
>>374
ありがとうできました。

376 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 07:52:54.77 ID:hDfY8PDB.net]
半年ほど前にお世話になった者です

スプレッドシートでimportdata関数を使っていたんですが
Loading......が頻発するので、やはりGASで対処したいのです
データ取得までは出来てると思うのですが、シートに書き込む段階が全くおかしいようで・・


function fetchData(){
var response = UrlFetchApp.fetch("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

377 名前:デフォルトの名無しさん [2017/02/02(木) 12:56:10.24 ID:Y5kXFMjA.net]
アクセス権は?

378 名前:373 mailto:sage [2017/02/03(金) 06:23:34.32 ID:HRggU1Ve.net]
>>377
仕組みがよくわからないんですが、
ログにはデータ表示されるのでアクセスは出来ているはず・・・

・・もしかしてアクセス権というのは違法性の問題とかですか!?
すみません、だったら質問とりやめますが

379 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 08:05:00.39 ID:HRggU1Ve.net]
色々やってみたら一応なんとかなりました
1年ちょいのモヤモヤが一気に解消して、いま涙目になってますウォォ

ありがとうございました!

380 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 16:11:50.71 ID:Jl+ODihZ.net]
役に立たんちんぽだな

381 名前:デフォルトの名無しさん mailto:sage [2017/02/15(水) 00:43:00.46 ID:8OzNcjl5.net]
エラーのメールいっぱいくるからトリガー止めようと思っても保存押したらサーバーエラーになっちゃう

382 名前:デフォルトの名無しさん mailto:sage [2017/02/15(水) 13:37:01.14 ID:8OzNcjl5.net]
"サービスで1日に使用しているコンピュータ時間が長すぎます”っていうエラー出るだけど
どういうエラーか分かりますか?
なにもいじってないのに昨晩から急に出るようになった

383 名前:デフォルトの名無しさん mailto:sage [2017/02/15(水) 13:39:42.93 ID:0zPxl8zN.net]
無限ループ



384 名前:デフォルトの名無しさん mailto:sage [2017/02/15(水) 13:40:56.40 ID:8OzNcjl5.net]
なるほど
なんで急になったんだろう

385 名前:デフォルトの名無しさん mailto:sage [2017/02/18(土) 13:34:37.67 ID:sYCIN7Mu.net]
1日のMAXが累計1時間だっけか
処理回数が多いか、実行時間が長いんだろうな

386 名前:379 mailto:sage [2017/02/19(日) 12:34:42.66 ID:I5IVz31O.net]
1日止めて何も変えずトリガー元に戻しましたが、今のところ問題無し
数は減らしましたがペースは変えず

387 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 17:20:09.61 ID:D6mIqUvN.net]
Spreadsheetで行の非表示/表示はsheet.hideRow(rowIndex)/sheet.unhideRow(rowIndex)ですが、
ある行が非表示であるかどうかはどのように確認できますか?

388 名前:デフォルトの名無しさん [2017/03/02(木) 18:37:21.00 ID:ZV5SMkF2.net]
visible

389 名前:デフォルトの名無しさん mailto:sage [2017/03/09(木) 00:32:07.05 ID:JhFIW3VD.net]
>>388
ありがとうございます。それってどのクラスから生えてますか?
一応、下のようになってみましたができませんでした。
sheet.getRange(1, 1).visible

390 名前:デフォルトの名無しさん mailto:sage [2017/03/09(木) 00:45:24.51 ID:9+K5Dr1K.net]
Visible

391 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 02:53:31.23 ID:+YP/FacC.net]
https://code.google.com/p/google-apps-script-issues/issues/detail?id=195
これがOpen issueってことはサポートされてないんでは?

392 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 14:16:44.62 ID:QRqRtZxP.net]
>>391
ありがとうございます。確かにそのページによるとサポートされてなさそうですね。
stackoverflowでいくつかの同様な質問を見つけましたが、できない的なことが書かれてました。
visibleの件ももう少し調べてみて、できそうになかったら諦めます。

393 名前:デフォルトの名無しさん [2017/03/26(日) 23:38:49.69 ID:bKMbQXbX.net]
var triggerUniqueId = ScriptApp.newTrigger("doPost2")
.timeBased()
.after(100)
.create()
.getUniqueId();

これを実行すると以下の3パターンの動作になるのだがなんとかならないかな?
・すぐにdoPost2に飛んでくる
・数秒〜数十秒後にdoPost2に飛んでくる
・どんだけ待とうがdoPost2に飛んでこない(何分か待ってれば飛んでくるのか?)

ちなみに飛んでこなかった場合は全てのトリガを削除してからやり直してる。



394 名前:390 mailto:sage [2017/03/27(月) 00:25:00.99 ID:0WjH3gBI.net]
微妙に勘違いされそうな書き方だったので追記

doPost2に飛んできたときはその中でトリガを削除しているので
「飛んでこなかった場合は全てのトリガを削除してからやり直してる。」ということです。

395 名前:デフォルトの名無しさん mailto:sage [2017/03/27(月) 01:50:47.06 ID:R2ENwT8H.net]
100ms後にdoPost2に飛ばしたいってこと?
最終的になにがしたいかわからん
そのidでなにすんの?

396 名前:デフォルトの名無しさん mailto:sage [2017/03/27(月) 07:58:56.68 ID:7fg5PAil.net]
PayPal IPNの処理が目的です。

397 名前:デフォルトの名無しさん mailto:sage [2017/03/27(月) 08:47:26.49 ID:VebtMPKj.net]
目先の目的は「指定した時間後にdoPost2を実行したい」です。
100msが1秒になるにはまだ許容範囲ですが、
さすがに数十秒後やかなり待っても飛んでこないのはなにか設定がおかしいのかなと。

398 名前:デフォルトの名無しさん mailto:sage [2017/03/27(月) 20:46:24.21 ID:2rEhsR/n.net]
トリガーをつくるのではなく、Utilities.sleepじゃダメ?

399 名前:デフォルトの名無しさん mailto:sage [2017/03/27(月) 23:05:58.94 ID:8SS48vh4.net]
大雑把に以下のような流れになるので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秒とか大きな値ならそれっぽいタイミングでトリガがかかるみたい。
短すぎる設定時間はダメなのかなぁ。

400 名前:デフォルトの名無しさん mailto:sage [2017/03/28(火) 08:44:43.71 ID:o5IlqyIy.net]
トリガの指定って分単位だった気がする
内部的にcronだから
○時ちょうどにトリガー仕掛けたくて試したけど無理で、59分にしかけて00秒まで待つって実装にしたことがある
非同期処理ができないから難しいかも
秒数は一定じゃないから、1分後にトリガー設定しても最大1分59秒後になることもある
にしても面倒な仕様だなPaypal

401 名前:デフォルトの名無しさん [2017/05/05(金) 06:31:43.18 ID:SiZHVQw5.net]
VBAのCall ステートメントは、Google Apps Scriptの場合どう記述すればいいですか?

402 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 07:47:20.79 ID:SiZHVQw5.net]
自己解決しました。(・ω<) テヘペロ

403 名前:デフォルトの名無しさん mailto:sage [2017/05/14(日) 12:32:35.84 ID:jKxGUXHj.net]
アクティブシートのカーソルがあるセル(アクティブセル)の行番号を、別のシート(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);
}



404 名前:デフォルトの名無しさん mailto:sage [2017/05/14(日) 13:22:55.89 ID:v32VfkzT.net]
行番号をコピーするの?アクティブセルの値じゃなくて?

405 名前:デフォルトの名無しさん mailto:sage [2017/05/14(日) 13:30:26.13 ID:v32VfkzT.net]
sheet_copyTo.getRange('B1').setValue(copyValue);

406 名前:デフォルトの名無しさん mailto:sage [2017/05/14(日) 15:17:11.71 ID:jKxGUXHj.net]
>>404-405
希望どうりのことができました。ありがとうございます!
スペルが間違っていたとは・・

407 名前:デフォルトの名無しさん [2017/05/21(日) 21:07:56.13 ID:UO8/oZl+.net]
質問です。

スプレッドシートのシートを並び替えることはできますか?
セル範囲のデータならSORTでできることは知っているのですが、シートには使えませんよね。

日付がシート名になってて、それを昇順に並び替えしたいのです。
よろしくお願いします。

408 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 08:08:37.50 ID:Bx+b+qt8.net]
出来ないことはなだろうが面倒くさいし、丸投げならお断り。

409 名前:デフォルトの名無しさん [2017/05/22(月) 16:43:39.47 ID:j0GB+9U0.net]
IDかわりましたけど404です。
>>408
めんどくさい方法ですけど、一応自分で作ってはみました。
これよりいい方法があるのか、改めてお知恵をお貸しください。

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);
}

同じスプレッドシートでの並べ替えを諦めて、別スプレッドシートにソート済みをコピーしたってだけのものです。

410 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 22:49:33.07 ID:Bx+b+qt8.net]
1.シート数を取得
2.全シート名を配列へ
3.配列をソート array.sort()
4.シートを移動

411 名前:デフォルトの名無しさん [2017/05/23(火) 20:48:03.04 ID:RApg7j5+.net]
>>410
4. シートを移動

これができなくて悩んでたんですが
SpreadsheetオブジェクトにinsertSheetメソッドやmoveActiveSheetメソッドがありますね。
何とか実装できそうです。
ありがとうございました。

412 名前:デフォルトの名無しさん [2017/06/23(金) 10:37:10.09 ID:0OdP20aK.net]


413 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 21:20:03.77 ID:xjvWfy2S.net]
getValuesで取得した二次配列の、あるインデックス番号Ary[n][n]から、セル番号を取得するにはどうすれば良いでしょうか?
又、それはAPIを使わず、javaの配列処理の中で完結できるものなのでしょうか?



414 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 07:20:27.40 ID:POytUkXJ.net]
その二次配列はどのセル番号から取得したんだよ。

415 名前:デフォルトの名無しさん [2017/06/26(月) 11:16:36.54 ID:H+izVTcm.net]
modは義務教育で教えるべきだな

416 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 15:45:17.47 ID:Zgx9U3+p.net]
gasなのかわからないですが、間違いならすみません。
フォームで@郵便番号を入れたら住所の一部を表記させたいのですが、できるのでしょうか?
A特定の数字をいれたら、外部からその数字に該当するデータを引っ張れるでしょうか?(社員コードいれなら社員名がでるイメージです)
誠にすみませんが、可能ならばご教授
おねがいします。
gasはさわったことないので、できそうならば、やってみたいとおもいます。

417 名前:デフォルトの名無しさん [2017/06/26(月) 20:44:30.70 ID:iMKCKa0h.net]
>>416
1.できます
2.できます
3.ajax

418 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 21:07:30.37 ID:YNcumjCY.net]
>>417
おしえてくださいばっかりでもうしわけありませんが、本当に素人でして。
コードやら参考のURLでもありましたらおねがいします。

419 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 22:04:28.18 ID:c+BwvDt7.net]
うーん、この、ggrks感

420 名前:デフォルトの名無しさん [2017/07/05(水) 17:50:45.17 ID:aOT9LPA2.net]
/**
* @return ライブラリ名
*/
とやっているのに返り値のメソッド補完が効きません…
何か間違っているでしょうか…

421 名前:デフォルトの名無しさん mailto:sage [2017/07/05(水) 18:12:42.59 ID:lervoDRk.net]
それ、ただのコメントでは?

422 名前:デフォルトの名無しさん [2017/07/05(水) 19:25:23.18 ID:aOT9LPA2.net]
>>421
コメント付けると補完が効くようになると聞きました

423 名前:デフォルトの名無しさん mailto:sage [2017/07/05(水) 19:46:41.16 ID:lervoDRk.net]
波括弧で括ってないからかな?



424 名前:デフォルトの名無しさん mailto:sage [2017/07/06(木) 14:10:14.25 ID:flMfxcNT.net]
うちはできてる

425 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 23:56:43.84 ID:zDi+fEh9.net]
外部サイトで申し訳ないのですが、GASについて下記のサイトのチュートリアルを試していたのですが
ttps://tonari-it.com/gas-web-appli-spreadsheet-append/
真似をしてみても、エラー出てしまいます。

getActiveSheet を呼び出す権限がありません(行 2、ファイル「test2」、プロジェクト「HTMLページ表示」)

自分のコードが間違えたのかと、コードをコピペしたり、スクリプト認証を再度許可を出すために
現在とは別にファイルを作り直したりしたのですが、同じエラーが出てしまいます。
このエラーを回避するにはどうすれば良いでしょうか?

426 名前:デフォルトの名無しさん mailto:sage [2017/07/13(木) 13:23:39.30 ID:G6DCMcFU.net]
よそから持ってきたライブラリを使ってないか

427 名前:422 mailto:sage [2017/07/13(木) 13:30:04.56 ID:7vUNc/rI.net]
すみません自己解決しました。
原因はスクリプトにプロジェクトのトリガーを設定していなかったことが原因だった様です。

公開済みのHTMLなのでアクセスすれば良いだけでなのに、なんでや!と思っていたのですが、
googleのwebアプリの場合、公開時にアサインされるHTMLへのリンクは、実はHTMLへのリンクではなく、
リンク > Ajax > .gs > html という流れらしく(たぶん)
3番目の.gsにトリガーが設定されてないとダメという感じの様です。なので.gsのトリガー設定した所動きました。

[設定したトリガー]
実行:doGet
イベント:スプレッドシートから・起動時に設定

このトリガー自体適当に設定したので、spreadsheetに紐付いた(コンテナバウンド)webアプリがこのトリガーで本当に良いのか?
.gsがスタンドアローンだったらどうするのか?などは自分の知識ではまだ不明です。
割と有名(みんなが引っかかる)ワナらしく、「GAS 実行する権限がありません」でググると色々出てきます。

428 名前:デフォルトの名無しさん mailto:sage [2017/07/13(木) 14:07:47.08 ID:G6DCMcFU.net]
そんなことはチュートリアルの一番最初に書いてある

429 名前:デフォルトの名無しさん [2017/09/26(火) 05:38:02.61 ID:uiCOOs0C.net]
ぐぐってきたけど、ここそんなに人気ないの?

430 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 15:54:12.38 ID:dGip1y4C.net]


431 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 19:33:58.52 ID:vmZLMK5C.net]
すみませんが質問させてください。

現在、google appsのみで簡易ウェブアプリの制作を試みています。

構成は
htmlservice+gas+spredseet(DB)
です。

各種申請をweb化するのですが、アクセスしたユーザーのgmailアドレスもDBに格納します。
session.getactiveuser().getemailを利用するため、スクリプトの実行者は「アプリケーションアクセスしているユーザー」にしています。
そうすると、spreadsheetも全員に公開する必要がありますが、spreadsheetの中身は個人情報を少し含むため見られたくありません。

なにかいい方法はありますでしょうか、、、fusiontablesなどであればできるのでしょうか?

432 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 19:49:32.88 ID:pQJJ1OIB.net]
ユーザーごとの情報はユーザープロパティに入れるべきでは?

433 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 13:03:25.12 ID:Is6BRq5M.net]
>>432
ご助言ありがとうございます。
propaties serviceについて調べた見ましたが、ユーザープロパティとして保存した場合、他のユーザーからは一切アクセスできないものと思いました。

一部のユーザー(システム管理を行う数名)に対しては、データの参照ができるようにしたいと思ったおります(申請されたデータを承認するようなワークフローアプリを検討しているため。後出して申し訳ありません)



434 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 14:45:10.73 ID:/heCrwKp.net]
サイズが十分小さければスクリプトプロパティかな。
たしか500KBくらいまで。

あるいは、スプレッドシートにスクリプトを付属させるんじゃなく、
独立プロジェクトにして、openByIdとかopenByUrlとかは?

435 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 15:36:25.01 ID:Is6BRq5M.net]
>>434
ご助言ありがとうございます。
プロパティについては、思いの外データの種類が増えそうなため難しそうです。

スクリプトをスタンドアロンにして、openbyidがいいですかね、万一idがバレてしまった時のことが不安ですが、そういったことは起こらないと思っていい感じでしょうか。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<287KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef