X



【MACRO】Google Apps Script 質問スレ【DRIVE】
0001デフォルトの名無しさん
垢版 |
2014/06/29(日) 11:07:03.38ID:5HmND7Qc
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/
0090デフォルトの名無しさん
垢版 |
2014/10/07(火) 11:53:15.17ID:dYvjtFhe
>>89
こちらはアクセス拒否にはならないようです。
ただ、大分使える関数が違うみたい。
この線で直してみます。

Thanks!
0092デフォルトの名無しさん
垢版 |
2014/11/02(日) 13:00:03.63ID:CjBmvnJw
いける
0097デフォルトの名無しさん
垢版 |
2014/11/03(月) 19:27:50.34ID:p3gGK/5S
GoogleDRIVEでゴミ箱を削除してくださいとポップアップが出るようになったのですが
スマホからもpcからもゴミ箱が表示されません。
ゴミ箱はどこに表示されるのでしょうか。
よろしくお願いします。
0100デフォルトの名無しさん
垢版 |
2014/11/07(金) 17:42:40.98ID:qD5n5Xcy
>>93
もうそれ、サービス終わってるよ
0101デフォルトの名無しさん
垢版 |
2014/11/08(土) 11:59:45.01ID:UfYKgu7A
>>100
そうですか。。。。
MS-Accessみたいなことできるお手軽DB実現したかったのにちょっと残念です。DBやるならGAEとかしかないのかな。。。
0103デフォルトの名無しさん
垢版 |
2014/11/10(月) 08:44:52.32ID:9rz69vME
>>101
DBやるなら、AWSのRDSやらGoogle Cloud SQL、レンタルサーバのDBサーバ
など有償のものを使うしか手立てはないですよ。ローカルのサーバをDDNSで
外からアクセス出来るようにして、GAからアクセスさせるってのも手ではありま
すがね。
0105デフォルトの名無しさん
垢版 |
2014/11/10(月) 15:50:15.20ID:N/uHWaPu
2014-10-06 Angularが嫌い
http://mizchi.hatenablog.com/entry/2014/10/06/162103

AngularJSは覚えることが多過ぎてあきらめた。mustucheテンプレートはイケテル。
=>
vue.jsおし。
MEANはnpmエコシステム体験ツアーに便利。(そのまま実用に突き進むのはゴールデンハンマーの罠)



Vue.jsか日本語書籍をはじめノウハウの多いbackbone.jsがおすすめ。
Angular.jsは不自然なところが多い。JQueryのように自然に使えない。数年後にはEJB2のように滅んでいる感じ。



Angularそっちのけで、Vue.jsについて所感 2014-02-14
http://havelog.ayumusato.com/develop/javascript/e587-vuejs_impressions.html
2014-06-26 5分でわかるVue.jsと、jQueryで頑張ってはいけない理由
http://www.infiniteloop.co.jp/blog/2014/06/5min_vuejs/
Vue.js概要? 2014/04/25 - 2014/11/09
http://qiita.com/asip2k25/items/bd4bdccd5201d542953c
Vue.js v0.11の変更点(予定)まとめ Oct 7th, 2014
http://blog.koba04.com/post/2014/10/07/vue-js-v011-changes/
Vue.js
http://vuejs.org/

どこでも活躍できるテンプレートエンジン「Mustache」
http://blog.mach3.jp/2010/10/05/mustache-template-engine.html
2012-12-09 テンプレートエンジンmustacheを使ってみる
http://d.hatena.ne.jp/Kazuhira/20121209/1355042467
mustache
http://mustache.github.io/
0107デフォルトの名無しさん
垢版 |
2014/11/10(月) 16:49:41.10ID:N/uHWaPu
AngularJS入門の巻き
http://www.slideshare.net/itokami1123/angularjs-34533999
AngularJS入門の巻き2
http://www.slideshare.net/itokami1123/angularjs-beginner-20140629

AngularJS入門
http://dev.classmethod.jp/series/angularjs%E5%85%A5%E9%96%80/

AngularJS
http://js.studio-kingdom.com/angularjs
AngularJSの起動
http://js.studio-kingdom.com/angularjs/guide/bootstrap

AngularJS 入門 Qiita
http://qiita.com/lga0503/items/d8efddcad2574e1938f1
AngularJS の $locationProvider.html5Mode について Qiita
http://qiita.com/shogogg/items/542bd6d18f777bcc24bc

AngularJS's tutorial あなたとともにAngularJS (CoffeeScript)
http://lab.hisasann.com/AngularJSTutorial/
0111デフォルトの名無しさん
垢版 |
2014/11/19(水) 16:17:29.20ID:JZ2oYyd9
ライブラリ作って公開したけど
product ID が判り難いというか
import (resource) 管理が面倒臭い感じがする
0112デフォルトの名無しさん
垢版 |
2014/11/24(月) 10:56:25.69ID:LXRxquBl
Application Launcher for Drive (by Google)
この拡張機能が勝手にインストールされたぞ。

Web上のGoogle Driveからファイルをローカルアプリケーションで直接開けるらしいが、
何も機能しないし、そもそも右クリックメニューの中にローカルアプリは何も表示されない。

全く意味ねー
0113デフォルトの名無しさん
垢版 |
2014/11/24(月) 11:05:35.34ID:LXRxquBl
うゎ誤爆
0114デフォルトの名無しさん
垢版 |
2014/11/24(月) 11:07:33.14ID:I/tlYyaD
うゎ誤爆
0116デフォルトの名無しさん
垢版 |
2014/11/24(月) 12:38:47.81ID:JyotAVq+
書いたプログラムを Google Drive で同期したフォルダから
ローカルPCで開いてもプログラムがバックアップ出来てる訳じゃないんだね
0117デフォルトの名無しさん
垢版 |
2014/11/27(木) 09:13:58.26ID:oxY/sHU5
Google Apps Script で出力した HTML の中で
AngularJS 使おうとしたら
1.3 全く動作しない
1.2 一部動くがほとんどはまともに動作しない
使えねー
0118デフォルトの名無しさん
垢版 |
2014/11/27(木) 09:21:12.55ID:tn51YXgS
>>117
俺はjQueryを使ってるが、使えるコードと使えないコードがあるので、それを
うまく回避しながらやるのが腕の見せどころですよ。
0122デフォルトの名無しさん
垢版 |
2014/11/27(木) 20:46:04.08ID:LqnFWsaO
Vue.js 試してみたけどだめ

TypeError: Cannot define property:$set, object is not extensible.
TypeError: undefined is not a function

使えねー (GASが)
0125デフォルトの名無しさん
垢版 |
2014/11/28(金) 10:58:23.40ID:HA42UZYd
ちなみに、俺は結構やりこんでるが、入力補完やワークフローみたいな
ものも作ってるよ。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/themes/smoothness/jquery-ui.css" />
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>

<p><input type="text" id="hogehoge" /><br />

<script type="text/javascript">// <![CDATA[
$(function() {
var hogehogeTags = [
"あいうえお",
"かきくけこ",
"さしすせそ",
"たちつてと",

・・・・・ 中略 ・・・・・

"漢字1",
"漢字2",
"漢字3"
];
$( "#hogehoge" ).autocomplete({
source: hogehogeTags
});
});
// ]]&gt;</script>

これはテキストボックスに入力補完をスプレッドシートから持ってくる奴だが、
こういうのだったら動く。
0127デフォルトの名無しさん
垢版 |
2014/11/28(金) 11:52:19.42ID:LBNEaAKa
>>126
function doGet() {
return HtmlService.createHtmlOutputFromFile('htmledit')
.setSandboxMode(HtmlService.SandboxMode.EMULATED);
}

とか、

function doGet() {
return HtmlService.createHtmlOutputFromFile('htmledit')
.setSandboxMode(HtmlService.SandboxMode.NATIVE);
}

とか
0128デフォルトの名無しさん
垢版 |
2014/11/28(金) 12:01:22.01ID:dYLaj0CI
以前はEMULATEDがデフォだったが
最近はNATIVEがデフォに切り替わった
というところまでは読んだ

このページ見るとNATIVEが書き換えないみたいなんだけど

https://developers.google.com/apps-script/guides/html/restrictions
Rewritten code

In the EMULATED sandbox mode, Caja inspects and substantially rewrites all HTML
and JavaScript before the page loads.
This results in a substantial slowdown in loading times relative to the newer NATIVE mode.
Because code is rewritten, it also becomes difficult to debug.

In NATIVE mode, although comments are still stripped from client-side code,
the code is only rewritten if it contains variables or named functions at the top level,
or if it uses the typeof operator to refer to a variable directly.
The examples below show how to avoid code rewrites in NATIVE mode.

✘Don't — code will be rewritten ✓Do — code will not be rewritten in NATIVE mode
図は逆だよね
0129デフォルトの名無しさん
垢版 |
2014/11/28(金) 12:06:18.29ID:LBNEaAKa
>>128
まぁ、だからといって、どちらも制限があるのには違いないけれどね。
あくまでも、ドノーマルで実行するよりかは制限が緩いので、使えるかも
って感じ。

なるべくシンプルに構築するのがHTML Servicesの基本だね。でなけれ
ば、UiApp Servicesを使えって話になってくると思う。
0133デフォルトの名無しさん
垢版 |
2014/11/30(日) 13:51:09.63ID:Q44JDfrW
遅すぎて使い物にならんね
0134デフォルトの名無しさん
垢版 |
2014/11/30(日) 17:10:58.86ID:Q44JDfrW
spreadsheet を DB 代わりに使ってみたけど
排他処理もロックも何もしないと
データめちゃくちゃになるなω
0135デフォルトの名無しさん
垢版 |
2014/11/30(日) 17:14:32.64ID:Q44JDfrW
ということでメモ
https://developers.google.com/apps-script/reference/lock/lock
https://mashe.hawksey.info/2014/07/google-sheets-as-a-database-insert-with-apps-script-using-postget-methods-with-ajax-example/
http://stackoverflow.com/questions/12808674/locking-script-when-accessing-spreadsheet-doesnot-work
http://stackoverflow.com/questions/16075446/how-to-protect-the-google-app-script-code-in-google-spreadsheet
http://ramblings.mcpher.com/Home/excelquirks/dbabstraction
0136デフォルトの名無しさん
垢版 |
2014/12/01(月) 06:51:47.55ID:GLoHGVkg
ロックかからんし
ScriptProperties が deprecated になってるし
なんなのこれ
無理して使うもんじゃないな
0137デフォルトの名無しさん
垢版 |
2014/12/01(月) 07:08:43.79ID:GLoHGVkg
lock中の処理で
SpreadsheetApp.flush();
入れたら解決した
なんか応答も速くなった希ガス
0138デフォルトの名無しさん
垢版 |
2014/12/01(月) 09:25:06.84ID:guOSxUv1
馬鹿には無理
0139デフォルトの名無しさん
垢版 |
2014/12/01(月) 10:12:28.09ID:ikZ1X/ON
(前文略)
1. 突然変わる仕様

今回のAdvent Calendar中にも大きな仕様変更があり、おもいっきり影響をウケました。
GAS以外のGoogle系サービスは裏側の仕様が変わるので変わることを意識しておかないと精神的に病んでしまいます。

例えば今回大きかったのは
今まで.gs

var dateString = Utilities.formatDate(new Date() , 'JST' , 'yyyy/MM/dd HH:mm:ss');
Logger.log(dateString);

という風に書くと「日本時間(JST GMT+9)の日付文字列」が取得できました
しかし仕様が変わりこのJST指定をしてもGMT+9の値が取得できなくなりました。
これから.gs

var dateString = Utilities.formatDate(new Date() , 'Asia/Tokyo' , 'yyyy/MM/dd HH:mm:ss');
Logger.log(dateString);

と書く必要があります。

これ以外にもちょこちょこと仕様変更があり、コードを直す必要があったりします。
どうすればいいの?

http://qiita.com/soundTricker/items/21d3a39222fb1edbce57
0141デフォルトの名無しさん
垢版 |
2014/12/01(月) 12:23:57.99ID:GrWyVyTu
publish した直後は反応が遅かったりアクセスエラーになるなぁ
数分待ってからアクセスるると比較的速いしエラーも減る
(それでも我慢できる速さってレベル)

GAS を保存するサーバーと公開されるサーバーが違ってたり
同期取ってたりしてる感じだな・・・
0142デフォルトの名無しさん
垢版 |
2014/12/02(火) 08:18:47.93ID:m/U+kAA0
>>139
そもそも、JST指定する方法が旧式で、おかしかったわけで。今回から
正しい取得方法に修正されたってだけの話。仕様変更が勝手に発生するのは
いつもの事だが、それについては指摘はオカシイ。

>>140
非推奨になってたって 随分前から非推奨になってるんだが・・・・
移行期間中だぞ。今は。インテリセンスの候補でも二重線引っ張ってあった
だろうが。今更何を。
0143デフォルトの名無しさん
垢版 |
2014/12/05(金) 08:40:33.92ID:uibbdYqE
>>133
遅くなる理由
https://developers.google.com/apps-script/guide_libraries
Warning: A script that uses a library will not run as quickly as it would
if all the code were contained within a single script project.
Although libraries can make development and maintenance more convenient,
you should avoid them in projects where speed is critical.
Because of this issue, libraries should not be used in add-ons.

https://developers.google.com/apps-script/best_practices#avoidLibraries
https://developers.google.com/apps-script/add-ons/
0146デフォルトの名無しさん
垢版 |
2014/12/05(金) 12:48:37.41ID:3N+Ki0BW
>>144
まぁ、例え効率の良い書き方をしたとしても、それでも全然ローカル
でやるのに比べたら、比べるまでもなく遅いけれどね。
0147デフォルトの名無しさん
垢版 |
2014/12/05(金) 17:28:33.29ID:X46M6Pii
プログラムは全くの素人なのですが、フォームに入力された内容をメールで送るスクリプトをネットからコピペしました。最初は上手くおくれたのですが、途中から
http://i.imgur.com/8hI4jzt.jpg
のようなエラーが出てメール送れなくなりました。解決策がわかりません。ご存知な方、教えて頂けますか?
0150デフォルトの名無しさん
垢版 |
2014/12/07(日) 18:52:37.92ID:uc0Y93wp
新しい Google スプレッドシート
[ツール] メニュー > [スクリプト マネージャ]

スクリプト マネージャが無いんですけど、どこへ行ったの?
0154デフォルトの名無しさん
垢版 |
2014/12/10(水) 13:50:01.10ID:evPa2cl4
状況が変わった

ログイン出来るようになったけど
ルートの画面で

Google Drive was unable to load your items. Please refresh to try again. (Dismiss)

って出て何も操作出来ない

どうみても輻輳です本当にありがとうございました
0155デフォルトの名無しさん
垢版 |
2014/12/12(金) 20:12:42.74ID:ZKEOL7uD
google plus apiもここで良いのかな?
こういう大量に画像があるページから画像をぶっこ抜こうと思ってjson取得したんだけどな、15枚しか画像リンクを教えてくれないんだわ
https://plus.google.com/109057690948151627836/posts/6Q6cv5KNYef#109057690948151627836/posts/6Q6cv5KNYef

これがjsonの抜粋
http://xxxxxxxxxxxx.net/_/86/20141212201047-0.txt

やり方分かる人いる?
0157デフォルトの名無しさん
垢版 |
2014/12/13(土) 10:37:05.12ID:LHF4FOqU
>>156
アクティビティーのnextTokenは送ってるが、画像にもnextToken送れるんか・・?
0158デフォルトの名無しさん
垢版 |
2014/12/16(火) 13:32:07.41ID:PuXxa6T9
尾骶骨
0159155
垢版 |
2014/12/20(土) 15:58:34.92ID:2lHjoIS9
自己解決した。スレ汚しスマソ
0160デフォルトの名無しさん
垢版 |
2014/12/21(日) 17:54:05.71ID:gQMH/TzB
トリガーをいくつか設定してみたけど
違うプロジェクトに同じ名前の関数があるとき
トリガーの一覧には関数名しか出て来ないので
どのプロジェクトの関数が呼ばれるのかあとで判らなくなるな
0169デフォルトの名無しさん
垢版 |
2015/01/12(月) 13:52:24.61ID:MUt+Twlt
Google Drive のゴミ箱に溜まってたファイルを
永久に削除
を選んで消したのに残り容量が増えないぬ
先週くらいまではゴミ箱空にしたら容量増えたのに
0170デフォルトの名無しさん
垢版 |
2015/01/14(水) 10:13:25.29ID:pWmctPUO
>>169
恐らくだが
どのフォルダにも属していない、検索の時だけ出てくるファイルがあるよ。消したつもりになってるだけでね。
0171デフォルトの名無しさん
垢版 |
2015/01/14(水) 13:03:30.08ID:EnBoJmyV
trash からも delete forever で確実に削除してたのに
さっきログインしたら trash にあった
改めて消したら容量増えた
ありがとう

Google Drive ってたまにバグるみたいだぬ
0172デフォルトの名無しさん
垢版 |
2015/01/20(火) 07:56:06.92ID:F6HHv4j5
勝手にアップデートされて以来
GoogleDriveは執事として無能な
時間泥棒に成り下がってしまった
0174デフォルトの名無しさん
垢版 |
2015/03/14(土) 19:02:02.06ID:EXR76peq
Siteで新規ページ作成で自動生成されるurl文字列をscriptで再現する方法はないでしょうか?

たとえば「試験-しけん-シケン」と入力すると自動では「shi-yan-shiken-shiken」というURLになるけど
このルールでスクリプトから新規ページ作成を行いたいと思っているのですが
0175デフォルトの名無しさん
垢版 |
2015/03/16(月) 02:46:33.19ID:1GyT2oWU
同じ名前でもう一つ作ってみ?
0176デフォルトの名無しさん
垢版 |
2015/03/18(水) 22:55:28.68ID:fCXDEV+f
GASで任意のURLを開くことはできますか?
スプレッドシート上でも別タブでもどちらでも構いません。
0178176
垢版 |
2015/03/20(金) 15:56:58.40ID:+pnIcR/c
やはりリンク作ったりするのが精一杯なんですね。
わかりました。
0179176
垢版 |
2015/03/20(金) 17:37:45.26ID:+pnIcR/c
HtmlService.createHtmlOutputにiframeタグを書いても
インラインフレームの中に何も表示されないのは仕様ですか?
0181176
垢版 |
2015/03/22(日) 21:40:15.35ID:Exm92v9O
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
を付けてみてもダメでした。
もちろんNATIVEもダメでしたし、本当にあきらめるしかなさそうですね。

ちなみに表示させようとしていたページのURLは以下です。
http://www.google.com/search?btnI=I%27m+Feeling+Lucky&;lr=lang_ja&ie=UTF-8&oe=UTF-8&q="+ss.getActiveCell().getValue()
0182デフォルトの名無しさん
垢版 |
2015/03/26(木) 11:07:18.75ID:r/Xr85WG
Googleドライブ上にある複数のxlsを読み込んで、指定した文字を検索するhtmlをドライブ上で共有したいのですが
この場合どうすればいいのでしょうか?script.google.comとかサッパリでした
ある程度の英語とjavascriptは出来るので「ココ嫁」みたいなリファレンス貼ってくれるだけでも助かります
0187デフォルトの名無しさん
垢版 |
2015/03/26(木) 20:07:09.55ID:xZ2N6kXB
>>186
xlsxの全文検索をしてみましたが、出来ました。
fullText containsオプションを使えば可能です。

ただし、たけのこという文字がセルに入ってる場合、「たけのこ」ではヒットしますが、「たけ」ではヒットしません。そういう仕様だそうです。以下に完成品をまとめておきましたので、参考にしてみてください。
http://goo. gl/coMk0P
0188182
垢版 |
2015/03/27(金) 00:58:25.79ID:DYcS+Siy
度々すみませんGoogleドライブに
・1.xls〜100.xls
・Data_list.xls
とテキストシートがあって、1-100.xls上で行or選択範囲を指定して、その範囲内のテキストを使ってData_listで検索をし、結果を返すというモノを作りたいのですが

@-1〜100まで全部一々スクリプトエディタで作成しなければならないんでしょうか?使いまわしできます?
A-図形描写+スクリプト割り当てでイベントハンドラ作成する方法以外にシートから関数呼び出す方法はないんでしょうか?
B-図形描写+スクリプト割り当てを1〜100まで毎回作成するの大変なんで使いまわしとかできないんでしょうか?
C-関数の引数に行や選択範囲を指定できますか?

本当に初歩的な質問ばかりですみません
openByUrl(Data_list)で読み込んでforで全部回す方法でmatchやったら検索は出来ました
0189デフォルトの名無しさん
垢版 |
2015/03/27(金) 08:27:15.70ID:XOU4xnaE
>>188
スクリプトはライブラリ化すれば使い回しが出来ます。
http://goo. gl/ExZZSb
レスを投稿する


ニューススポーツなんでも実況