【MACRO】Google Apps Script 質問スレ【DRIVE】
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/ >>89
こちらはアクセス拒否にはならないようです。
ただ、大分使える関数が違うみたい。
この線で直してみます。
Thanks! spreadsheetからcontactのフリガナって弄れないんですかね? 使ってない
spreadsheet で間に合うので >>94
なるほど。。。どのくらいのデータ扱ってるんですか?
参考までに教えてください。 GoogleDRIVEでゴミ箱を削除してくださいとポップアップが出るようになったのですが
スマホからもpcからもゴミ箱が表示されません。
ゴミ箱はどこに表示されるのでしょうか。
よろしくお願いします。 >>100
そうですか。。。。
MS-Accessみたいなことできるお手軽DB実現したかったのにちょっと残念です。DBやるならGAEとかしかないのかな。。。 >>101
DBやるなら、AWSのRDSやらGoogle Cloud SQL、レンタルサーバのDBサーバ
など有償のものを使うしか手立てはないですよ。ローカルのサーバをDDNSで
外からアクセス出来るようにして、GAからアクセスさせるってのも手ではありま
すがね。 spreadsheetで間に合わないなら
GAEのDBを使うのが一番安上がり 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/ >>104
spreadsheetにsql発行することってできない? ライブラリ作って公開したけど
product ID が判り難いというか
import (resource) 管理が面倒臭い感じがする Application Launcher for Drive (by Google)
この拡張機能が勝手にインストールされたぞ。
Web上のGoogle Driveからファイルをローカルアプリケーションで直接開けるらしいが、
何も機能しないし、そもそも右クリックメニューの中にローカルアプリは何も表示されない。
全く意味ねー 書いたプログラムを Google Drive で同期したフォルダから
ローカルPCで開いてもプログラムがバックアップ出来てる訳じゃないんだね Google Apps Script で出力した HTML の中で
AngularJS 使おうとしたら
1.3 全く動作しない
1.2 一部動くがほとんどはまともに動作しない
使えねー >>117
俺はjQueryを使ってるが、使えるコードと使えないコードがあるので、それを
うまく回避しながらやるのが腕の見せどころですよ。 CryptoJS も一部動作しない
AES 使えねー プンプン >>118
そういうのが楽しいと思っていた時期が私にもありました Vue.js 試してみたけどだめ
TypeError: Cannot define property:$set, object is not extensible.
TypeError: undefined is not a function
使えねー (GASが) >>117
AppsScriptはcaja経由でHTML出力されるので
elementのidが全部置き換えられて死ぬみたい
>>119
CryptoJSは使えてるよ ちなみに、俺は結構やりこんでるが、入力補完やワークフローみたいな
ものも作ってるよ。
<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
});
});
// ]]></script>
これはテキストボックスに入力補完をスプレッドシートから持ってくる奴だが、
こういうのだったら動く。 >>126
function doGet() {
return HtmlService.createHtmlOutputFromFile('htmledit')
.setSandboxMode(HtmlService.SandboxMode.EMULATED);
}
とか、
function doGet() {
return HtmlService.createHtmlOutputFromFile('htmledit')
.setSandboxMode(HtmlService.SandboxMode.NATIVE);
}
とか 以前は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
図は逆だよね >>128
まぁ、だからといって、どちらも制限があるのには違いないけれどね。
あくまでも、ドノーマルで実行するよりかは制限が緩いので、使えるかも
って感じ。
なるべくシンプルに構築するのがHTML Servicesの基本だね。でなけれ
ば、UiApp Servicesを使えって話になってくると思う。 spreadsheet を DB 代わりに使ってみたけど
排他処理もロックも何もしないと
データめちゃくちゃになるなω ロックかからんし
ScriptProperties が deprecated になってるし
なんなのこれ
無理して使うもんじゃないな lock中の処理で
SpreadsheetApp.flush();
入れたら解決した
なんか応答も速くなった希ガス (前文略)
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 publish した直後は反応が遅かったりアクセスエラーになるなぁ
数分待ってからアクセスるると比較的速いしエラーも減る
(それでも我慢できる速さってレベル)
GAS を保存するサーバーと公開されるサーバーが違ってたり
同期取ってたりしてる感じだな・・・ >>139
そもそも、JST指定する方法が旧式で、おかしかったわけで。今回から
正しい取得方法に修正されたってだけの話。仕様変更が勝手に発生するのは
いつもの事だが、それについては指摘はオカシイ。
>>140
非推奨になってたって 随分前から非推奨になってるんだが・・・・
移行期間中だぞ。今は。インテリセンスの候補でも二重線引っ張ってあった
だろうが。今更何を。 >>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/ >>144
まぁ、例え効率の良い書き方をしたとしても、それでも全然ローカル
でやるのに比べたら、比べるまでもなく遅いけれどね。 プログラムは全くの素人なのですが、フォームに入力された内容をメールで送るスクリプトをネットからコピペしました。最初は上手くおくれたのですが、途中から
http://i.imgur.com/8hI4jzt.jpg
のようなエラーが出てメール送れなくなりました。解決策がわかりません。ご存知な方、教えて頂けますか? Cacheが最大250文字のキーで各キー毎に100KBで最大6時間保持可能というところまでは読めたのですが
KeyValueのペアは最大何個まで作れるのでしょうか?
https://developers.google.com/apps-script/reference/cache/ MailAppとGmailAppはどういうときに使い分けますか 新しい Google スプレッドシート
[ツール] メニュー > [スクリプト マネージャ]
スクリプト マネージャが無いんですけど、どこへ行ったの? Internal Server Error
Error 500
わろた
あかんやろこれ 状況が変わった
ログイン出来るようになったけど
ルートの画面で
Google Drive was unable to load your items. Please refresh to try again. (Dismiss)
って出て何も操作出来ない
どうみても輻輳です本当にありがとうございました >>156
アクティビティーのnextTokenは送ってるが、画像にもnextToken送れるんか・・? トリガーをいくつか設定してみたけど
違うプロジェクトに同じ名前の関数があるとき
トリガーの一覧には関数名しか出て来ないので
どのプロジェクトの関数が呼ばれるのかあとで判らなくなるな myFunction とか doGet とか言う名前のトリガーがいっぱいなんですね判ります うちはtestDoGet()って名前のトリガーが多いな いまどき2ちゃんにアフィ貼っても件数稼げないのにようやるわ Google Drive のゴミ箱に溜まってたファイルを
永久に削除
を選んで消したのに残り容量が増えないぬ
先週くらいまではゴミ箱空にしたら容量増えたのに >>169
恐らくだが
どのフォルダにも属していない、検索の時だけ出てくるファイルがあるよ。消したつもりになってるだけでね。 trash からも delete forever で確実に削除してたのに
さっきログインしたら trash にあった
改めて消したら容量増えた
ありがとう
Google Drive ってたまにバグるみたいだぬ 勝手にアップデートされて以来
GoogleDriveは執事として無能な
時間泥棒に成り下がってしまった Siteで新規ページ作成で自動生成されるurl文字列をscriptで再現する方法はないでしょうか?
たとえば「試験-しけん-シケン」と入力すると自動では「shi-yan-shiken-shiken」というURLになるけど
このルールでスクリプトから新規ページ作成を行いたいと思っているのですが GASで任意のURLを開くことはできますか?
スプレッドシート上でも別タブでもどちらでも構いません。 >>176
自動的に開くのは無理
ダイアログ出してクリックさせて開くのはhtmlserviceで実現できる。 やはりリンク作ったりするのが精一杯なんですね。
わかりました。 HtmlService.createHtmlOutputにiframeタグを書いても
インラインフレームの中に何も表示されないのは仕様ですか? >>179
GAS上ではiframeタグは使用禁止ですよ。
sandboxmode.iframeは使えますがね .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() Googleドライブ上にある複数のxlsを読み込んで、指定した文字を検索するhtmlをドライブ上で共有したいのですが
この場合どうすればいいのでしょうか?script.google.comとかサッパリでした
ある程度の英語とjavascriptは出来るので「ココ嫁」みたいなリファレンス貼ってくれるだけでも助かります >>182
HTML ServiceとDriveApp
そして、siteにそのウェブアプリケーションを配置。
これで出来る。 >>182
あと、手前味噌で申し訳ないが、色々作ってる
http://eye4brain.sakura .ne.jp/ >>183>>184
ありがとうございます、スクリプト参考にしてみます >>186
xlsxの全文検索をしてみましたが、出来ました。
fullText containsオプションを使えば可能です。
ただし、たけのこという文字がセルに入ってる場合、「たけのこ」ではヒットしますが、「たけ」ではヒットしません。そういう仕様だそうです。以下に完成品をまとめておきましたので、参考にしてみてください。
http://goo. gl/coMk0P 度々すみません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やったら検索は出来ました >>188
スクリプトはライブラリ化すれば使い回しが出来ます。
http://goo. gl/ExZZSb