【MACRO】Google Apps Script 質問スレ【DRIVE】at TECH
【MACRO】Google Apps Script 質問スレ【DRIVE】 - 暇つぶし2ch95:デフォルトの名無しさん
14/11/02 16:39:28.49 nVDzouXs.net
使ってない
spreadsheet で間に合うので

96:デフォルトの名無しさん
14/11/02 17:24:39.28 /dK2F75C.net
>>93
どうやるんですか??
>>93

97:デフォルトの名無しさん
14/11/03 12:30:15.90 lU3ZnnO9.net
>>95
なるほど。。。どのくらいのデータ扱ってるんですか?
参考までに教えてください。

98:デフォルトの名無しさん
14/11/03 19:27:50.34 p3gGK/5S.net
GoogleDRIVEでゴミ箱を削除してくださいとポップアップが出るようになったのですが
スマホからもpcからもゴミ箱が表示されません。
ゴミ箱はどこに表示されるのでしょうか。
よろしくお願いします。

99:デフォルトの名無しさん
14/11/03 19:47:07.46 p3gGK/5S.net
解決しました

100:デフォルトの名無しさん
14/11/07 00:08:03.23 MQmGrs9M.net
GAEから使えるのがありがたい

101:デフォルトの名無しさん
14/11/07 17:42:40.98 qD5n5Xcy.net
>>94
もうそれ、サービス終わってるよ

102:デフォルトの名無しさん
14/11/08 11:59:45.01 UfYKgu7A.net
>>101
そうですか。。。。
MS-Accessみたいなことできるお手軽DB実現したかったのにちょっと残念です。DBやるならGAEとかしかないのかな。。。

103:デフォルトの名無しさん
14/11/08 16:15:22.81 qwvGzBPO.net
えっ

104:デフォルトの名無しさん
14/11/10 08:44:52.32 9rz69vME.net
>>102
DBやるなら、AWSのRDSやらGoogle Cloud SQL、レンタルサーバのDBサーバ
など有償のものを使うしか手立てはないですよ。ローカルのサーバをDDNSで
外からアクセス出来るようにして、GAからアクセスさせるってのも手ではありま
すがね。

105:デフォルトの名無しさん
14/11/10 11:43:50.35 GGFW6CYo.net
spreadsheetで間に合わないなら
GAEのDBを使うのが一番安上がり

106:デフォルトの名無しさん
14/11/10 15:50:15.20 N/uHWaPu.net
2014-10-06 Angularが嫌い
URLリンク(mizchi.hatenablog.com)

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



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



Angularそっちのけで、Vue.jsについて所感 2014-02-14
URLリンク(havelog.ayumusato.com)
2014-06-26 5分でわかるVue.jsと、jQueryで頑張ってはいけない理由
URLリンク(www.infiniteloop.co.jp)
Vue.js概要? 2014/04/25 - 2014/11/09
URLリンク(qiita.com)
Vue.js v0.11の変更点(予定)まとめ Oct 7th, 2014
URLリンク(blog.koba04.com)
Vue.js
URLリンク(vuejs.org)

どこでも活躍できるテンプレートエンジン「Mustache」
URLリンク(blog.mach3.jp)
2012-12-09 テンプレートエンジンmustacheを使ってみる
URLリンク(d.hatena.ne.jp)
mustache
URLリンク(mustache.github.io)

107:デフォルトの名無しさん
14/11/10 15:52:03.91 N/uHWaPu.net
2014-02-13 軽量でパワフルなデータバインディングMVVM, vue.jsで遊んでみた
URLリンク(mizchi.hatenablog.com)

108:デフォルトの名無しさん
14/11/10 16:49:41.10 N/uHWaPu.net
AngularJS入門の巻き
URLリンク(www.slideshare.net)
AngularJS入門の巻き2
URLリンク(www.slideshare.net)

AngularJS入門
URLリンク(dev.classmethod.jp)

AngularJS
URLリンク(js.studio-kingdom.com)
AngularJSの起動
URLリンク(js.studio-kingdom.com)

AngularJS 入門 Qiita
URLリンク(qiita.com)
AngularJS の $locationProvider.html5Mode について Qiita
URLリンク(qiita.com)

AngularJS's tutorial あなたとともにAngularJS (CoffeeScript)
URLリンク(lab.hisasann.com)

109:デフォルトの名無しさん
14/11/10 19:08:51.61 aSJ0dFtw.net
HTMLコンパイラ
URLリンク(js.studio-kingdom.com)

110:デフォルトの名無しさん
14/11/10 19:40:20.32 3cY12FBq.net
>>105
spreadsheetにsql発行することってできない?

111:デフォルトの名無しさん
14/11/11 08:57:46.26 GakEMCkA.net
>>110
QUERY関数

112:デフォルトの名無しさん
14/11/19 16:17:29.20 JZ2oYyd9.net
ライブラリ作って公開したけど
product ID が判り難いというか
import (resource) 管理が面倒臭い感じがする

113:デフォルトの名無しさん
14/11/24 10:56:25.69 LXRxquBl.net
Application Launcher for Drive (by Google)
この拡張機能が勝手にインストールされたぞ。

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

全く意味ねー

114:デフォルトの名無しさん
14/11/24 11:05:35.34 LXRxquBl.net
うゎ誤爆

115:デフォルトの名無しさん
14/11/24 11:07:33.14 I/tlYyaD.net
うゎ誤爆

116:デフォルトの名無しさん
14/11/24 11:16:24.85 JmS/vGuj.net
>>113-115

117:デフォルトの名無しさん
14/11/24 12:38:47.81 JyotAVq+.net
書いたプログラムを Google Drive で同期したフォルダから
ローカルPCで開いてもプログラムがバックアップ出来てる訳じゃないんだね

118:デフォルトの名無しさん
14/11/27 09:13:58.26 oxY/sHU5.net
Google Apps Script で出力した HTML の中で
AngularJS 使おうとしたら
1.3 全く動作しない
1.2 一部動くがほとんどはまともに動作しない
使えねー

119:デフォルトの名無しさん
14/11/27 09:21:12.55 tn51YXgS.net
>>118
俺はjQueryを使ってるが、使えるコードと使えないコードがあるので、それを
うまく回避しながらやるのが腕の見せどころですよ。

120:デフォルトの名無しさん
14/11/27 09:31:50.08 oxY/sHU5.net
CryptoJS も一部動作しない
AES 使えねー プンプン

121:デフォルトの名無しさん
14/11/27 12:53:30.42 vSILU7Ix.net
>>119
そういうのが楽しいと思っていた時期が私にもありました

122:デフォルトの名無しさん
14/11/27 13:00:02.51 vSILU7Ix.net
>>118
vue.js使え

123:デフォルトの名無しさん
14/11/27 20:46:04.08 LqnFWsaO.net
Vue.js 試してみたけどだめ

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

使えねー (GASが)

124:デフォルトの名無しさん
14/11/28 10:46:46.51 2Y9sS9bf.net
>>118
AppsScriptはcaja経由でHTML出力されるので
elementのidが全部置き換えられて死ぬみたい

>>120
CryptoJSは使えてるよ

125:デフォルトの名無しさん
14/11/28 10:51:53.89 2Y9sS9bf.net
>>123
たぶん原因は>>124と同じだと思う

126:デフォルトの名無しさん
14/11/28 10:58:23.40 HA42UZYd.net
ちなみに、俺は結構やりこんでるが、入力補完やワークフローみたいな
ものも作ってるよ。

<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>

これはテキストボックスに入力補完をスプレッドシートから持ってくる奴だが、
こういうのだったら動く。

127:デフォルトの名無しさん
14/11/28 11:22:06.13 BXi6AyWe.net
Caja の書き換え抑制ってどうやるんだっけ?

128:デフォルトの名無しさん
14/11/28 11:52:19.42 LBNEaAKa.net
>>127
function doGet() {
return HtmlService.createHtmlOutputFromFile('htmledit')
.setSandboxMode(HtmlService.SandboxMode.EMULATED);
}

とか、

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

とか

129:デフォルトの名無しさん
14/11/28 12:01:22.01 dYLaj0CI.net
以前はEMULATEDがデフォだったが
最近はNATIVEがデフォに切り替わった
というところまでは読んだ

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

URLリンク(developers.google.com)
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
図は逆だよね

130:デフォルトの名無しさん
14/11/28 12:06:18.29 LBNEaAKa.net
>>129
まぁ、だからといって、どちらも制限があるのには違いないけれどね。
あくまでも、ドノーマルで実行するよりかは制限が緩いので、使えるかも
って感じ。

なるべくシンプルに構築するのがHTML Servicesの基本だね。でなけれ
ば、UiApp Servicesを使えって話になってくると思う。

131:デフォルトの名無しさん
14/11/28 12:53:38.59 dYLaj0CI.net
中の人の意見
URLリンク(stackoverflow.com)

132:デフォルトの名無しさん
14/11/28 12:58:24.68 dYLaj0CI.net
memo
URLリンク(googlestyle.client.jp)
URLリンク(developers.google.com)

133:デフォルトの名無しさん
14/11/28 18:13:04.21 QRvl6r74.net
GoogleDrive を web server にしたった

URLリンク(melpon.org)

134:デフォルトの名無しさん
14/11/30 13:51:09.63 Q44JDfrW.net
遅すぎて使い物にならんね

135:デフォルトの名無しさん
14/11/30 17:10:58.86 Q44JDfrW.net
spreadsheet を DB 代わりに使ってみたけど
排他処理もロックも何もしないと
データめちゃくちゃになるなω

136:デフォルトの名無しさん
14/11/30 17:14:32.64 Q44JDfrW.net
ということでメモ
URLリンク(developers.google.com)
URLリンク(mashe.hawksey.info)
URLリンク(stackoverflow.com)
URLリンク(stackoverflow.com)
URLリンク(ramblings.mcpher.com)

137:デフォルトの名無しさん
14/12/01 06:51:47.55 GLoHGVkg.net
ロックかからんし
ScriptProperties が deprecated になってるし
なんなのこれ
無理して使うもんじゃないな

138:デフォルトの名無しさん
14/12/01 07:08:43.79 GLoHGVkg.net
lock中の処理で
SpreadsheetApp.flush();
入れたら解決した
なんか応答も速くなった希ガス

139:デフォルトの名無しさん
14/12/01 09:25:06.84 guOSxUv1.net
馬鹿には無理

140:デフォルトの名無しさん
14/12/01 10:12:28.09 ikZ1X/ON.net
(前文略)
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);

と書く必要があります。

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

URLリンク(qiita.com)

141:デフォルトの名無しさん
14/12/01 10:34:33.93 ikZ1X/ON.net
GoogleAppsScriptのScriptPropertiesが非推奨になっていた
URLリンク(sugi.minibird.jp)

142:デフォルトの名無しさん
14/12/01 12:23:57.99 GrWyVyTu.net
publish した直後は反応が遅かったりアクセスエラーになるなぁ
数分待ってからアクセスるると比較的速いしエラーも減る
(それでも我慢できる速さってレベル)

GAS を保存するサーバーと公開されるサーバーが違ってたり
同期取ってたりしてる感じだな・・・

143:デフォルトの名無しさん
14/12/02 08:18:47.93 m/U+kAA0.net
>>140
そもそも、JST指定する方法が旧式で、おかしかったわけで。今回から
正しい取得方法に修正されたってだけの話。仕様変更が勝手に発生するのは
いつもの事だが、それについては指摘はオカシイ。

>>141
非推奨になってたって 随分前から非推奨になってるんだが・・・・
移行期間中だぞ。今は。インテリセンスの候補でも二重線引っ張ってあった
だろうが。今更何を。

144:デフォルトの名無しさん
14/12/05 08:40:33.92 uibbdYqE.net
>>134
遅くなる理由
URLリンク(developers.google.com)
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.

URLリンク(developers.google.com)
URLリンク(developers.google.com)

145:デフォルトの名無しさん
14/12/05 09:24:04.62 NyP973bT.net
要するに結局使えねーってことじゃね

146:デフォルトの名無しさん
14/12/05 12:21:33.66 S74tDLHo.net
パフォーマンスの良いGASの書き方
URLリンク(www.slideshare.net)
(このおっさんによれば70倍くらい簡単に速度変わるそうです)

147:デフォルトの名無しさん
14/12/05 12:48:37.41 3N+Ki0BW.net
>>145
まぁ、例え効率の良い書き方をしたとしても、それでも全然ローカル
でやるのに比べたら、比べるまでもなく遅いけれどね。

148:デフォルトの名無しさん
14/12/05 17:28:33.29 X46M6Pii.net
プログラムは全くの素人なのですが、フォームに入力された内容をメールで送るスクリプトをネットからコピペしました。最初は上手くおくれたのですが、途中から
URLリンク(i.imgur.com)
のようなエラーが出てメール送れなくなりました。解決策がわかりません。ご存知な方、教えて頂けますか?

149:デフォルトの名無しさん
14/12/06 12:20:43.07 cu1CMwBP.net
Cacheが最大250文字のキーで各キー毎に100KBで最大6時間保持可能というところまでは読めたのですが
KeyValueのペアは最大何個まで作れるのでしょうか?
URLリンク(developers.google.com)

150:デフォルトの名無しさん
14/12/06 15:41:58.87 7IWME+c9.net
MailAppとGmailAppはどういうときに使い分けますか

151:デフォルトの名無しさん
14/12/07 18:52:37.92 uc0Y93wp.net
新しい Google スプレッドシート
[ツール] メニュー > [スクリプト マネージャ]

スクリプト マネージャが無いんですけど、どこへ行ったの?

152:デフォルトの名無しさん
14/12/08 10:27:16.23 eZuxZoZp.net
learn more じゃなくて dismiss してひどいめにあった
URLリンク(support.google.com)

153:デフォルトの名無しさん
14/12/10 12:32:16.98 2OX9Sm8y.net
Internal Server Error

Error 500

わろた
あかんやろこれ

154:デフォルトの名無しさん
14/12/10 12:56:29.75 v5e5mm45.net
>>153
何回かリトライするといける

155:デフォルトの名無しさん
14/12/10 13:50:01.10 evPa2cl4.net
状況が変わった

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

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

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

どうみても輻輳です本当にありがとうございました

156:デフォルトの名無しさん
14/12/12 20:12:42.74 ZKEOL7uD.net
google plus apiもここで良いのかな?
こういう大量に画像があるページから画像をぶっこ抜こうと思ってjson取得したんだけどな、15枚しか画像リンクを教えてくれないんだわ
URLリンク(plus.google.com)

これがjsonの抜粋
URLリンク(xxxxxxxxxxxx.net)

やり方分かる人いる?

157:デフォルトの名無しさん
14/12/13 06:19:49.76 KcZztYF+.net
nextToken送ってるかい

158:デフォルトの名無しさん
14/12/13 10:37:05.12 LHF4FOqU.net
>>157
アクティビティーのnextTokenは送ってるが、画像にもnextToken送れるんか・・?

159:デフォルトの名無しさん
14/12/16 13:32:07.41 PuXxa6T9.net
尾骶骨

160:155
14/12/20 15:58:34.92 2lHjoIS9.net
自己解決した。スレ汚しスマソ

161:デフォルトの名無しさん
14/12/21 17:54:05.71 gQMH/TzB.net
トリガーをいくつか設定してみたけど
違うプロジェクトに同じ名前の関数があるとき
トリガーの一覧には関数名しか出て来ないので
どのプロジェクトの関数が呼ばれるのかあとで判らなくなるな

162:デフォルトの名無しさん
14/12/22 04:11:59.65 bPTJ7mQh.net
myFunction とか doGet とか言う名前のトリガーがいっぱいなんですね判ります

163:デフォルトの名無しさん
14/12/22 07:19:01.01 lHFqZpWk.net
>>162
周りから頭悪いって言われてない?

164:デフォルトの名無しさん
14/12/22 08:16:40.37 1JxRKZUV.net
>>162
頭の悪いレスですね

165:デフォルトの名無しさん
14/12/22 10:30:02.86 Kj8Ds363.net
うちはtestDoGet()って名前のトリガーが多いな

166:デフォルトの名無しさん
15/01/06 23:11:18.84 Ubhx8o8Fm
特殊文字って入力できる?¥だとそのまま表示されて\でやるとどれも空白になるんだけど

167:デフォルトの名無しさん
15/01/07 08:21:41.41 7s8hjn62.net
古いけどメモ
URLリンク(www.softantenna.com)

168:デフォルトの名無しさん
15/01/07 08:55:32.09 7s8hjn62.net
memo
URLリンク(www.softantenna.com)

169:デフォルトの名無しさん
15/01/07 10:57:08.64 aspvvccd.net
>>167
>>168
消え失せろカス。

170:デフォルトの名無しさん
15/01/07 12:21:43.55 HwRBQ0K9.net
いまどき2ちゃんにアフィ貼っても件数稼げないのにようやるわ

171:デフォルトの名無しさん
15/01/12 13:52:24.61 MUt+Twlt.net
Google Drive のゴミ箱に溜まってたファイルを
永久に削除
を選んで消したのに残り容量が増えないぬ
先週くらいまではゴミ箱空にしたら容量増えたのに

172:デフォルトの名無しさん
15/01/14 10:13:25.29 pWmctPUO.net
>>171
恐らくだが
どのフォルダにも属していない、検索の時だけ出てくるファイルがあるよ。消したつもりになってるだけでね。

173:デフォルトの名無しさん
15/01/14 13:03:30.08 EnBoJmyV.net
trash からも delete forever で確実に削除してたのに
さっきログインしたら trash にあった
改めて消したら容量増えた
ありがとう

Google Drive ってたまにバグるみたいだぬ

174:デフォルトの名無しさん
15/01/20 07:56:06.92 F6HHv4j5.net
勝手にアップデートされて以来
GoogleDriveは執事として無能な
時間泥棒に成り下がってしまった

175:デフォルトの名無しさん
15/03/06 13:27:50.63 BXX0fucD.net
AngularJS 2.0 は TypeScript で開発を進めることに
URLリンク(techcrunch.com)
Angular 2: Built on TypeScript
URLリンク(blogs.msdn.com)

176:デフォルトの名無しさん
15/03/14 19:02:02.06 EXR76peq.net
Siteで新規ページ作成で自動生成されるurl文字列をscriptで再現する方法はないでしょうか?
たとえば「試験-しけん-シケン」と入力すると自動では「shi-yan-shiken-shiken」というURLになるけど
このルールでスクリプトから新規ページ作成を行いたいと思っているのですが

177:デフォルトの名無しさん
15/03/16 02:46:33.19 1GyT2oWU.net
同じ名前でもう一つ作ってみ?

178:デフォルトの名無しさん
15/03/18 22:55:28.68 fCXDEV+f.net
GASで任意のURLを開くことはできますか?
スプレッドシート上でも別タブでもどちらでも構いません。

179:デフォルトの名無しさん
15/03/19 21:40:48.17 htgmHUmd.net
>>178
自動的に開くのは無理
ダイアログ出してクリックさせて開くのはhtmlserviceで実現できる。

180:176
15/03/20 15:56:58.40 +pnIcR/c.net
やはりリンク作ったりするのが精一杯なんですね。
わかりました。

181:176
15/03/20 17:37:45.26 +pnIcR/c.net
HtmlService.createHtmlOutputにiframeタグを書いても
インラインフレームの中に何も表示されないのは仕様ですか?

182:デフォルトの名無しさん
15/03/22 13:09:15.36 rj7656VH.net
>>181
GAS上ではiframeタグは使用禁止ですよ。
sandboxmode.iframeは使えますがね

183:176
15/03/22 21:40:15.35 Exm92v9O.net
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
を付けてみてもダメでした。
もちろんNATIVEもダメでしたし、本当にあきらめるしかなさそうですね。
ちなみに表示させようとしていたページのURLは以下です。
URLリンク(www.google.com)().getValue()

184:デフォルトの名無しさん
15/03/26 11:07:18.75 r/Xr85WG.net
Googleドライブ上にある複数のxlsを読み込んで、指定した文字を検索するhtmlをドライブ上で共有したいのですが
この場合どうすればいいのでしょうか?script.google.comとかサッパリでした
ある程度の英語とjavascriptは出来るので「ココ嫁」みたいなリファレンス貼ってくれるだけでも助かります

185:デフォルトの名無しさん
15/03/26 13:13:42.53 XgHUlE+o.net
>>184
HTML ServiceとDriveApp
そして、siteにそのウェブアプリケーションを配置。
これで出来る。

186:デフォルトの名無しさん
15/03/26 13:16:41.94 XgHUlE+o.net
>>184
あと、手前味噌で申し訳ないが、色々作ってる
URLリンク(eye4brain.sakura) .ne.jp/

187:デフォルトの名無しさん
15/03/26 15:18:18.76 SuVdMCRs.net
xls読めるの?

188:デフォルトの名無しさん
15/03/26 18:55:43.03 r/Xr85WG.net
>>185>>186
ありがとうございます、スクリプト参考にしてみます

189:デフォルトの名無しさん
15/03/26 20:07:09.55 xZ2N6kXB.net
>>188
xlsxの全文検索をしてみましたが、出来ました。
fullText containsオプションを使えば可能です。
ただし、たけのこという文字がセルに入ってる場合、「たけのこ」ではヒットしますが、「たけ」ではヒットしません。そういう仕様だそうです。以下に完成品をまとめておきましたので、参考にしてみてください。
URLリンク(goo.) gl/coMk0P

190:182
15/03/27 00:58:25.79 DYcS+Siy.net
度々すみませんGoogleドライブに
・1.xls~100.xls
・Data_list.xls
とテキストシートがあって、1-100.xls上で行or選択範囲を指定して、その範囲内のテキストを使ってData_listで検索をし、結果を返すというモノを作りたいのですが
①-1~100まで全部一々スクリプトエディタで作成しなければならないんでしょうか?使いまわしできます?
②-図形描写+スクリプト割り当てでイベントハンドラ作成する方法以外にシートから関数呼び出す方法はないんでしょうか?
③-図形描写+スクリプト割り当てを1~100まで毎回作成するの大変なんで使いまわしとかできないんでしょうか?
④-関数の引数に行や選択範囲を指定できますか?
本当に初歩的な質問ばかりですみません
openByUrl(Data_list)で読み込んでforで全部回す方法でmatchやったら検索は出来ました

191:デフォルトの名無しさん
15/03/27 08:27:15.70 XOU4xnaE.net
>>190
スクリプトはライブラリ化すれば使い回しが出来ます。
URLリンク(goo.) gl/ExZZSb

192:デフォルトの名無しさん
15/03/29 15:09:18.54 Kc5qzo13.net
>>191
できました
毎度毎度ありがとうございます!

193:デフォルトの名無しさん
15/04/06 19:06:09.55 Uo28IzYD.net
script.googleにてディレクトリに存在するファイル全て開いて検索するプロジェクトのgsファイルを作ってるんですが
コード.gsて一度に開けるファイルの数や容量の制限ありますか?

194:デフォルトの名無しさん
15/04/07 11:43:06.04 Dj35uwLZ.net
ちょっとした質問なんですけどDriveApp.getRootFolder()みたいに共有アイテムにある「textフォルダ」を取得する方法ってないですか?

195:デフォルトの名無しさん
15/04/09 18:24:15.60 Rhj0QTuK.net
こっちで聴いてみては?
スレリンク(php板)

196:デフォルトの名無しさん
15/04/11 21:16:39.83 yuSJQZvz.net
1.gmailの受信メールをチェック

2.特定タイトルのメールの送信者を抽出しリストアップ

3.別のリストとマッチングさせメール未送信者を特定

4.未送信者に注意メールを送信
GAS初心者なのですが
上記のようなシステムを構築したいと考えています。
1.2.4はGASとスプレッドシートを使えば簡単に実装できそうなのですが
3もGASやappsのみで構築可能でしょうか?
スプレッドシートのマッチングについて
少し調べて見ましたが、明確な回答は見つかりませんでした。
よろしくお願いします。

197:デフォルトの名無しさん
15/04/13 07:45:32.11 eHLkbahF.net
>>196
可能
普通にリニアサーチでメアドリストと1つづつイコールかどうか
確認するループを作ればいいだけ

198:デフォルトの名無しさん
15/04/14 08:06:25.22 VGcTHgGl.net
>>197
ありがとうございます!

199:デフォルトの名無しさん
15/05/20 20:15:39.64 L+8WGw0p.net
最近始めたんだけどこれmydriveにアップしたExcelを読み込む事は出来ないのかな
getDataAsString()でも文字化けしたのしか取得できないし
スプレッドシートに変換すりゃいいんだろうけどそのまま読み込む方法ないのかね

200:デフォルトの名無しさん
15/05/21 08:22:41.16 nwV8enKl.net
>>199
だったら、文字コードでも指定すればいいんじゃねぇの

201:デフォルトの名無しさん
15/05/21 08:29:47.62 x9iUxaW9.net
>>200
Excelは文字コード以前に形式違うからstringで取得できない

202:デフォルトの名無しさん
15/05/21 09:50:23.52 x9iUxaW9.net
エクセルはどこでも話題になるけどDriveApp.searchFiles()で一応文章検索はできるから
セルのstring情報はどっかに記録されてる
ただ引き出して扱えるかどうか知らん

203:デフォルトの名無しさん
15/05/21 10:56:25.53 ESp1pCeJ.net
馬鹿には無理

204:デフォルトの名無しさん
15/05/21 13:26:54.06 RCwHiUWn.net
最高にキモいな

205:デフォルトの名無しさん
15/05/22 12:42:30.36 jHm+8nxR.net
>>199
Drive APIを使えば出来るよ。
URLリンク(qiita.com)

206:デフォルトの名無しさん
15/05/23 21:40:53.24 P22nVuYt.net
>>205
1年前のなんて古くて使いモンにならないってのがよくわかるな
oauth 1.0ってアンタ

207:デフォルトの名無しさん
15/05/27 08:07:09.69 lvaBWQ33.net
>>206
君はGoogleのドキュメントがろくにメンテされてないこと知ってんの?
それと、GASで使うのにOAuthなんて使わないよw
JavaScriptで使う場合には必要だがそっちだって、OAuth2.0でのコーディングに
関しては別のページにあるし。GASやGoogle APIを弄っている人間とは到底思え
ない発言だなw

208:デフォルトの名無しさん
15/05/27 11:08:24.77 fMt5EoRl.net
> それと、GASで使うのにOAuthなんて使わないよw
ひょ、標準APIとの違いも解らない奴がココに居るのか
ちょっとキミにはこのスレちょっと早い

209:デフォルトの名無しさん
15/05/27 14:12:37.86 GScIfku9.net
煽るだけで具体例のない言葉は何の役にも立たねって
ばっちゃが言ってた

210:デフォルトの名無しさん
15/05/27 15:16:08.57 jmeRjzK/.net
知らないから自演も満足に出来ないんだろうが
煽り方が下手だと思う

211:デフォルトの名無しさん
15/05/27 16:25:43.57 smOTLbR3.net
>>208-209
だから、使ってからほざけよ。
コード書いてみ?GAS内でDrive API使うコードをな。
実際に開発やってる奴に、釈迦に説法って言葉覚えておけよ三流。

212:デフォルトの名無しさん
15/05/27 16:29:32.25 smOTLbR3.net
>>206
それとお前。
OAuth1.0だから何?そんなもの自分で2.0の実装でも換装すりゃいいだけの
話だろww
馬鹿なの?それとも2.0のコードでも書けとか言ってるわけ?馬鹿には無理だ
から引っ込んでろ

213:デフォルトの名無しさん
15/05/27 20:42:22.92 iPQChm+t.net
なんか急にonEditのe.userにメールアドレスが入ってこなくなったんだが
同じ現象の人いる?

214:デフォルトの名無しさん
15/05/28 09:53:52.42 /8nOg4qQ.net
これで良くね
URLリンク(stackoverflow.com)

215:デフォルトの名無しさん
15/06/02 10:59:19.63 CxAq+Stxh
書式設定を変えるようなスクリプトを作っても反映されないんだけど、
スプレッドシートの既知の問題?
例えば下のスクリプトを実行すると、既に長い文字列が入ってるセルがあっても
折り返してくれない。
(ボタンはちゃんと「テキストの折り返し」になってるし、ボタン押せば折り返す)

function test() {
   var sheet = SpreadsheetApp.getActiveSheet();
   var range = sheet.getRange('A:A');
   range.setWrap(true);
}

この問題って、既に書式設定してあるセルにフォームから文字列が入力されても
同じ事が起きるんだけど、地味に困ってる。

216:デフォルトの名無しさん
15/06/08 08:54:21.97 0Vy1Z1yY.net
>>213
そんなのしょっちゅうあるぜ?
session.userなんてメアド取れなくなったりとかね。
Googleって馬鹿だからバグ採りもせずにデプロイしてやがるのでこういうことがGoogle Apps for Workでも起きていてもんだいになってる。

217:デフォルトの名無しさん
15/06/08 13:38:40.43 rJB8iCDI.net
Googleって独りよがりだよな

218:デフォルトの名無しさん
15/06/11 09:07:55.30 DJZgiAWM.net
書式設定を変えるようなスクリプトを作っても反映されないんだけど、
スプレッドシートの既知の問題?
例えば下のスクリプトを実行すると、既に長い文字列が入ってるセルがあっても
折り返してくれない。
(スクリプト実行後、ボタンはちゃんと「テキストの折り返し」になってるし、ボタン押せば折り返す)
function test() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange('A:A');
range.setWrap(true);
}
この問題って、フォームから文字列が入力されても既に書式設定してあるセルで
同じ事が起きるんだけど、地味に困ってる。

219:デフォルトの名無しさん
15/06/12 10:07:42.64 7lwiQU6T.net
TwitterBotを作成しているのですが
OAuth1 for Apps Script
URLリンク(github.com)
にCONSUMER_KEYとCONSUMER_SECRETを入れてrunを実行しても投稿されません。
ログには Open the following URL and re-run the script
表示されるアドレスにアクセスするとSuccess!と表示されますが投稿されません。
どうしたら投稿できるようにできますか?

220:216
15/06/12 10:12:38.54 7lwiQU6T.net
>>219
動きました。すみません。

221:デフォルトの名無しさん
15/06/12 16:05:55.82 qp6MkQCv.net
どういたしまして

222:デフォルトの名無しさん
15/06/12 17:28:28.59 7lwiQU6T.net
atomのlinkのhrefを取得したいのですがどうすればいいのでしょうか
function kochiRSS() {
var sheet = SpreadsheetApp.getActiveSheet();
var row = 1;
var feedURL = 'URLリンク(www.pref.kochi.lg.jp)';
var xml = UrlFetchApp.fetch(feedURL).getContentText();
var document = XmlService.parse(xml);
var root = document.getRootElement();
var atom = XmlService.getNamespace('URLリンク(www.w3.org)');
var entries = root.getChildren('entry', atom);
for(i in entries) {
var title = entries[i].getChild('title', atom).getText();
var link = entries[i].getChild('link', atom).getValue();
var updated = entries[i].getChild('updated', atom).getText();
sheet.getRange(row,1).setValue(title);
sheet.getRange(row,2).setValue(link);
sheet.getRange(row,3).setValue(updated);
row++;
}
sheet.sort(3, false);
}

223:デフォルトの名無しさん
15/06/12 18:11:48.05 qp6MkQCv.net
.getAttribute('href').getValue();

224:219
15/06/12 20:37:23.23 RT2PlkdQ.net
220
できましたどうもありがとうございます。

225:デフォルトの名無しさん
15/06/13 03:16:47.88 NUKk6CPY.net
どういたしまして

226:219
15/06/13 08:02:49.41 YFXshuK4.net
たびたびすみません。
RSSを取得するプログラムを作っているのですが
RSS2.0は
var items = root.getChild('channel').getChildren('item');
ATOMは
var entries = root.getChildren('entry', atom);
で取得できるのですが
RSS1.0だとitemが<item rdf:about="記事のURL">なため
var items = root.getChildren('item');
では取得できません。
どういう書き方にすれば取得できるようになるのでしょうか?

227:デフォルトの名無しさん
15/06/13 08:38:19.04 NUKk6CPY.net
馬鹿には無理

228:デフォルトの名無しさん
15/06/13 20:19:34.38 ZKnt+LAz.net
なんだこいつ

229:デフォルトの名無しさん
15/06/14 06:25:18.68 Gz1SNEoH.net
馬鹿には(回答は)無理

230:デフォルトの名無しさん
15/06/14 06:41:51.88 l6qAkUnh.net
一部変な奴もいるけど気にせずに馬鹿はどんどん質問してくださいな

231:デフォルトの名無しさん
15/06/15 13:48:50.97 6FCFdlNB.net
もっとやさしくしてください

232:デフォルトの名無しさん
15/06/15 20:34:44.01 TKCLtNo1.net
正直、DOM系の話題はなしにしたいものだ
DOMの話題ってjsの使い方一辺倒になっちまうから
GASそのものの本質を追究する姿勢が培われなくなってしまう

233:デフォルトの名無しさん
15/06/15 20:57:28.70 vJyBnBQX.net
GASはハウツー的な日本語ドキュメントが少ないから仕方ないかと
誰かその辺りをまとめてくれると(俺も)助かるんだがなー…(チラッチラッ

234:デフォルトの名無しさん
15/06/15 23:47:37.55 YPgI+YQd.net
>>226
>RSS1.0だとitemが<item rdf:about="記事のURL">
属性はattributeと言う。
こんな感じかな。
items[0].getAttribute("about","rdf").getValue();
上は未実証なので詳しくはreferenceを参照。
URLリンク(developers.google.com)(String,Namespace)

235:223
15/06/17 05:49:31.92 pjaGN1aW.net
ありがとうございます。
rdf:aboutのようなのは名前空間というみたいで
XmlService.getNamespaceを指定すると使えるようです。
詳しくはこちらに載っていました。
URLリンク(msdn.microsoft.com)

236:デフォルトの名無しさん
15/06/17 14:14:39.78 T4rbUCsj.net
いやここはGASのスレだしw
XMLの基本を鼻高々に解説されても

237:デフォルトの名無しさん
15/06/17 16:12:56.82 7KhQ6AFD.net
>>236
わかればよろしい

238:デフォルトの名無しさん
15/06/30 15:54:55.56 jfSOFpG/.net
google apps script のウェブアプリケーションの公開するとき
指定したグーグルアカウントだけに利用させるって出来ないんですかい?
共有でそういうのあったんですけど、共有はコード見れるとかそういうのだったんで

239:デフォルトの名無しさん
15/06/30 17:35:30.60 0T0Q+C6j.net
スレ違いだけどできないはずはないと思うよ
appsにアカウント登録できるはず

240:デフォルトの名無しさん
15/07/01 07:45:04.29 WrSpGcQO.net
>>238
1) googleアカウントでログインしてるユーザーだけに実行させることが出来る
2) アプリケーション側でどのアカウントで実行されているか把握することが出来る
1) と 2) を組み合わせれば可能

241:235
15/07/01 15:27:56.64 s1huTgGg.net
出来たよありがとう
"無ければ作れ"がGASでも通用したとか最高だ

242:デフォルトの名無しさん
15/07/01 15:58:11.31 WrSpGcQO.net
おめおめ

243:デフォルトの名無しさん
15/07/04 14:34:59.39 PdgAmMn6.net
GASに初トライしていて問題にブチあたりました。
解決方法があれば教えてください。

■やりたいこと
スプレッドシート内で
外部ページ情報を取得しリアルタイム・もしくはインターバル更新表示しい。
基本は自動更新
■更新条件
スプレッドシートを開いた
スプレッドシートのセルにユーザーから入力があった。
の両方です。
■ためしたこと。
1.=ImportXMLを使って取り込み
 単純な目的は果たせるがセルに埋め込むと取得データを加工するにしても限度がある。
また、同じURLを指定したセルが複数ある場合、同じデータなのにアクセスさせるのが無駄
2.GASでImportXML相当のことをしてみる
 セルから呼び出せる関数でUrlFetchApp.fetchを使ってみる。
 当初の目的は果たせるようになったが、セルの数が多く、
 またスクリプト実行テストを繰り返しているとあっというまに1日の呼び出し回数制限に達してしまう(無料アカなので2万回)
3.呼び出し制限に達しないようにするための工夫
 URLから取得した情報をプールしておき、前回取得からのインターバル時間を経過したら再取得してキャッシュ更新。
 または、キャッシュに存在しないデータを要求された場合もキャッシュ更新。
 キャッシュ場所は、自分のスプレッドシート内にcacheシートを生成してそこに書き込んでおく。
4.3までのロジック実装は完了し、スクリプトエディタの関数実行テストまでは正常完了
続きます。

244:デフォルトの名無しさん
15/07/04 14:44:48.33 PdgAmMn6.net
4からが問題でして、エディタ内の関数単体テストでは、データ取得・キャッシュシート生成まで問題なく動作しました。
 しかし、これの関数をセルから呼び出そうとするとエラーになります。
エラーはシートに対して操作権限がないといわれます。
調べたところセルで関数を呼び出した場合、
var ss = SpreadsheetApp.getActiveSpreadsheet();
var cacheSheet = ss.getSheetByName( g_stocksSheetName );
で取得したシートに対して、作成・修正・削除などの操作が出来ないようです。
つまりセルから呼び出した場合オブジェクトの参照関数しか呼び出しが許可されない?
ss.insertSheet( 'cacheSheet' )
とか
cacheSheet.getRange( 1, 1 ).setValue( new Date() );
もダメでした。
5.イベントハンドラを使ってみる
しょうがないので、書き込み権限を与えてくれそうな仕組みがないかテストしていたところ
onEvent,onOpenなどならいけそうだったので、
onEventから呼び出してみました。
すると、シート作成・データセットまではうまくいきますが、
UrlFetchApp.fetchでエラーになっているらしく、
上流で捉えた例外は
fetch を呼び出す権限がありません
でした。

245:デフォルトの名無しさん
15/07/04 14:54:35.26 PdgAmMn6.net
6.キャッシュの保存場所
自分に書き込めない場合、どっかに保存できないの?と思い調べてみると
ScriptDb とか言うのがあるみたいですが、サービス終了予定の機能ぽいですし、
Google Cloud SQLとかいうのを使うしかない?有料??
■知りたい事
・1~6の流れで問題となっているアクセス権を解決できる方法はありますか?
・無理な場合の代替え手法はありますか?
・そもそもアプローチが間違っている、こうしたほうが良いよ。
という感じでうs。
このまま、いろいろ渡り歩いていても遠回りになりそうな予感なので質問してみました。
よろしくお願いします。

246:デフォルトの名無しさん
15/07/04 15:38:30.72 IUri6wsi.net
>>245
htmlservice + oauth2

247:240
15/07/06 03:19:41.60 c4e3DSSP.net
>>246
> >>245
> htmlservice + oauth2
ありがとうございます。
調べてみます。

248:デフォルトの名無しさん
15/07/07 01:32:45.09 OGGfcKdI.net
htmlからツイにつぶやくのをやってたら
(>_<)この顔文字が(&gt;_&lt;)こんななってたぶんそのせいででエラー吐くんだけどこれはreplaceすればいいのかな?
こういう表記になる文字ってたくさんあるのかな?

249:デフォルトの名無しさん
15/07/07 04:21:52.11 FHtVzgus.net
君にふさわしい板はこっち
URLリンク(kanae.2ch.net)

250:デフォルトの名無しさん
15/07/07 15:42:58.38 5Rsbcn5E.net
>>248
おいてめーそれ「はじめてのホームページビルダー」レベルじゃねぇか

251:デフォルトの名無しさん
15/07/08 23:01:03.10 oRYg8bj0.net
>>248
そういうのはエンコードすべきなんじゃないのか?

252:デフォルトの名無しさん
15/07/08 23:17:38.40 Nj43MlcH.net
>>249
PHPはちょっと良くわかんないです
gasですし
>>250
そうなんですよね~
初心者なんです
>>251
エンコードですか
調べてみます

253:240
15/07/12 18:50:40.39 yhZDzWcx.net
>>246
> >>245
> htmlservice + oauth2
あれから調べてみましたが、これらを使ってどうアプローチしていいか分かりませんでした。
どういうアプローチを取って良いのか、もう少し詳しく教えていただけないでしょうか?
自分が上でやっていてダメだったアプローチは以下のAuthorization modesをみると納得なのですが
URLリンク(developers.google.com)
これらの状況の中でどうやって目的を達成していいか分かりませんでした。
Htmlservice, oauth2ということだったので、
外部サイト情報から取得したキャッシュをHtmlにしてGoogleDrive側に保存すればいいのかな?
とか思っていたのですが、
AuthMode.LIMITEDやAuthMode.CUSTOM_FUNCTIONでは他のサービスへのアクセスは
Any services that don’t access user data
とのことで、キャッシュを書き込めないようです。
実際に試してみましたが、スクリプト単体テストではOKでしたが、イベントハンドラから呼び出すとDrive周りの関数で権限がないといわれました。
oauth2に関してはいまいちよく分かりませんでした。
他社サービスIDなどで別サイトのサービスにアクセスする場合などの認証などに使ったりするようですが、
Googleのアカウントで自身にログインして何かをしろという事でしょうか?
どちらにしろ、AuthMode.FULLで行えるような権限を得られないと、
・キャッシュを作るための外部サイトアクセスとコンテンツ取得
・取得したコンテンツから生成したキャッシュデータの保存(シートorファイル)
が実現できないと思うのですが、どうでしょう?

254:デフォルトの名無しさん
15/07/12 19:09:03.00 slCoB0p4.net
設定間違えてるに+1

255:デフォルトの名無しさん
15/07/13 17:53:46.10 UxTEJ+9t.net
node.js / io.js 動けばいいのにね

256:デフォルトの名無しさん
15/07/15 20:57:05.83 70iQnSqB.net
新たなるオライリー本か?
URLリンク(www.amazon.co.jp)

257:デフォルトの名無しさん
15/07/19 04:21:49.78 eNaDFGYO.net
分かる人がいたら教えて下さい
function upload() {
var clientId = '*************';
var imgUrl = 'URLリンク(www.google.co.jp)';
var service = getService(); //aouth2のなんか
if (service.hasAccess()) {
var url = 'URLリンク(api.imgur.com)';
var response = UrlFetchApp.fetch(url, { //ここでエラーが出る
method: 'post',
headers: {
Authorization: 'Client-ID ' + clientId,
},
data: {
image: imgUrl,
type: 'URL'
}
});
var result = JSON.parse(response.getContentText());
return result;
} else {
こういうエラーが出ます
{"data":{"error":"No image data was sent to the upload api","request":"\/3\/image","method":"POST"},"success":false,"status":400}
どこが間違えてるんでしょうか
imgur apiのページ
URLリンク(api.imgur.com)

258:デフォルトの名無しさん
15/07/19 05:55:09.18 EU0ROg42.net
URLリンク(www.google.co.jp)
404
The requested URL /images/srpr/logo11w.png'; was not found on this server.

259:デフォルトの名無しさん
15/07/19 06:53:12.05 eNaDFGYO.net
普通に繋がるんですが・・・
というか画像のURLに関しては色々試してます

260:デフォルトの名無しさん
15/07/19 07:23:46.52 EU0ROg42.net
さっきはエラってたが

261:デフォルトの名無しさん
15/07/19 13:37:40.69 Npxm1YBj.net
URLリンク(qiita.com)

262:デフォルトの名無しさん
15/07/19 14:52:50.12 Npxm1YBj.net
data: {
type: 'base64',
image: 'hogehoge(base64data)hogehoge'
}
ためしてみたけど
400
Image format not supported, or image is corrupt.
なんぞこれ

263:デフォルトの名無しさん
15/07/19 16:20:37.89 MA6NEEKT.net
>>257
OAuth2の認証系をしっかり組んでないからじゃないかね。
URLリンク(wp.me)

264:デフォルトの名無しさん
15/07/19 17:02:15.86 G63bEDLi.net
>>257
もう一度よく、下記のURL見て組んでみるヨロし
URLリンク(api.imgur.com)

265:デフォルトの名無しさん
15/07/19 17:26:45.22 eNaDFGYO.net
>>263>>264
そっちなんですね
読んできます
ありがとうございます

266:デフォルトの名無しさん
15/07/20 01:12:32.08 M+3F+JJV.net
読んでも全然わかんないや(´・ω・`)
ツイとかはコピペでなんとかなったけどimgurはあんまり見つかんないからやっぱ自力じゃ無理なのかな

267:デフォルトの名無しさん
15/07/20 01:28:27.60 M+3F+JJV.net
getの方は出来たんだけどなぁ
もうちょっと読んでみよ英語分かんないけど
function getImage(id) {
var service = getService();
if (service.hasAccess()) {
var url = 'URLリンク(api.imgur.com)' + id;
var response = UrlFetchApp.fetch(url, {
method: 'get',
headers: {
Authorization: 'Bearer ' + service.getAccessToken()
}
});
var result = JSON.parse(response.getContentText());
return result;
// Logger.log(result);
} else {
var authorizationUrl = service.getAuthorizationUrl();
Logger.log('Open the following URL and re-run the script: %s',
authorizationUrl);
}
}

268:デフォルトの名無しさん
15/07/20 04:39:02.07 /UvV48hv.net
>>257 のは匿名うp用の認証してるからOAuth2は関係ないね

269:デフォルトの名無しさん
15/07/20 10:41:38.27 11U3Dh8m.net
Content-Type: application/json
つけたらでけた

270:デフォルトの名無しさん
15/07/20 23:29:34.40 M+3F+JJV.net
どこに付ければいいか分からないので適当に色々なところに付けてみましたが出来ませんでした
もう少し詳しくお願いします

271:デフォルトの名無しさん
15/07/21 20:08:20.82 S4WMmXN0.net
headers: {
Authorization: 'Client-ID ' + clientId,
Content-Type: 'application/json'
},

272:デフォルトの名無しさん
15/07/21 22:14:27.88 cjPlPdED.net
>>271
そう書くと保存の時に「プロパティ ID の後に : がありません。」ってエラーが出るんですけどなんでだろう
headers: {
Authorization: 'Client-ID ' + clientId,
Content-Type: 'application/json'    ←この行
},

273:デフォルトの名無しさん
15/07/21 23:22:00.36 cjPlPdED.net
'Content-Type': にしてみてもダメでした

274:デフォルトの名無しさん
15/07/22 08:36:09.80 FlFswPU7.net
馬鹿には無理

275:デフォルトの名無しさん
15/07/24 07:31:33.29 NfS3cn5h.net
もっとやさしくしてください

276:デフォルトの名無しさん
15/07/24 15:37:18.28 YFrH4Ww5.net
やさしくやさしくやさしくね

277:デフォルトの名無しさん
15/07/24 20:21:19.80 dvC3Xj8J.net
いとしさとせつなさとこころづよさと

278:デフォルトの名無しさん
15/08/20 11:36:44.28 pV6cw7bo.net
詰んってる

279:デフォルトの名無しさん
15/08/26 18:33:14.63 AtwE5MzM.net
スレリンク(php板:81番)

280:デフォルトの名無しさん
15/10/15 18:03:33.74 bdlPZJI1.net
py

281:デフォルトの名無しさん
15/10/26 00:51:32.73 pJrmvVTd.net
multipartで渡してエラー吐くと思ったらJSONで渡すんだねこれ…

282:デフォルトの名無しさん
15/10/28 22:28:05.44 58PwIK9B.net
独自関数(自作)でbackGroundの色が特定の色の場合にsumする関数をつくりたいんだけど、
引数でバックグラウンドの色ってとりだせるの?
というより、適当に作ったんだけど、スクリプト保存しないと独自関数を使用しているセルが更新されなくて困ってる。

283:デフォルトの名無しさん
15/11/05 20:42:24.52 6t/dd9qY.net
何でもできるようになってきて
すごくありがたく使わせてもらってるんだけど
実行速度が遅いのは何とかしてほしいなぁ

284:デフォルトの名無しさん
15/11/06 18:30:44.33 F7EIvq3A.net
遅いね
あとREMOTE_ADDRとか取れなかった気がするのも痛い

285:デフォルトの名無しさん
15/11/18 03:36:46.11 CE5+T1br.net
スプレッドシートの0:00とか時間表記でのものを時と分に分けて数値として扱いたくて
getRangeで2次元配列で読み込んで時間の部分をsplit使って:で分けました
でもSSの時間部分の書式が日付になるとWed Nov 18 2015 00:00~みたいなDateで読み込まれるし
書式なしテキストにするとStringになって数値として扱えないんです(8:00だったら8と00になって足すと800になる)
どうすればいいでしょうか?

286:デフォルトの名無しさん
15/11/18 05:27:10.31 2k4RwPb/.net
あきらめる

287:デフォルトの名無しさん
15/11/18 07:26:46.79 nLopjri3.net
>>285
固定させたいカラムを晒してくれないとわからない
カラムによってはその機能が備わってるみたいだし

288:デフォルトの名無しさん
15/11/19 00:23:18.88 gRbsU57g.net
*60は?

289:デフォルトの名無しさん
15/11/20 06:21:50.68 bl9/kj42.net
ごめんなさい
自己解決しました
Number()ってのをつかったらいけました

290:デフォルトの名無しさん
15/11/27 15:20:14.09 c/N8jVfb.net
火事お見舞い申し上げます。

291:デフォルトの名無しさん
15/12/03 15:49:15.48 5y9yFaIO.net
test

292:デフォルトの名無しさん
15/12/16 14:14:14.45 kHfROXFw.net
グローバルでconstを使うと、
「TypeError: 定数 **** の再宣言。」
とエラーが出るのですが、グローバルではconstは使えないのでしょうか?

293:デフォルトの名無しさん
15/12/17 12:07:32.69 Szn4FINI.net
>再宣言

294:デフォルトの名無しさん
15/12/19 21:20:25.74 0J9ouBIM.net
シート上のデータをまとめてカレンダーに移したいのですが
GASからbatch requestで処理できますか?
もしできるなら似たような事例でコードがわかるものを教えてください

295:デフォルトの名無しさん
15/12/20 11:31:59.34 8RLYRFXT.net
出来ますよ

296:デフォルトの名無しさん
15/12/20 16:16:42.06 8RLYRFXT.net
どうやんの

297:デフォルトの名無しさん
15/12/21 12:08:37.40 Hf5X7byl.net
>>294
CalendarApp使えばいいじゃん

298:デフォルトの名無しさん
15/12/22 14:35:21.60 Cg7y4/KF.net
>>293
すみません、説明が不足していました。
constで定義した名前は他の場所では宣言していません。
ただ、グローバルでconstを使うと、再宣言していない定数でも
「TypeError: 定数 **** の再宣言。」とエラーになってしまいます。
(function内などのスコープではconstは普通に使えています。)
constでなくvarを使うと再宣言のエラーは出ません。
また、const指定する定数の名前は何にしても再宣言のエラーが出ます。
constの使い方が間違っているのかもしれませんが、何かおかしい点があれば教えていただけないでしょうか?

299:デフォルトの名無しさん
15/12/22 15:36:52.19 WRvltcSm.net
すごく初歩的な質問だと思うのですが原因が解りません
どなたか教えて下さい
下記サイトを参考にスクリプトを作成したのですが
URLリンク(chaika.hatenablog.com)
デバッグすると一番最初の
var ss = evt.source.getActiveSheet();
の箇所で
TypeError: undefined からプロパティ「source」を読み取れません。(行 3、ファイル「コード」)
と出てしまいます
ググったところ、スクリプトの作成元が間違っていると出たりするようですが
参考サイトではスプレッドシートから作成、とあるので間違いではないと思います
かといって何が問題なのか解りません

300:デフォルトの名無しさん
15/12/23 08:28:53.59 2F8TsTF+.net
3. エディタのリソースをクリックして、**現在のプロジェクトのトリガー**を選択
4. 実行をonEditEvent、イベントをスプレッドシートから・編集時 にして保存

301:デフォルトの名無しさん
15/12/23 13:31:42.44 LnNJH8Hn.net
>>300
296です
その設定はやってあります
再度確認しましたがその通りになっています
ですが、デバッグすると296の通りです
URLリンク(i.gyazo.com)

302:デフォルトの名無しさん
15/12/24 01:20:26.04 Icnst7JF.net
関数指定してデバッグボタン押しただけとか?
まさかなー

303:デフォルトの名無しさん
15/12/24 16:49:29.65 4YM2CMve.net
あるある

304:デフォルトの名無しさん
15/12/24 20:07:56.13 Dg+ThN48.net
>>302
296です
私へのレスでしょうか?
何かやり方が間違っているのでしたら教えていただけませんか?

305:デフォルトの名無しさん
15/12/24 21:14:24.02 Icnst7JF.net
いや、俺もトリガーの機能をここのやり取りで知ったぐらいだけど、
デバッグボタンを押すだけだったら
onEditEvent();
と呼び出されるだけじゃない
evtがundefinedなのはそのせいかなと思って
実際どうなん?
正式なやり方はしらんけど、Loggerでトリガーが起動された時に
どんなオブジェクトが渡されてくるかを調べる
そういうオブジェクトを自力で用意してonEditEventに渡す関数を作成する
その関数をデバッグモードで起動
とかするんじゃないのかな
ググってみればやっている人いるかも

306:デフォルトの名無しさん
16/01/31 12:12:27.01 Y0j0ifuu.net
とりあえず、「Hello,World」から始めようと思ってやってみたんですが、
「Cannot call Browser.msgBox() from this context;
have you tried Logger.log() instead? (line 1, file "helloworld")」
とエラーがでていきなり動きません。
エラー内容で検索してみたのですが、
同様のケースは見つからず困っています。
原因は何なのでしょう?
ソースは以下の通りです。↓
function myFunction() {
Browser.msgBox("Hello World!");
}

307:デフォルトの名無しさん
16/01/31 12:40:01.06 35YTNVlr.net
スプレッドシートで やったら普通に動いたよ
this contextとある様にどんな状況でスクリプトを実行しているかが問題だと思う

308:デフォルトの名無しさん
16/01/31 19:52:12.09 iHBYUhz2.net
>>306
そもそも、Browser.msgBoxってスプレッドシートでしか使えませんよ。
なので、普通は例えば
var ui = SpreadsheetApp.getUi();
ui.alert(“helllo world”);
です。uiのgetUiの部分をDocumentApp.getUiにすればドキュメントでも
同じように使えます。Browser.msgBoxは現在は非推奨ですよ。

309:デフォルトの名無しさん
16/02/01 15:04:44.00 C4njzqYk.net
>>306
> from this context

310:デフォルトの名無しさん
16/02/01 17:37:08.92 zFO6PW8k.net
>>307 >>308 >>309
「Hello World」はスプレッドシート経由じゃないと実行できないんですね。
私はGoogleDriveからスクリプトを新規作成して実行していました。
だからエラーがでて動かなかったんですね。
ためしにスプレッドシート経由で動かしてみたところ、
無事、「Hello World」が表示されました。
教えていただいて、ありがとうございました。助かりました。

311:デフォルトの名無しさん
16/02/29 07:51:01.35 tfVkN3NW.net
インスタのAPIで色々しようと思ったけどoauth2が全然分かんないや
gasでインスタapi扱い方書いてるサイトとかないだろうか?

312:デフォルトの名無しさん
16/03/16 16:45:59.48 AoxyQu12.net
現在、Google DriveをAPI経由で使うための勉強をしています。
[root]
 +[個人的なフォルダ]
 +[公開している共有しているフォルダ]
このような構成で、API経由で両フォルダ上にファイルの読み書きを想定しています。
ひの際に使うアクセストークンが知られてしまうと
だれでも両フォルダのの中身をいじることができるようになってしまいます。
そこで質問なのですが、「公開している共有しているフォルダ」の操作だけを
許可するトークンは発行できるのでしょうか。
ひとつユーザを作って「公開している共有しているフォルダ」を共有し
そのユーザでトークンを発行すれば期待どおりになるということはわかったのですが、
お金を削減したいので、ひとつの特権管理者ユーザだけで実現したいのです。
お詳しい方いらっしゃいましたら、どうか教えて下さい。

313:デフォルトの名無しさん
16/03/18 22:40:22.81 Q3hcmZkc.net
>>312
googleアカウントでログインさせろ

314:デフォルトの名無しさん
16/03/21 20:12:50.73 49NnzOUU.net
>>312
アクセストークン使わずにコーディングする。ヒントhScript.getOauthTokenだったかな。
PDF作成時にも使う手ですよ。

315:デフォルトの名無しさん
16/03/21 20:13:28.35 49NnzOUU.net
ScriptAppだった。

316:デフォルトの名無しさん
16/04/10 21:58:42.74 q/cDt/0h.net
GASのWebアプリケーションで質問です。
doGetで受けたパラメーターは
e.parameter.xxxで取得できますが
これをクライアントに渡す方法で悩んでます。
今はdoGetで受け取ったらUsetCacheに預けて
html(template)側で<? ?>を使って取り出しています。
初心者ながら、これがスマートじゃない気がして、
違和感を拭いきれないのです。
スマートな方法を教えてください。

317:デフォルトの名無しさん
16/05/01 16:22:45.99 tKi6j9CT.net
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
URLリンク(twitter.com)
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw

The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
17

318:デフォルトの名無しさん
16/05/02 15:16:04.56 aR8AOrvI.net
YahooAPIのスレは無い?

319:デフォルトの名無しさん
16/05/27 20:19:53.53 wEIQ/dS/.net
Google Apps Scriptって重くね?
かなり処理量すくないスクリプト書いたんだけどモッサリしてる。
起動が遅いだけなのかなぁ。

320:デフォルトの名無しさん
16/05/28 11:45:02.02 YkPoIoOS.net
超遅いよ

321:デフォルトの名無しさん
16/05/28 11:46:40.70 YkPoIoOS.net
コード更新後最初にアクセスしたときにプロセスが立ち上がる感じで
何度かアクセスするといくつかのプロセスが立ち上がるので
最初の数回は全部遅い感じがするが
しばらくすると速くなってくる
ただしプロセスのキャッシュ有効期限が過ぎるとまた最初からなので遅くなったり

322:デフォルトの名無しさん
16/06/13 11:51:06.87 0qOmRg0P.net
質問です。
スプレッドシート内にいくつかの図形を配置してるんですけど
セルの値が編集された時、一個の図形(地図画像)を
更新(画像削除→画像再配置)したいです。
今は画像を削除→画像作成script と手作業でしています。
この作業をscripで出来ますでしょうか?

323:デフォルトの名無しさん
16/06/13 15:00:26.33 zgrawcOE.net
削除しなくても更新される

324:デフォルトの名無しさん
16/06/13 20:58:26.01 EAqpGAx8.net
google siteってjavascript使えなくて、代わりにGAS使えってことなの?

325:デフォルトの名無しさん
16/06/17 23:25:49.12 ZmH+ZAWf.net
>>324
gasはあくまでサーバーサイドなので
クライアントサイドは普通にjs使えるのでは?

326:デフォルトの名無しさん
16/06/18 14:05:20.70 AGMP56Qn.net
js埋めても変換されて出力されるって話では

327:デフォルトの名無しさん
16/07/03 05:32:47.99 AkQnhWCl.net
>>324
元々サイトっていうより、Wikiなので。あのサービスは。
なので埋め込みのApps Scriptを使えって事です。
>>325
それはApps scriptのHTML Serviceの中の話です。

328:デフォルトの名無しさん
16/07/03 05:33:09.52 AkQnhWCl.net
>>326
サニタイズされて無効化されますよ

329:デフォルトの名無しさん
16/07/26 19:17:35.47 SrT4PCno.net
実行している自分自身のFile IDを取得するにはどうしたらいいでしょうか

330:326
16/07/28 10:11:10.32 LxRDdK5b.net
自己解決しました、やりたかったのは同じソースでも実行するfile idによって動作を変えたかった、なんですが、
ローカルで開発してgapps pushするときにうまく切り替えるようにしました、、、

331:デフォルトの名無しさん
16/07/28 19:04:49.94 O8Vfrh0P.net
FileIDかどうかは知らんけどデプロイして変わったのを知りたいなら
AppVersionみたいなのは実行中に取れた気がする
(管理画面に表示されるやつと同じもの)

332:デフォルトの名無しさん
16/08/05 07:48:44.14 OmPlANC2.net
質問するスレ間違えてたみたいなのでここで改めて質問させてください
URLリンク(hesonogoma.com)
この株価データサイトのデータを定期的にスプレッドシートに表示させたくて
ここ数ヶ月悩んでます
1
サイト下部にある Copy to Clipboad からコピーしてシートに貼り付ける
というスクリプトは可能ですか?出来るならどうすればいいのでしょうか?
2
CSVファイルをダウンロード
本来はこのやり方を調べていました。が、flashで表示されているのでurlが判らず
お手上げ状態に・・
1が無理なら2を何とかしたいと思っております

333:デフォルトの名無しさん
16/08/05 12:12:46.89 LJe/qM3f.net
課金が必要

334:デフォルトの名無しさん
16/08/05 12:16:56.28 LJe/qM3f.net
っつーか PritView でよくね
ただの html 取れるぞ

335:329
16/08/06 08:04:08.54 2dv1pXxg.net
>>334
レス有難うございます。PrintViewでどうにかできそうですか!
でもどうすればいいか解らないレベルなので
とりあえず図書館でjavascriptの本を借りてきました
「はじめに」
読んでるうちに寝てもうたw

336:329
16/08/06 08:13:37.42 2dv1pXxg.net
ちなみに>332の2を試してみたときのコードが
function getCsvSample() {
var folderId = '***********';
var destfolder = DriveApp.getFolderById(folderId);
var date = "2016-08-04";
var response = UrlFetchApp.fetch("URLリンク(hesonogoma.com));
destfolder.createFile(date + '.csv', response.getContentText('Shift_JIS'));
}
です。拾ってきたコードをいじって実行したら
謎の文字化け集団が襲ってきました (ここで心折れる)

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

338:デフォルトの名無しさん
16/08/11 11:55:28.49 v2n9djjr.net
OK

339:デフォルトの名無しさん
16/08/11 16:34:55.39 qVxIjH10.net
>>332-336
Shift_JIS ではなく、UTF-8 で保存すれば?
その後、TeraPad などのエディタで、Shift_JIS に変換する

340:329
16/08/13 07:36:05.54 VdLmMpzK.net
>>339
レスありがとうございます
試してみたんですが、うまく変換できませんでした
やっぱりurlが違うのかな、、
このスレの質問、回答がほとんど理解できてない程度ので
もう少し基本からじっくり勉強してみます!
>>332の1だけ
引き続き質問を残させてください

341:デフォルトの名無しさん
16/08/13 17:13:54.48 byPJKfY1.net
GAS関係なくね?

342:デフォルトの名無しさん
16/08/23 14:00:18.41 SYSHEBtV.net
>>332
CSVならGASでドライブに1回保存してからインポートすれば?
次の実行時にドライブAPIでファイル消せば残らんし
もしくはこれ
URLリンク(qiita.com)
>>337
parserつかえ
URLリンク(qiita.com)

343:デフォルトの名無しさん
16/08/24 01:12:18.88 dEIn8nhr.net
GASでgoogleAPIを叩いてgmailの下書きを作成するものを作ったのですが、
これを毎日作成(雛形をコピー)するスプレッドシードで使いたいと思っています。
スプレッドシートに書いてコピーすると、gAPIの紐付けプロジェクトが変わっているので設定しなおさなければ使えず、困っています。
スプレッドシートをコピーして、シート上のボタンを押したらすぐに下書きを作れる状態を作りたいのですが、どのような方法がありますか?

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

345:デフォルトの名無しさん
16/08/24 15:58:08.87 Ku8YOB4B.net
>>343
ライブラリ化する

346:デフォルトの名無しさん
16/08/25 08:04:24.21 Y3c8VA1Y.net
>>342
329です 参考にしてみます
ありがとうございます!

347:デフォルトの名無しさん
16/08/25 23:18:14.53 5XLt8Aa8.net
>>332,>>346
よっしゃ、俺がやってやらぁ!って思って意気込んでサイトみたら普通にJSONで取れた
URLリンク(hesonogoma.com)

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

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

350:デフォルトの名無しさん
16/09/28 22:05:17.24 eXjFddOW.net
ここ最近CalendarAppのアクセス頻度でエラーが出るようになった
Googleはアナウンスなしで仕様変更してくるのやめてほしい

351:デフォルトの名無しさん
16/10/19 12:06:30.27 r6QG4f4p.net
G Suite ω

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

353:デフォルトの名無しさん
16/10/22 17:05:09.77 O48rD9qT.net
>>350
ほんそれ

354:デフォルトの名無しさん
16/11/25 23:29:15.59 dTj7tfXq.net
プロジェクトの.gsファイルって並び替えってできないんですか?

355:デフォルトの名無しさん
16/12/13 18:03:00.36 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:デフォルトの名無しさん
16/12/13 21:30:54.00 mRmuTzdU.net
フォームの名前を<AAAについての確認>とすればいい。

357:デフォルトの名無しさん
16/12/14 13:19:44.27 UzzFPJML.net
CK BOX
って何かと思った

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

359:デフォルトの名無しさん
16/12/19 23:51:02.67 Hch485Lz.net
GASでスプレッドシートをいじろうと思ってるのですか、まず有効なスプレッドシートを選択してくださいと。と表示されてできません。なにがダメなのでしょうか。下記のようにやっています。
var ss = SpreadsheetApp.OpenById("");
var sheet = ss.getSheetByName("");
SpreadsheetApp.setActiveSheet(sheet);

360:デフォルトの名無しさん
16/12/20 12:59:03.44 lAXr92yw.net
IDは?

361:デフォルトの名無しさん
16/12/20 19:57:35.71 ktde9hau.net
oops

362:デフォルトの名無しさん
16/12/21 00:25:00.04 nYEPRmnr.net
ID、シート名ともにあってます…
スプレッドシートからスクリプトエディタを使わないとできないのでしょうか?今は別にスクリプトファイルを作ってやってます

363:デフォルトの名無しさん
16/12/21 08:27:21.58 h8+/QyVK.net
>>359
”→'

364:デフォルトの名無しさん
16/12/22 18:37:45.76 0Tg51mYJ.net
>>359
3行目は開いてるスプレッドシートに対してしか効かないとか。
試してないけど。
別に開かずとも変数sheetは取れてるだろうから、3行目は書かなくてもその後のやりたいことはできるのでは?

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

366:デフォルトの名無しさん
16/12/22 23:50:12.42 TIDq1bhf.net
>>359
試してはないけど、まずアクティブなシート取得しないとエラるっぽい
URLリンク(nevernoteit1419.blogspot.jp)
URLリンク(developers.google.com)(Sheet)

367:デフォルトの名無しさん
16/12/27 01:28:56.39 tIGH6DEG.net
みなさんありがとうございました!
Var SS = SpreadsheetApp.openById("");
Var sheet = SS.getSheetByName("");
SpreadsheetApp.getActivesheet ();
でエラー出ずにやることができました

368:デフォルトの名無しさん
16/12/27 14:37:37.38 6KX94UiV.net
sheetが使われてない

369:デフォルトの名無しさん
17/01/08 20:32:30.74 BBb65MXo.net
GASでローカルのtxt、たとえばc:\\test.txtなんかをスプレッドシートに展開したいのだけれど
csvを展開するスクリプト(URLリンク(github.com)
をいじくりまわしてもどうもうまくいかない
このスクリプトだと、フォームが表示されるのだけれど
フォームの表示なしで、固定のテキストファイル(たとえばc:\\test.txt)を展開することって
GASではむりなんかいな?

370:デフォルトの名無しさん
17/01/08 21:45:18.24 5b4VWoeT.net
ローカルのものをGoogleDriveにupするAPIはあるよ

371:366
17/01/09 07:41:00.04 kW/T2j6A.net
>>370
早速の返信ありがとうございます
いろいろ調べましたが
URLリンク(tokidoki-web.com)
にあるとおり
>セキュリティの問題上でパスを「C:\file.txt」や「../text/file.txt」の様に指定してファイルを書き直す事はできません。
との状況です

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

373:366
17/01/12 21:41:52.77 35gbmkUr.net
>>372
その、「ローカルのものをGoogleDriveにup」をフォームなどの表示なしに自動化したいのです

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

375:366
17/01/13 23:07:28.92 lbjer3ZB.net
>>374
ありがとうできました。

376:デフォルトの名無しさん
17/02/02 07:52:54.77 hDfY8PDB.net
半年ほど前にお世話になった者です
スプレッドシートでimportdata関数を使っていたんですが
Loading......が頻発するので、やはりGASで対処したいのです
データ取得までは出来てると思うのですが、シートに書き込む段階が全くおかしいようで・・

function fetchData(){
var response = UrlFetchApp.fetch("URLリンク(hesonogoma.com));
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:デフォルトの名無しさん
17/02/02 12:56:10.24 Y5kXFMjA.net
アクセス権は?

378:373
17/02/03 06:23:34.32 HRggU1Ve.net
>>377
仕組みがよくわからないんですが、
ログにはデータ表示されるのでアクセスは出来ているはず・・・
・・もしかしてアクセス権というのは違法性の問題とかですか!?
すみません、だったら質問とりやめますが

379:デフォルトの名無しさん
17/02/03 08:05:00.39 HRggU1Ve.net
色々やってみたら一応なんとかなりました
1年ちょいのモヤモヤが一気に解消して、いま涙目になってますウォォ
ありがとうございました!

380:デフォルトの名無しさん
17/02/03 16:11:50.71 Jl+ODihZ.net
役に立たんちんぽだな

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

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

383:デフォルトの名無しさん
17/02/15 13:39:42.93 0zPxl8zN.net
無限ループ

384:デフォルトの名無しさん
17/02/15 13:40:56.40 8OzNcjl5.net
なるほど
なんで急になったんだろう

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

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

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

388:デフォルトの名無しさん
17/03/02 18:37:21.00 ZV5SMkF2.net
visible

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

390:デフォルトの名無しさん
17/03/09 00:45:24.51 9+K5Dr1K.net
Visible

391:デフォルトの名無しさん
17/03/10 02:53:31.23 +YP/FacC.net
URLリンク(code.google.com)
これがOpen issueってことはサポートされてないんでは?

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

393:デフォルトの名無しさん
17/03/26 23:38:49.69 bKMbQXbX.net
var triggerUniqueId = ScriptApp.newTrigger("doPost2")
.timeBased()
.after(100)
.create()
.getUniqueId();
これを実行すると以下の3パターンの動作になるのだがなんとかならないかな?
・すぐにdoPost2に飛んでくる
・数秒~数十秒後にdoPost2に飛んでくる
・どんだけ待とうがdoPost2に飛んでこない(何分か待ってれば飛んでくるのか?)
ちなみに飛んでこなかった場合は全てのトリガを削除してからやり直してる。

394:390
17/03/27 00:25:00.99 0WjH3gBI.net
微妙に勘違いされそうな書き方だったので追記
doPost2に飛んできたときはその中でトリガを削除しているので
「飛んでこなかった場合は全てのトリガを削除してからやり直してる。」ということです。

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

396:デフォルトの名無しさん
17/03/27 07:58:56.68 7fg5PAil.net
PayPal IPNの処理が目的です。

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

398:デフォルトの名無しさん
17/03/27 20:46:24.21 2rEhsR/n.net
トリガーをつくるのではなく、Utilities.sleepじゃダメ?

399:デフォルトの名無しさん
17/03/27 23:05:58.94 8SS48vh4.net
大雑把に以下のような流れになるのでsleepでは無理っす。
1, PayPalからPOSTがくる
2, PayPalにHTTP 200を返す
3, PayPalにPOSTを投げる
URLリンク(developer.paypal.com)
function doPost(e) {
 トリガ仕掛ける
 HTTP 200を返す
}
function doPost2() {
 POSTを投げる
}
いろいろ試したけど60秒とか大きな値ならそれっぽいタイミングでトリガがかかるみたい。
短すぎる設定時間はダメなのかなぁ。

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

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

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

403:デフォルトの名無しさん
17/05/14 12:32:35.84 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:デフォルトの名無しさん
17/05/14 13:22:55.89 v32VfkzT.net
行番号をコピーするの?アクティブセルの値じゃなくて?

405:デフォルトの名無しさん
17/05/14 13:30:26.13 v32VfkzT.net
sheet_copyTo.getRange('B1').setValue(copyValue);

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

407:デフォルトの名無しさん
17/05/21 21:07:56.13 UO8/oZl+.net
質問です。
スプレッドシートのシートを並び替えることはできますか?
セル範囲のデータならSORTでできることは知っているのですが、シートには使えませんよね。
日付がシート名になってて、それを昇順に並び替えしたいのです。
よろしくお願いします。

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

409:デフォルトの名無しさん
17/05/22 16:43:39.47 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:デフォルトの名無しさん
17/05/22 22:49:33.07 Bx+b+qt8.net
1.シート数を取得
2.全シート名を配列へ
3.配列をソート array.sort()
4.シートを移動

411:デフォルトの名無しさん
17/05/23 20:48:03.04 RApg7j5+.net
>>410
4. シートを移動
これができなくて悩んでたんですが
SpreadsheetオブジェクトにinsertSheetメソッドやmoveActiveSheetメソッドがありますね。
何とか実装できそうです。
ありがとうございました。

412:デフォルトの名無しさん
17/06/23 10:37:10.09 0OdP20aK.net


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

414:デフォルトの名無しさん
17/06/26 07:20:27.40 POytUkXJ.net
その二次配列はどのセル番号から取得したんだよ。

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

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

417:デフォルトの名無しさん
17/06/26 20:44:30.70 iMKCKa0h.net
>>416
1.できます
2.できます
3.ajax

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

419:デフォルトの名無しさん
17/06/26 22:04:28.18 c+BwvDt7.net
うーん、この、ggrks感

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

421:デフォルトの名無しさん
17/07/05 18:12:42.59 lervoDRk.net
それ、ただのコメントでは?

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

423:デフォルトの名無しさん
17/07/05 19:46:41.16 lervoDRk.net
波括弧で括ってないからかな?

424:デフォルトの名無しさん
17/07/06 14:10:14.25 flMfxcNT.net
うちはできてる

425:デフォルトの名無しさん
17/07/12 23:56:43.84 zDi+fEh9.net
外部サイトで申し訳ないのですが、GASについて下記のサイトのチュートリアルを試していたのですが
URLリンク(tonari-it.com)
真似をしてみても、エラー出てしまいます。
getActiveSheet を呼び出す権限がありません(行 2、ファイル「test2」、プロジェクト「HTMLページ表示」)
自分のコードが間違えたのかと、コードをコピペしたり、スクリプト認証を再度許可を出すために
現在とは別にファイルを作り直したりしたのですが、同じエラーが出てしまいます。
このエラーを回避するにはどうすれば良いでしょうか?

426:デフォルトの名無しさん
17/07/13 13:23:39.30 G6DCMcFU.net
よそから持ってきたライブラリを使ってないか

427:422
17/07/13 13:30:04.56 7vUNc/rI.net
すみません自己解決しました。
原因はスクリプトにプロジェクトのトリガーを設定していなかったことが原因だった様です。
公開済みのHTMLなのでアクセスすれば良いだけでなのに、なんでや!と思っていたのですが、
googleのwebアプリの場合、公開時にアサインされるHTMLへのリンクは、実はHTMLへのリンクではなく、
リンク > Ajax > .gs > html という流れらしく(たぶん)
3番目の.gsにトリガーが設定されてないとダメという感じの様です。なので.gsのトリガー設定した所動きました。
[設定したトリガー]
実行:doGet
イベント:スプレッドシートから・起動時に設定
このトリガー自体適当に設定したので、spreadsheetに紐付いた(コンテナバウンド)webアプリがこのトリガーで本当に良いのか?
.gsがスタンドアローンだったらどうするのか?などは自分の知識ではまだ不明です。
割と有名(みんなが引っかかる)ワナらしく、「GAS 実行する権限がありません」でググると色々出てきます。

428:デフォルトの名無しさん
17/07/13 14:07:47.08 G6DCMcFU.net
そんなことはチュートリアルの一番最初に書いてある

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

430:デフォルトの名無しさん
17/09/26 15:54:12.38 dGip1y4C.net


431:デフォルトの名無しさん
17/09/26 19:33:58.52 vmZLMK5C.net
すみませんが質問させてください。
現在、google appsのみで簡易ウェブアプリの制作を試みています。
構成は
htmlservice+gas+spredseet(DB)
です。
各種申請をweb化するのですが、アクセスしたユーザーのgmailアドレスもDBに格納します。
session.getactiveuser().getemailを利用するため、スクリプトの実行者は「アプリケーションアクセスしているユーザー」にしています。
そうすると、spreadsheetも全員に公開する必要がありますが、spreadsheetの中身は個人情報を少し含むため見られたくありません。
なにかいい方法はありますでしょうか、、、fusiontablesなどであればできるのでしょうか?

432:デフォルトの名無しさん
17/09/26 19:49:32.88 pQJJ1OIB.net
ユーザーごとの情報はユーザープロパティに入れるべきでは?

433:デフォルトの名無しさん
17/09/27 13:03:25.12 Is6BRq5M.net
>>432
ご助言ありがとうございます。
propaties serviceについて調べた見ましたが、ユーザープロパティとして保存した場合、他のユーザーからは一切アクセスできないものと思いました。
一部のユーザー(システム管理を行う数名)に対しては、データの参照ができるようにしたいと思ったおります(申請されたデータを承認するようなワークフローアプリを検討しているため。後出して申し訳ありません)

434:デフォルトの名無しさん
17/09/27 14:45:10.73 /heCrwKp.net
サイズが十分小さければスクリプトプロパティかな。
たしか500KBくらいまで。
あるいは、スプレッドシートにスクリプトを付属させるんじゃなく、
独立プロジェクトにして、openByIdとかopenByUrlとかは?

435:デフォルトの名無しさん
17/09/27 15:36:25.01 Is6BRq5M.net
>>434
ご助言ありがとうございます。
プロパティについては、思いの外データの種類が増えそうなため難しそうです。
スクリプトをスタンドアロンにして、openbyidがいいですかね、万一idがバレてしまった時のことが不安ですが、そういったことは起こらないと思っていい感じでしょうか。

436:デフォルトの名無しさん
17/09/28 10:38:02.39 PJxaABWy.net
アプリを分けて階層化しろ

437:デフォルトの名無しさん
17/09/29 01:18:28.86 tHWOJPZ9.net
for (var i = 1; i <= ss.getLastRow() ; i++){
ss.getRange(x,y).setFormula('=IMPORTHTML("URLリンク(www.yahoo.co.jp","table"1+i,)');
}
for分の中で関数の最後の部分を1ずつ足していきたいのですが、セルに出力された際は「i」の部分は数字としては見てくれません。
1つずつ足していく方法はありますでしょうか。

438:デフォルトの名無しさん
17/09/29 08:18:30.31 qX48jByc.net
>>436
ありがとうございます。
ライブラリ化するということでしょうか。
getEmailする部分を別アプリ(アプリにアクセスしているユーザー実行)にして、spreadsheet操作をするアプリはオーナーとして実行する感じでしょうか。
調べてみます。

439:デフォルトの名無しさん
17/09/29 11:06:26.65 /1pN5XFr.net
>>435
>そういったことは起こらないと思っていい感じでしょうか
マーフィーの法則というのがあってだな
そういう起こって欲しくないことは起こるんだ

440:434
17/09/29 11:38:46.26 tHWOJPZ9.net
自己解決しました。
ss.getRange(x,y).setFormula('=IMPORTHTML("yahoo.co.jp","table",1+'+i+')');

441:デフォルトの名無しさん
17/10/27 20:03:28.12 CxLsHkIL.net
googleドライブにアップしたエクセルxlsを自動でspreadsheetに変換するコードはありますか

442:デフォルトの名無しさん
17/10/28 10:08:42.77 w8au0uVc.net
すべてのシートで文字の一括置換をしたいのだけど、セル毎に処理するしかないのかな?

443:デフォルトの名無しさん
17/10/28 11:18:38.62 YrbVG7kU.net
>>441
pythonでダウソするやつはある

444:438
17/10/28 19:55:11.76 aeUdpVUN.net
>>443
検索してなんとなくできそうなのでやってみます
ありがとうございました

445:デフォルトの名無しさん
17/11/12 02:54:44.20 StX7DGK4.net
GAS単体でajaxのようなwebページをクローリングすることは可能ですか?
やっぱり外部を通さないと無理でしょうか

446:デフォルトの名無しさん
17/11/12 17:25:52.88 StX7DGK4.net
自己解決しました

447:デフォルトの名無しさん
17/11/13 13:04:40.18 8/cIJ70S.net
スプレッドシートの制御をAndroidから行う方法をご教示頂けませんでしょうか。
内容としては複数列のソートを行いたいのです。
現状は列指定でソートをかけているのですが、列数が多く余分な時間がかかります。
PCからは実行できているのですが、同様の事がAndroid上から行えたらと思います。
実行用のトリガーがAndroidで使用できずに困っております。
現状トリガーは図形に対してスクリプト実行させていますが、タップしてもAndroidでは削除しか出てきません。

448:デフォルトの名無しさん
17/11/14 18:34:16.47 IvDpdEfa.net
function onOpen()とmenuEntries.push使えば?

449:デフォルトの名無しさん
17/12/26 09:12:50.22 myEYxvrC.net
URLリンク(script.google.com)
↑にあるトリガーの合計実行時間や、URLFetch の呼び出し、URLFetch のデータの受信が
現在どのくらい使用されている分かるページは無いですか?
URLリンク(console.developers.google.com)
GoogleドライブAPIなら↑でわかるのにそれ以外載って無くて…

450:デフォルトの名無しさん
18/01/03 23:47:48.36 cEXvj/Pp.net
サーバー側でjqueryって使えますか?
WebスクレイピングのHTMLパーサとしてjqueryを使いたいのですが…

451:デフォルトの名無しさん
18/01/04 12:56:13.15 o7CttU7P.net
node.jsと思ったがGASか

452:デフォルトの名無しさん
18/01/05 01:26:13.05 GBYhvW0R.net
>>450
npmでjQueryをinstall
webpackでbundle
node-google-apps-scriptでアップロード
って感じでいけないかな?
試してないのでできるか分からないけど

453:デフォルトの名無しさん
18/01/05 10:44:01.68 Vef7Ikrv.net
一部の機能なら普通に使える

454:デフォルトの名無しさん
18/01/06 11:51:13.98 HbY4/bGY.net
どっかよそのAPI使うとか

455:デフォルトの名無しさん
18/01/07 11:57:20.99 ez3NxZhX.net
Googleドライブにあるスプレッドシートを
JSONファイルを返すウェブアプリケーションとして使ってるんだが
JSONデータがブラウザにキャッシュされなくて困っている
cache-control:no-cache
pragma:no-cache
expires:Mon, 01 Jan 1990 00:00:00 GMT
というhttpヘッダを返してきてキャッシュさせてくれないんだが、
このヘッダを書き換える方法は無いか?
一ヵ月に1度、2度くらいしか更新されないデータだが、毎日頻繁に参照されるもので
データが1.4MBデカい為、変更されたときだけ読み込むようにヘッダを書き換えたい


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch