【MACRO】Google Apps Script 質問スレ【DRIVE】at TECH
【MACRO】Google Apps Script 質問スレ【DRIVE】 - 暇つぶし2ch581:デフォルトの名無しさん
19/03/17 12:45:23.95 OqCo+XAc.net
Googleカレンダーに添付ファイルを追加するコード教えて!

582:デフォルトの名無しさん
19/03/17 12:52:04.24 rD0zueCH.net
python用のならあるよ

583:デフォルトの名無しさん
19/03/17 12:56:12.90 pH631X63.net
これとコマンドラインgdriveでいろいろできそう

584:デフォルトの名無しさん
19/03/17 12:59:07.48 rD0zueCH.net
ハゲめ

585:デフォルトの名無しさん
19/03/20 11:14:54.71 vprotu0m.net
内定先がGsuiteなんだけどどう勉強したらいいのかな?

586:デフォルトの名無しさん
19/03/22 14:49:10.46 f+WIg5g9.net
こりゃ問題じゃね
【悲報】Googleマップ、ゼンリンとの契約解除で超絶劣化 ゼンリンも株価暴落 何がしたいんだ両社
スレリンク(news板)

587:デフォルトの名無しさん
19/03/29 18:43:30.56 hWFg3V8b.net
Googleカレンダーに添付ファイルを追加するのは諦めて、HYPERLINKで解決した。

588:デフォルトの名無しさん
19/03/30 21:57:46.29 CwhbRKdW.net
GASではできないんじゃ?
Calendar APIならできるかもよ
調べてないけど

589:デフォルトの名無しさん
19/04/04 23:11:41.43 Wk+4k4Yw.net
GASを使ってnow関数の更新をとめる方法ってないでしょうか?
検索してもまったく出てこないんです

590:デフォルトの名無しさん
19/04/05 00:03:09.93 8TkW46B2.net
解決しました

591:デフォルトの名無しさん
19/04/08 12:05:47.40 /dR5dMe1.net
API使わなくてもlinkメソッドで出来るけどね。ここは知ったかぶりする回答者しかいなから使えない。

592:デフォルトの名無しさん
19/04/20 14:40:06.41 tWWHyzwg.net
書き方がわからないんですけど、
VBから翻訳する方法ないですか?

593:デフォルトの名無しさん
19/04/20 14:55:13.33 tgvbScEy.net
>>592
お前には無理
あきらめろ

594:デフォルトの名無しさん
19/04/20 15:32:55.59 tWWHyzwg.net
>>593
あのー、方法を知らない人に聞いてないんですけどー。

595:デフォルトの名無しさん
19/04/21 13:32:14.38 tITQ2Bq3.net
>>594
あきらめろ

596:デフォルトの名無しさん
19/04/21 15:32:49.13 4kO5c1T5.net
>>595
だからやり方のわからない人には聞いてないんですよ。
ちなみに書き方はわかったのでもういいです。

597:デフォルトの名無しさん
19/05/05 17:57:44.17 rLPrkeGk.net
googleフォーム
名前
趣味
好きな理由
趣味
好きな理由
で得たデータ
名前 趣味 好きな理由 趣味 好きな理由
(名前の入力内容) (趣味の入力内容) (好きな理由の入力内容) (趣味の入力内容) (好きな理由の入力内容)

(名前の入力内容)
(趣味の入力内容) (好きな理由の入力内容)
(趣味の入力内容) (好きな理由の入力内容)
と並べ替えたいのですが、どのようにすれば可能でしょうか?
ご存知の方ご教示お願い致します

598:デフォルトの名無しさん
19/05/05 18:39:32.86 ZbhvsmlF.net
無理じゃね

599:デフォルトの名無しさん
19/05/06 18:42:19.72 o0+2Jvom.net
あきらめろ

600:デフォルトの名無しさん
19/05/08 22:37:52.06 v2zfKxp6.net
フォームと連携されたシートをアレコレ弄るのはあんまりオススメしない
別シートにその形になるようにスクリプト組めば?

601:デフォルトの名無しさん
19/05/13 00:46:09.37 31F8kOtz.net
前職を退職してしばらく経過している、VBAとPHPしかできないウンコちゃんなんですけど、
これから勉強するならVBAとGASどっちがおすすめですか?
中小企業でのGSuiteの普及具合ってどう?

602:デフォルトの名無しさん
19/05/13 07:51:29.08 UqvxTptL.net
知らんがな
まぁjavascriptと同じ感じだからGAS覚えとけば
使う機会あるか知らんが

603:デフォルトの名無しさん
19/05/13 08:41:07.41 pa8yLa6W.net
本当にうんこだな

604:デフォルトの名無しさん
19/05/15 20:51:09.77 UMUjFXwO.net
もしかして、スプレッドシートって、テキストボックス配置出来ない?
ボタンを押したときに、テキストボックスに入れた値を引数にしてGAS実行とか無理?

605:デフォルトの名無しさん
19/05/16 11:37:04.16 Ox4fjiQE.net
きみにはむり

606:デフォルトの名無しさん
19/05/16 19:08:38.58 mGxnipSl.net
>>604
できるわ!!GASをなめんな

607:デフォルトの名無しさん
19/05/16 22:27:53.89 aE3zz80C.net
あ、ごめん、Excelレベルのやつ。
下手に触ると、変形したり消えちゃったりする、
図形のじゃなくて。

608:デフォルトの名無しさん
19/05/16 22:52:16.37 M/iLkUxO.net
セルじゃあかんのか

609:デフォルトの名無しさん
19/05/16 23:54:06.79 aE3zz80C.net
セルだと、「ここに値を入れるんだぞ」って感じじゃないので。
なんて言うか、例えば格子状に線が引かれている方眼紙みたいな年賀はがきがあって、
そこに住所とか氏名書いたら、物凄く萎えると思うの。

610:デフォルトの名無しさん
19/05/16 23:57:14.94 H3GEaKSc.net
表だからね

611:デフォルトの名無しさん
19/05/17 09:29:57.48 Eosg7Npq.net
まずSpreadSheetにその機能があるのか?
テキストボックス付きのExcel表を変換したらどうなる?

612:デフォルトの名無しさん
19/05/17 20:43:55.99 S7b1x4Z7.net
>>611
何か変な画像(?)みたいなのに置き換えられた。

613:デフォルトの名無しさん
19/05/18 10:19:31.77 wL0pdwUB.net
HTML ServiceとUI使えばダイアログボックスやサイドバーに
htmlを使ってテキストボックスやボタンとか表示させることができるよ

614:デフォルトの名無しさん
19/05/18 10:45:56.21 4RzeW/b4.net
getidとgeteventbyidって何が違うの?

615:デフォルトの名無しさん
19/05/18 11:59:38.42 7IJ3He79.net
名前が違うじゃんばーか

616:デフォルトの名無しさん
19/05/18 19:20:28.95 4RzeW/b4.net
どんだけ惨めな負け組人生を送ったら、そんなことが書けるんだろう・・。

617:デフォルトの名無しさん
19/05/18 20:31:24.15 P5JmHxRD.net
>>616
涙拭けよw

618:デフォルトの名無しさん
19/05/19 13:24:59.15 j/nghwCk.net
負け犬だからその違いもわからないっていうw

619:デフォルトの名無しさん
19/05/21 22:07:00.33 Jja3BPK6.net
>>614
getIdのドットの前のオブジェクトは何?
それ次第
getEventIdはカレンダーイベントオブジェクトでしょ?
だからカレンダーイベントのidが取得できる

620:デフォルトの名無しさん
19/05/21 22:07:54.48 Jja3BPK6.net
>>614
getEventByIdだったw
イベントidでイベントを取得するメソッドだね

621:デフォルトの名無しさん
19/05/22 22:43:46.56 bxcYYOqD.net
>>620
カレンダーイベント配列のgetId。
だから、何でカレンダーイベントのIdを取得できるのがもう一つあるのかなと。
しかも取得結果が違うし。
getIdは、長い暗号 + メールアドレスみたいな文字列が返ってくるけど、
getEventByIdは、全然違う文字が返って来たり、空だったりする。

622:デフォルトの名無しさん
19/05/23 03:29:55.06 4J3/T4Xu.net
sheet.getRange().sort(column);
の様な処理で column 列が式の場合、式の文字列でソートされますが
この関数は演算結果に対して行う手法はあるのでしょうか?
無いようなら getDisplayValues で配列に取り込み、
放り込みなおして sort するのが比較的手数が少ない方法ですかね?

623:デフォルトの名無しさん
19/05/23 08:12:12.16 nodzy/aN.net
式でソートされないけど

624:デフォルトの名無しさん
19/05/23 14:01:08.81 4J3/T4Xu.net
検証不足で他の要因で一部にソート異常があったので思い込みにはまってました、お恥ずかしい

625:デフォルトの名無しさん
19/06/06 07:53:11.68 0GC4e250.net
スプレッドシートでExcelのマクロみたいなことをしたいのですが
オススメの参考書などありますでしょうか?

626:デフォルトの名無しさん
19/06/06 22:33:31.61 17p7tBKQ.net
ググって調べるのが一番だと思うけど。
俺も欲しかったので、Amazonで調べたけど、
内容がすぐに陳腐化するらしい。
アップデートが頻繁なのも善し悪しだな。

627:デフォルトの名無しさん
19/06/08 17:29:30.36 h5srjJt3.net
Javascriptの基礎的な言語知識と
GAS独自のオブジェクト
たとえばスプレッドシートなら
Spreadsheet, sheet, rangeなどが分かればある程度のものは
組めるようになると思う

628:デフォルトの名無しさん
19/06/16 20:09:51.82 ZtozgK8X.net
gmailの着信をトリガーにする方法はありますか?
今は1分間隔でスクリプトを動かしてるんだけど、
たまに経過時間でエラーがでちゃうので、1分間隔は厳しいのかなーとか。

629:デフォルトの名無しさん
19/06/17 10:59:46.44 lxO8a0KV.net
定期的に自動で再起動するスクリプトにしろ

630:デフォルトの名無しさん
19/06/19 00:49:14.23 HMJH3ram.net
質問なのですが、
1・スプレッドシートにボタンを作る(挿入→図形描画で作りました)
2・そのボタンにツール→スクリプトエディタで書いた、簡単なgasを紐つける
これでPCのブラウザからはボタンをクリックすると、ちゃんとgasが何の問題もなく正常動作するんですが
スマホのスプレッドシートアプリから同シートを開いてボタンをクリックするとgasが全く動きません
エラーも出ず、ボタンオブジェクトがクリックされた状態(D&Dでオブジェクトを移動できる状態)になるだけです
もしかして、gasはスマホのスプレッドシートアプリからは動作しなかったりしますか?
なお、書いたgasは以下です
function addTuujouKinmu() {
var sheet=SpreadsheetApp.getActiveSheet();
var x=sheet.getRange("D14").getValue(); //現状の通常勤務日数を取得
sheet.getRange("D14").setValue(x+1); //ボタンがクリックされたら勤務日数+1
}
よろしくお願い致します

631:デフォルトの名無しさん
19/06/19 06:06:39.91 /B51KqfV.net
スマホのブラウザからは操作できないもんなの?

632:デフォルトの名無しさん
19/06/19 14:23:03.68 HMJH3ram.net
>>631
なぜかスマホのブラウザからでも編集、gasの動作しないです
どうも閲覧専用アカウントのような、閲覧しかできない状態になっているように見えます
ブラウザはios版GoogleChromeで、グーグルアカウントはこのシートとgasを書いたオーナーアカウントでログイン済みです
PCブラウザで同アカウントでログインして、gasの正常動作とシート編集などできる事を確認しているアカウントです
スプレッドシートのgasが、アプリはブラウザでもスプシアプリでも何でもいいので、
スマホで動作している方いらっしゃいませんでしょうか?

633:デフォルトの名無しさん
19/06/30 09:01:10.73 1wPBDcFD.net
>>629
625じゃないんだが、再起動ってどうやってするの

634:デフォルトの名無しさん
19/06/30 12:46:38.69 KJzE6gx5.net
>>633
たとえばコレとか
URLリンク(kido0617.github.io)

635:デフォルトの名無しさん
19/07/25 19:54:13.01 zHpGKaXB.net
Gmail時間予約送信のGmailApp実装はまだですか?

636:デフォルトの名無しさん
19/07/26 10:10:58.05 ycINWf6e.net
馬鹿には無理

637:デフォルトの名無しさん
19/07/27 23:05:56.23 8PWCZyQY.net
>>635
トリガーあるじゃん

638:デフォルトの名無しさん
19/07/29 00:59:59.45 Dem7abun.net
トリガーも使ってます、定期送信用に。
ただ、不定期にspreadsheets上で複数宛先に一括送信する場合、毎回宛先も内容も違うので、念のため事前にgmail上でチェックしたいのです。

639:デフォルトの名無しさん
19/08/19 10:56:02.24 zd9MQlzl.net
google driveやonedrive、amazon s3をFTPで利用できるアプリを開発しました。
よかったら使ってみてください。
webifi
URLリンク(www.loxsols.com)

640:デフォルトの名無しさん
19/09/12 02:28:38.82 9g2OFR39.net
Java Script知らない場合は先にJava Script勉強したほうがいいですか?

641:デフォルトの名無しさん
19/09/12 20:34:14.26 hHaUU8VW.net
そうだね

642:デフォルトの名無しさん
19/09/12 20:36:48.23 hHaUU8VW.net
でもES5の仕様がほとんど使えないから
ちょい古めのJavaScriptで書くことになる

643:デフォルトの名無しさん
19/10/04 01:45:57.83 zbpSxYO6.net
ドキュメントにあるデータ名・URL・オーナー名・作成日・更新日を一覧化したいんだけど、指定したオーナーのデータのみ吐き出したい。
これってできる?

644:デフォルトの名無しさん
19/10/04 15:10:08.55 JXWhYfPM.net
どうして出来ないと思ったの?

645:デフォルトの名無しさん
19/11/01 14:08:33.21 NFOS1XEp.net
スプレッドシートのonOpenで自分のホルダー名知りたいのですがdriveappの一部が仕様でエラーになります。何か裏技無いでしょうか?

646:デフォルトの名無しさん
19/11/01 17:12:50.47 ep+Mqrpb.net
自己解決、onOpenじゃなくて現在のプロジェクトのトリガーでスプレッドシートの起動時にvoldの関数を実行すると登録したら動きました。擬似的なフォルダ構造でやれそうです。

647:デフォルトの名無しさん
19/12/22 20:08:35.90 euY4U9Rb.net
スプレッドシートの内容をカレンダーに自動追加するスクリプトを素人ながら作りましたが、
いわゆるAPIの呼び出し過多で実行時間が11-14秒かかります。
短縮するにはどのように書き直せばいいかご教示いただけないでしょうか。
function CreateEventfromSheet() {
var sheet, i, event, date, added;
sheet = SpreadsheetApp.getActiveSheet();
for(i = 2; i <= sheet.getLastRow(); i++) {
added = sheet.getRange(i, 16).getValue();
if(added == "") {
event = sheet.getRange(i, 11).getValue();
Logger.log(event)
date = sheet.getRange(i, 12).getValue();
Logger.log(thedate)
thisevent = CalendarApp.getCalendarById("*****")
.createAllDayEvent(
event,
date
);
sheet.getRange(i, 16).setValue("done");
}
}
}

648:デフォルトの名無しさん
19/12/27 01:23:41.12 XkxDMtdZ.net
>>647
for文の前に、まるっとgetValue's' とか?

649:デフォルトの名無しさん
19/12/27 01:26:28.31 XkxDMtdZ.net
>>648
あと、各行の結果も(二次元)配列に入れておいて最後に setValue's' かな

650:デフォルトの名無しさん
19/12/31 15:27:19.03 ZLSJA6hu.net
インストール不要だからVBAより便利そうですね。
最近勉強を始めました。

651:デフォルトの名無しさん
20/01/01 00:53:00.78 DBz6lwN3.net
>>647
結果を入力するとことか無駄あるけど、こんな感じかな
ポイントはシートにセットする値は二次元配列にしないとだから、resultにpushするときに配列として渡してあげるとこ
ただカレンダーの予定を入力するのは結局一つずつだから、大量に入れると遅くなるのは仕方ないかも
A列 タイトル
B列 日付
C列 イベント作成したかどうか

function sample() {
var sheet = SpreadsheetApp.getActiveSheet();
var calender = CalendarApp.getCalendarById('####');
var data = sheet.getDataRange().getValues();
// カレンダーへのセットの結果を格納する配列
var result = [];
data.forEach(function(value){
if(value[2] === ''){
var title = value[0];
var date = new Date(value[1]);
calender.createAllDayEvent(title, date);
result.push(['done']);
}else{
// すでにセットされている予定は更新しない
result.push([value[2]]);
};
});
sheet.getRange(1, 3, result.length, 1).setValues(result);
}

652:デフォルトの名無しさん
20/01/01 10:23:10.87 so4DvMIc.net
今後は、VBAからGASに置き換わる感じかな?

653:644
20/01/01 16:06:51.26 Xdbev+rH.net
あけましておめでとうございます。
>>648,>>651
ありがとうございます。
結果的に下記内容で実行時間を1カレンダー入力を2秒未満に済ませることができました。
カレンダー追加済と日付の指定を探しに行く範囲を限定しただけですが...
前提となるシートの内容が、
上から順に案件番号(3列目,C列)と案件名(10列目)は振られるものの、
カレンダーへの反映は予定日(11列目)が決まり次第のため、
入力済かの判定列(15行目)は途中で空欄が含まれるものでした。
>>651の内容をすることを正月休みの宿題にすることにします。

654:644
20/01/01 16:07:06.72 Xdbev+rH.net
function CreateEventfromSheet2() {
var sheet = SpreadsheetApp.getActiveSheet();
var lastRow = sheet.getLastRow()
var columnC = sheet.getRange('C:C').getValues();
var lastRowC = columnC.filter(String).length;//案件番号の最終行
Logger.log(lastRowC)
for(var i = 2; i <= lastRowC; i++) {
var added = sheet.getRange(i, 15, lastRowC, 1).getValue();//カレンダー追加済か
var thedate = sheet.getRange(i, 11, lastRowC, 1).getValue();//予定日が入力されているか
if(added == "") {
if(thedate !==""){
var event = sheet.getRange(i, 10).getValue();
Logger.log(event)
thisevent = CalendarApp.getCalendarById("****")
.createAllDayEvent(
event,
thedate
);
sheet.getRange(i, 15).setValue("done");//追加済とする
}
}
}
}

655:デフォルトの名無しさん
20/01/15 22:19:02 22NAEhTT.net
GASに、VBAのAdvancedFilter相当の機能はありますか?
ORとANDの組み合わせが自由自在のやつ。

656:デフォルトの名無しさん
20/01/15 22:25:11 22NAEhTT.net
↑出来れば、他の閲覧者の画面に影響しないタイプのフィルタで。

657:デフォルトの名無しさん
20/01/16 22:23:48 kEtPLYqM.net
>>655
Query とか?

658:デフォルトの名無しさん
20/01/16 23:53:39.30 zIX3nnAn.net
クエリ?
自シート内でフィルタではなく、他シート(または別範囲)に書き出す感じですか。

659:デフォルトの名無しさん
20/02/25 14:03:43.81 eF9AatYa.net
apps scriptでCSV読み込んでそれをgoogleドキュメントに差し込みしてそのあと印刷したいってできる?

660:デフォルトの名無しさん
20/02/25 15:37:53 FzVRg2bh.net
ok

661:デフォルトの名無しさん
20/02/26 14:11:00 OdP3ovVD.net
app script初回に他のアクセスするファイルの許可って途中からでも許可できるファイル増やせる?

662:デフォルトの名無しさん
20/02/29 17:58:43 pn9TVa1r.net
エラー聞き取れませんでした

663:デフォルトの名無しさん
20/03/04 19:02:19.80 DcIeIIMH.net
豚切りスマソ
ファイル名の同じpdfファイルを毎月同じ日にダウンロードして、Googleドライブに保存したいんだけど、そんなことできる?
例えばこれ
URLリンク(www.mizuhobank.co.jp)

664:デフォルトの名無しさん
20/03/04 19:24:29.51 RbQqNGaU.net
test

665:デフォルトの名無しさん
20/03/07 09:26:16.72 1EWZ7xdf.net
>>663
できる

666:デフォルトの名無しさん
20/03/07 10:04:47 M14eFJOx.net
GASで他人が作ったライブラリを追加したのですが、その内容を確認する方法はあるのでしょうか?あるのでしたらその方法を教えていただきたいと思います。

Twitterに投稿をするアプリの紹介している同人誌があり
Authを設定してそのライブラリに渡すことで実現しています。

ただ、そのライブラリは作者が開発したのもですので、
抜き取られていないかどうかを確認したいと思っています。

667:デフォルトの名無しさん
20/03/07 15:43:27 QH/1z6a5.net
今日初めてスプレッドシートでスクリプトを書き始めたド初心者です

変数にちゃんと値が入ってるか確認するためにLogger.log()でこまめにログを開くんですが、ログ表示にすごく時間がかかったり、スクリプトの中間辺りのLogger.log()だけ表示されていたりします

10~20秒位待ってログを開き直すとちゃんと表示されるのですが、毎回待たされるのが地味にストレスです
素早く正しく表示させる方法はありますか?
ちなみに変数に値を入れて、その中身を表示させるだけのシンプルなものでもそれなりに待たされます

あとログウィンドウを移動させる際に、ウィンドウを持てる箇所の当たり判定が小さいのと、マウスカーソルが矢印から手に変わらないから、なかなか一発で動かせないのと、動かしたところでスクリプト画面にフォーカスしないからスクロール出来ないのも憎しみポイントですね

668:デフォルトの名無しさん
20/03/08 00:48:31.73 5hjyLnS+.net
>>667
新しいエンジンが供用開始になったばかりなのでまだ buggy かも
ログ表示は旧エンジンを使えばすぐ表示される
あんまり回答になってないが

669:デフォルトの名無しさん
20/03/09 10:51:06 p6Z1SMlj.net
>>666
その作者が公開設定してなきゃ確認する手段はない

有名どころのライブラリは公開してるのがほとんどだから、あやしいマイナーライブラリ使うより有名なTwitterライブラリ使ったら?

670:デフォルトの名無しさん
20/03/09 11:19:24.38 ZzLE3RUo.net
>>668
ありがとう
ログ表示快適になりました

671:デフォルトの名無しさん
20/03/10 21:35:41 ZDCF6+eP.net
>>669
理解しました。アドバイスもありがとうございます。

有名なTwitterライブラリを探してみたいと思います。

672:デフォルトの名無しさん
20/03/12 00:07:44 Ajw/pKZ3.net
>>670だけど追加で報告
V8エンジンをオフにしてると、includesって命令使った時だけエラーが出ます

if(!ran.includes(temp)) こう書いてある行でエラーになるけど、V8オフにすると問題無し
ranもtempも直前でログ表示してますが、中身に問題はありません


そしてまた質問なんですが、
特定のセルを変更した時だけスクリプトを走らせる事は出来ますか?

onEditだとどのシートのどのセルいじってもファンクション呼んじゃう
A1のセルでファンクションA、B1ならBを呼ぶ
あるいは
セルA1のプルダウンがAならA、BならBみたいにして、スマホからでも動かしたいんです
各シートは普通に手入力で修正追加する表計算として使いたいので、いちいちファンクション呼んでたらサーバーが地獄です

htmlと絡めてwebアプリ的にするしか無いんですかね?

673:デフォルトの名無しさん
20/03/12 01:52:13.27 cgiY/N73.net
>>672
includesはもとのGASではArrayオブジェクトにないからエラーになるのが通常動作
V8とオブジェクト単位で使える使えないがそもそも違うので、少しはリファレンス読んだ方が良いよ

674:デフォルトの名無しさん
20/03/12 13:27:32.42 j9jxQsAx.net
>>672
モバイル端末からはそもそもコンテナバインド型GASは実行できない
規約なり制限をきちんと読め

675:デフォルトの名無しさん
20/03/12 15:12:36.46 Aj8VN0Uo.net
GASファイルを他の人にアップすることって可能?

676:デフォルトの名無しさん
20/03/13 18:14:34 5AsLHuse.net
スプレッドシートに紐づけしたGASって他のスプレッドシート参照できないんだな
いい勉強になったわ、自動化する時はGAS単独で作るしかないな

677:デフォルトの名無しさん
20/03/13 18:40:07.18 cgyHyg3G.net
excelの何でもできる、痒いところに手が届くに慣れてると
Googleスプレッドシートには絶望しかない

678:デフォルトの名無しさん
20/03/13 18:58:46.30 8vXfd8Hl.net
やっぱりマクロで組んでよかった

679:デフォルトの名無しさん
20/03/13 21:44:39.56 8A2FfsSZ.net
>>676

Get/Set可能では?

680:デフォルトの名無しさん
20/03/14 01:13:49 UZOR73gH.net
>>676
できるでしょ

681:デフォルトの名無しさん
20/03/14 01:18:50 UZOR73gH.net
>>677
どこまでいってもOpenDocument派生だからExcelより同じ派生のLibreOfficeにあるCalcが近しいから仕方ないかと

682:デフォルトの名無しさん
20/03/14 03:57:51 B3THKCTN.net
>>680
いややってみたけど無理だったよ、スプレッドシートに紐づけしてるマクロの中で他のスプレッドシート開こうとしたら怒られたし権限がないって

683:デフォルトの名無しさん
20/03/14 04:45:08 B3THKCTN.net
>>682
このコメントは間違いだった、ちゃんとアクセスできたわ
謝罪しておきます、スペルミスしてたのかなあopenByidでミスったか・・・

684:デフォルトの名無しさん
20/03/14 15:29:14 UZOR73gH.net
>>683
変更履歴から直近の変更点は確認できるし、今後も同じような事にならんようになにが原因でできてなかったのかは明確にしとくと自分自身のために良いよ

685:デフォルトの名無しさん
20/03/15 15:57:53.08 uLtpsypH.net
>>535
ここしかないのかな(´・ω・`)

686:デフォルトの名無しさん
20/03/23 12:05:18.59 Y7MCXH01.net
cat テキスト | grep hogehoge 相当は
テキスト.match(/.*hogehoge.*/g);
でよさそうなのですが
grep -v hogehogeに相当するのをGASでどう書けばいいのかわからないのですが、
どなたか教えてもらえないでしょうか

687:デフォルトの名無しさん
20/03/23 12:47:32.23 jGS2rL5b.net
Ruby なら、
text = <<"EOT"
abc
あいう
xyz
EOT
re = /あい/
text.each_line do | line | # 1行ずつ処理する
line.strip! # trim
puts line unless line.match( re ) # マッチしなければ
end
出力
abc
xyz

688:デフォルトの名無しさん
20/03/23 21:04:49 iyDg9ARV.net
>>686
テキスト.match(/^(?!.*hogehoge.*).*$/gm);
URLリンク(regex101.com)

GASでは試してないんだけど
ES3でもnegative lookaheadには対応してたはず
v8ならまず問題ない

689:デフォルトの名無しさん
20/03/23 23:19:42.98 dwpdUDvb.net
VBAスレで相手にされなくなったからって、GASスレまで出向いてこないでくださいな。

690:デフォルトの名無しさん
20/03/24 11:22:47 JQ7YmFwi.net
そろそろ潮時

691:デフォルトの名無しさん
20/04/03 23:41:32.27 r3V2xUir.net
GAS極めようと思ったら、google cloud platformは必須かな?

692:デフォルトの名無しさん
20/04/04 06:53:26.32 k/Lp30S7.net
google cloud platformってなぁに?

693:デフォルトの名無しさん
20/04/04 22:17:09.10 chSF5SQRn
【与沢翼】悪いですけど一流大学に行っても会社の「歯車」ですよ。成功者には中卒が多いですし
学歴なんて関係ないですよ。今を全力で生きれば必ず人生変えられます
URLリンク(www.youtube.com)
【与沢翼】金稼げなきゃ意味ないんですよ。周りの人達はただ足を引っ張ってくるだけです。
迷ってる暇があったら決断し行動しろ!稼げない奴は明確な目標がないんですよ
URLリンク(www.youtube.com)
【与沢翼】会社を作るのチョー簡単だから!25万くらいあれば誰でもできますよ。
個人だと舐められるし搾取されたくないならコレするしかない
URLリンク(www.youtube.com)
【与沢翼】起業するよりサラリーマンで成功する方が難しいですよ。
年収3000万くらいなら会社作って自分でやっちゃった方が早いです
URLリンク(www.youtube.com)
【堀江貴文】サラリーマンの無駄な仕組みと人生の消耗…もう辞めれば?
URLリンク(www.youtube.com)
【落合陽一&ホリエモン】会社に全てを奪われる!特別なメリットがない限り
組織に自分の手柄を全て取られてしまうだけ
URLリンク(www.youtube.com)
【与沢翼】起業は怖いとか言うバカに伝えたい「サラリーマンの方がリスクあります」
URLリンク(www.youtube.com)

694:デフォルトの名無しさん
20/04/06 10:04:22.06 o3kGovlh.net
GCPとGASは別物
GCP使っててもGASは使わん事のほうが多い、逆も同じ

695:デフォルトの名無しさん
20/04/07 00:19:15.67 yujFP2M7.net
GASでTwitterbot連動して投稿とかもうわけわかんねえ~

696:デフォルトの名無しさん
20/04/07 01:50:45 JEfC632I.net
>>695
GASでInstagram連携はめんどうだけど、Twitter連携は楽だろ

697:デフォルトの名無しさん
20/04/07 03:46:14.96 yujFP2M7.net
何故かツイートコメントに改行コード入れても改行されないし投稿時間は毎回変える感じだったら、改行なんてツイッターの中で何が改行コードなのかわからねえし参考になる記事見て同じコードで解決にならなかったわ

698:デフォルトの名無しさん
20/04/07 08:11:25 d1kIoLlr.net
>>697
TwitterのTweetで渡す文字は一般的な改行コードしか存在しない
特別なものなんて使われてないから単純に文字列操作できてないだけかと

699:デフォルトの名無しさん
20/04/07 12:51:23 yujFP2M7.net
>>698
なるほど、\nで改行したいって言ってたけど理論上無理だったのか

700:デフォルトの名無しさん
20/04/07 13:31:44.40 fttEuirm.net
馬鹿には無理

701:デフォルトの名無しさん
20/04/07 17:48:04.87 ivfSfUTD.net
改行コードは、
Windows なら、\r\n
Linux なら、\n
HTML なら、br タグ。<br>

702:デフォルトの名無しさん
20/04/08 07:37:08.96 lp3B4EHz.net
GASはJavaScript使えるからVBより好きなんだけど、スマホで編集・実行出来ないのが辛い

703:デフォルトの名無しさん
20/04/08 11:07:24 yTKDGYFG.net
定期的に居るけど、そこまでスマホでプログラムを編集実行するか?
プログラム書くのにスマホでとか効率悪すぎだろ

704:デフォルトの名無しさん
20/04/08 12:59:45 pfSjPaup.net
VBAと比べてどうですか?

細かい事やろうとするとやはりVBAじゃないとできないかな~と思ってます。
ただ、利用者環境にOfficeのインストールの手間がかからない事を考えると
今後はGoogleスプレッドシートが一番なのかな

705:デフォルトの名無しさん
20/04/08 13:04:44 lWfV0IAd.net
VBAは蕁麻疹出るけど
GASは掻いてて気持ち良い

だがどんな場合でもGASが勝ってるかと言えばそうでもない

706:デフォルトの名無しさん
20/04/08 14:07:32.20 pfSjPaup.net
>>705
JavaScriptは慣れてますが
GASは初めてです。
おすすめの学習サイトがあったら教えてください。
インストールの手間が要らないので今後は、Googleスプレッドシートが覇権をとると思います。

707:デフォルトの名無しさん
20/04/08 20:32:13.89 lp3B4EHz.net
>>703
「プログラム」レベルの編集は流石に誰も望まないだろ
拷問だぞw
ちょっと出先でスクリプトの修正が出来ればいいんだよ
そしてスマホでスクリプトの編集が出来ない=何かあった時に対応出来ないからって理由なのか、スマホでマクロが動かないのは普通に不便じゃない?

708:デフォルトの名無しさん
20/04/10 20:01:31.97 GEPNEjLB.net
>>706
スプレッドシートとの連携でGAS使いたいならやりたい事次第で覚え方変わるかと
V8に対応したいなら本家リファレンス1択
巷に出回ってるのは旧バージョンでの解説
GASはJavaScriptより使えるオブジェクトが絞られてたり構文の書き方が微妙に違ったりするから、変に嵌らないためにはどっち選んでも本家リファレンスは読むべき

709:デフォルトの名無しさん
20/04/10 21:37:15.67 oBjEAOlb.net
>>708
> 構文の書き方が微妙に違ったりする
これマジですか?

710:デフォルトの名無しさん
20/04/10 22:41:48.79 LG9l2UEQ.net
何で微妙に違う必要があるんだろうな。
VBAとVBSもそう。
微妙に違うことに何のメリットがあるのか。

711:デフォルトの名無しさん
20/04/11 00:39:48.95 zOl1Pfip.net
>>708
ありがとうございます。
VBAと比べる出来る事は限られて来るとは思いますが
やはり便利なので地道に学習していきます。

712:デフォルトの名無しさん
20/04/11 07:35:40 xPITD/62.net
>>710
VBAはVB6派生でVBSとはもともと設計から違うから、その2つは比較するもんではない

713:デフォルトの名無しさん
20/04/11 08:39:59 BbiRDQqi.net
設計を分ける必要があったの?
完全に同じか、全然違うならわかるが、
8割くらい似せるって何の意味があるんだろう。

714:デフォルトの名無しさん
20/04/11 10:18:26.09 04DXL3Db.net
質問 gasでpwa作れますか?アイコンとかどうすればいいの?sw.jsは?

715:デフォルトの名無しさん
20/04/12 02:51:36 eC/oIIb+.net
>>714
PWAは簡単にできる
アイコンなんかは設定から好きにできる
sw.jsも使える

716:デフォルトの名無しさん
20/05/11 18:01:42 WhXpohRR.net
Google Formで条件分岐した先の選択肢をSpread Sheetから読み込んでFormを自動作成することってできます?
できそうなら方法を教えていただきたいです

具体的には設問1はプルダウンで47都道府県を回答させてそれに応じて設問2は分岐
設問2は東京の人なら東京に関しての設問をSpread Sheetから読み込ませて作成するイメージです

717:デフォルトの名無しさん
20/05/11 18:16:31 MhpqGE2N.net
OK
やるがよい

718:デフォルトの名無しさん
20/06/16 21:15:21 72JD20DA.net
google drive で、あるフォルダの中に同じ名前のサブフォルダが沢山ある場合にそれらを結合してくれるスクリプトを作りたいんですが、参考になる記事などありませんでしょうか?

サブフォルダa
サブフォルダa
サブフォルダa
サブフォルダb
サブフォルダb



サブフォルダa
サブフォルダb

にしたいです。サブフォルダたちの中身は消さずに移動させたいです。

719:デフォルトの名無しさん
20/06/17 03:30:26.35 9RQxAjph.net
>>718
URLリンク(stackoverflow.com)

720:デフォルトの名無しさん
20/06/17 03:35:08.78 H0Dcbe9T.net
1つのフォルダ内に、同じ名前のサブフォルダが2つ以上作れるの?
そんなファイルシステムを見た事がない

721:デフォルトの名無しさん
20/06/17 04:34:34.17 9RQxAjph.net
>>720
ラベルみたいな感じだから、フォルダ名もファイル名も重複可能なのよ
1つのファイルを(シンボリックリンクではなく)複数フォルダに格納したりもできるので、普通のファイルシステム感覚で使うと戸惑うことがある

722:デフォルトの名無しさん
20/06/17 09:21:58.91 GES6ctGC.net
フォルダ名もファイル名も当てに出来ない
頼りになるのはIDだけ
しかもIDには階層構造が無いω

723:デフォルトの名無しさん
20/06/17 16:52:03.32 EftflnE3.net
>>719
どストライクな回答ありがとうございます。
私がやりたいことそのもののようなので、
後ほどじっくり読んでトライしてみます。

724:デフォルトの名無しさん
20/06/22 15:30:25.53 uOpuzf64.net
>>718 です
毎月同じ名前のフォルダをGoogleドライブにアップロードすると、同じ名前のフォルダが2つずつできてしまい困っていたため、このような質問に至りました。
このスクリプトを作って実験してみようも思い、
同じ名前のフォルダを複数アップロードしようとすると、「更新しますか?」というメッセージが出てきて、「更新」を選ぶと、重複なくファイルやフォルダがアップロードされました。
したがってスクリプトは不要になってしまいました。
私の記憶だと以前は特に尋ねられることもなく、同じ名前のフォルダやファイルが二重に出来てしまっていた気がするのですが、、、、改善されたんですかね?

725:デフォルトの名無しさん
20/07/01 13:06:41.87 gceVcA/H.net
Googleフォームの回答スプレッドシートで、回答上限数を設けたいです。
function myFunction() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
var value = sheet.getRange("N2").getValue();
if(value >= 4) {
form.setAcceptingResponses(false);
}
}
N2にSUMIFでの計算結果を入れています。
上記スクリプトでif(value >= 4) { でエラーが出てしまいます。
どうしたらSUMIFの結果であるN2が「4」以上になったらフォームを閉じることが出来るのでしょうか?

726:デフォルトの名無しさん
20/07/01 13:10:17.98 IfUrt5hg.net
parseint

727:デフォルトの名無しさん
20/07/08 18:10:45.46 B6DwYS1M.net
spreadsheetで、セルの罫線の設定有無を取得したいのですが、
setBorder()はあってもgetBorder()が見当たりません
罫線の有無を取得する方法は何かありませんか

728:蟻人間
20/07/08 19:08:08.66 wtc6YQgJ.net
>>727
簡単じゃないようだ。
URLリンク(stackoverflow.com)
事前にSheets APIを有効にする必要がある。

729:デフォルトの名無しさん
20/07/09 13:54:25.74 eUqS/uTt.net
>>728
ありがとうございます!
英語は不得手ですが、読みながら試してみたいと思います

730:デフォルトの名無しさん
20/07/23 00:44:11.36 9dNzv7wt.net
GASを今日知ったレベルですが
複数1000件程度のpdfファイルがあります。
そのタイトルを一気に1つのスプレッドシートに入れることはできますか?
可能であればそのフォルダの階層別のタイトルも入るのがベストですが、難しければファイルにタイトルのみで充分です。
よろしくお願いいたします。

731:デフォルトの名無しさん
20/07/23 00:44:34.10 9dNzv7wt.net
ファイルはもちろんGoogleドライブに入っています。

732:デフォルトの名無しさん
20/07/23 00:45:59.77 4rdlbzE6.net
プロセスの秒数制限に引っかかるとかあったな
1000件くらいなら問題無いか

733:デフォルトの名無しさん
20/07/23 03:09:29.37 8onqYysW.net
ファイル名はgasで取得するよりローカルで取得するのが楽なのでは

734:デフォルトの名無しさん
20/07/23 08:38:50.13 R7OYz0iq.net
ありがとうございます。ローカルというとWindows側での操作ですね。調べてみます。
他にもGoogleフォームでタイトルが違うだけのものを100くらい作らないといけません。
質問ばかりですみませんこの件で消えますので

735:デフォルトの名無しさん
20/08/24 04:01:35.49 ZBsYaTP4R
デキる人ほどフリーランス化する?★働き方改革
URLリンク(www.youtube.com)
年収890万円以下は社会のお荷物★騙される労働者
URLリンク(www.youtube.com)
騙されたくなかったら勉強しろ★他人のルールは損をする
URLリンク(www.youtube.com)
底辺の99%は一生底辺★10年後が見えない同僚たち
URLリンク(www.youtube.com)
稼ぎたければ働くな★4千万円ぽっちも稼げないのはなぜ?
URLリンク(www.youtube.com)
サラリーマン思考では儲からない理由
URLリンク(www.youtube.com)

736:デフォルトの名無しさん
20/09/26 16:10:20.48 PfG/B09Z.net
GASの開発環境を英語にするのは、Googleアカウントの言語を変更する以外に方法はありませんか?
目的はExceptionなどのエラーを英語で出力してほしいんです。
今日はプロパティの設定でバグが出ているようなんですが、以下のように日本語だと本来の意味とはニュアンスが異なりますし、IssueTrackerで「Data storag error」検索したらすでに報告されているのが分かったので余計な問題判別をせずに済みます。
日本語「データの保存容量エラー」
英語「Data storage error」

737:デフォルトの名無しさん
20/10/23 18:22:51.85 bYAKNzy9.net
gmailにおいて、添付を外して転送ということって可能でしょうか?
調べてみた所添付の付け方ばかりが出てきてしまい...

738:LINE-LaBot
20/11/17 22:09:42.09 oYeoYLE+.net
Google Apps Script とLINE Messaging APIでLINE BOTを作ってます。
よかったらどうぞ、スクリプト配布中
URLリンク(linelabot.info)

739:デフォルトの名無しさん
20/11/28 17:03:40.23 p5SSQZH6Q
みずほが週休3日・4日を導入、副業もオッケーに!ただし給料は80%、60%に下がるが、あなたならどうする?
URLリンク(www.excite.co.jp)
みずほFG 週休3~4日制導入へ 新型コロナで働き方見直し
URLリンク(www3.nhk.or.jp)
副業OK時代!初心者に人気の副業を試してみて…メリット・デメリットとは
URLリンク(news.yahoo.co.jp)
「労働時間の見直し」に先鞭をつけた みずほフィナンシャルグループ
URLリンク(blogos.com)
給料ダウンの危機を副業でカバーしたい…副業している人はどんな仕事でいくら稼いでいるの?
URLリンク(news.yahoo.co.jp)
副業を会社に報告しない理由TOP3、3位会社が禁止している、2位告知されていない、1位は?
URLリンク(dime.jp)
副業年収1億超のmotoさんに聞いた!「本業」で成果を上げて自分の市場価値を高める方法
URLリンク(ddnavi.com)
フリーランス向け報酬即日払いサービス『先払い』が大規模リニューアルし正式リリース
URLリンク(prtimes.jp)
国内最?級!副業・フリーランスエンジニアに特化した、仕事探しの求?アプリ
『doocyJob(ドーシージョブ)』、iOS版アプリを2020年10月6日(?)リリース
URLリンク(prtimes.jp)

740:デフォルトの名無しさん
21/01/21 19:41:41.78 .net
google doumentで画像から文字起こしとか簡単にできそうですね
他にいい方法があるのかもしれませんが

741:デフォルトの名無しさん
21/01/28 22:05:48.39 2E/cb6LF.net
共有ドライブのファイルをマイドライブにコピーするにはどうすればいいですか?
ずっと前は右クリック→コピーを作成 で出来ていた気がするのですが、
何故か今はショートカットが作成されてしまい、コピーが出来ないようです

742:デフォルトの名無しさん
21/02/17 22:04:25.41 yF2gYpL6/
「コンサル・IT業界」を俺が全解説する やりたい事ない就活生は全員集合!
URLリンク(www.youtube.com)
努力不足でSESに転職
URLリンク(www.youtube.com)
【転職】日系大手企業から外資系企業への転職は困難な道だ
URLリンク(www.youtube.com)
【就活】非体育会系はどう戦うべきなのか?
URLリンク(www.youtube.com)
「圧倒的努力」と言いたがる奴www
URLリンク(www.youtube.com)

743:デフォルトの名無しさん
21/02/26 14:16:01.31 uwtwTRSf.net
GAS触りたての赤ちゃんですが
スプレッドシートからキーワード検索してHTMLに出力しようと
少し作ってみたらクッソ時間がかかるんですけどそういう使い方は向いてないんですかね?
プログラムの書き方が悪いだけなら良いのですが
本ちゃんのスプレッドシートは40000行くらいになります

744:デフォルトの名無しさん
21/02/26 18:51:11.59 yh0R3Tzg.net
スクリプトの実行時間が何十秒かを過ぎると処理を終了する仕様があったような気がする

745:デフォルトの名無しさん
21/02/26 19:15:51.46 X0cz5fa1.net
>>743
そんなかからんと思うけどその時間とキーワードと各セルの文字数までわからんとなんとも言えん

746:デフォルトの名無しさん
21/02/26 19:19:22.27 gv3Dvayc.net
どなたか>>741をお願いします

747:デフォルトの名無しさん
21/02/26 19:22:12.53 yh0R3Tzg.net
>>741
スレ違い

748:デフォルトの名無しさん
21/02/26 19:50:13.87 iwep5/hd.net
>>743
スプレッドシートのアクセス(呼び出し)の「回数」が多いとめちゃ遅くなるよ
なるべく高速化とかの解説サイトとかあるから参考にしてみたら?

749:デフォルトの名無しさん
21/03/01 10:12:40.06 vgd9986a.net
いったん全部読み込んで処理すればいいかと。
本番と同規模のダミーデータでテスト忘れず。

750:デフォルトの名無しさん
21/03/01 10:25:00.27 rO9qQ6pi.net
>>748
HTML側でスプレッドシート開いて二次元配列に放り込んでからテーブルに出力してんですけど実用に耐えないくらい時間かかります。
functionで二次元配列に入れるべきなのかな
配列の受け渡しとかいまいちわかんない

751:デフォルトの名無しさん
21/03/01 12:44:15.12 V9NClIIm.net
コード載せたら添削してあげるよ

752:デフォルトの名無しさん
21/03/01 17:03:50.84 PbAWyOdW.net
APIを使った方がいいかもね

753:デフォルトの名無しさん
21/03/03 18:08:09.09 /zPRpQHx.net
Browser.msgBox('hoge');
var ui = SpreadsheetApp.getUi();
ui.alert('hoge');
どっちもAndroidスプレッドシートアプリでは動かず一時停止状態のままになってしまいます
どうすれば回避できますかね?
処理が終わるまでshowModalDialogで操作させないようにする処理も泥アプリでは動かなくて困っています…

754:デフォルトの名無しさん
21/03/03 21:30:50.23 hlvdZ6yU.net
>>753
スマホでは色々制限があって無理です

755:デフォルトの名無しさん
21/03/05 11:04:43.54 wmkFGJMv.net
詳しい方助けてください。
当方結婚式のプロフィールムービーを制作しています。
今後、Googleフォームを使って、テロップ入力、写真をお客様自身でアップロードする仕組みを作れと言われて困っています。
問題となっているのが、フォームでの回答後、アップロードした写真がファイル名しかわからない点です。
そこで、アップロードした写真ファイルを一覧化し、PDF化したうえでお客様へ自動返信出来ないかと考えてみました。
GASを使ってなんとか・・と思いましたが、ネットを探してみても方法が見つからず、途方にくれています。
どなたかお力添えをお願いできないでしょうか?

756:デフォルトの名無しさん
21/03/05 16:48:28.45 tfvc3NNv.net
スプレッドシートに出力してそれをpdf化すれば?

757:デフォルトの名無しさん
21/03/06 02:12:47.82 D36VxduV.net
何でフォームじゃなきゃ駄目なのか分からんが、
そんな指示を出すような奴は、
フォームとフォームっぽい何かがあったとしても、違いなんか分かりゃしないぞ。

758:デフォルトの名無しさん
21/03/06 17:23:31.98 eKT9Xq9d.net
>>755
できるけど、フォームじゃ何枚も写真をアップさせるのキツそう
Googleフォトかドライブにあらかじめアップさせて
HtmlServiceで画面作ったほうがいいんじゃないの?

759:デフォルトの名無しさん
21/04/06 23:13:17.50 ao+gKvtS.net
scrapingのライブラリでParser とcheeriogs以外で良いのあります?
cheerioよさそうだけどjquery知ってる前提でドキュメントが無くてjquery知らないからきつい。メソッドとかjqueryのやつ使えるの?

760:デフォルトの名無しさん
21/04/13 17:26:12.26 o3TSl1rF.net
自宅からスプレッドシートのdoPostに1分毎にテキストを送ってセルに書き込むだけの実験中なのですが、
実行数の所からログを確認すると2000回に1回くらいステータスが「失敗しました」になっています。
自宅の記録ではステータスコードは200が返ってきています。
doPost内をtry~catchにいれてエラーメッセージを書き込もうとしましたが、何も書き込まれていませんでした。
doPostが起動していない…?
なぜ失敗しているか分かる方いませんか。

761:デフォルトの名無しさん
21/04/13 20:44:13.01 YlnYj74B.net
>>755
自作フォームは難しい。
様々なページを作らないといけない
要するにファイルアップローダー、
TeraTerm, Putty みたいな画面が欲しいのでしょ
各顧客用のフォルダを作って、そこへアップロードするのでしょ
自作するのはキツイ。
何かのサービスを使うべき

762:デフォルトの名無しさん
21/04/13 21:04:50.52 YlnYj74B.net
>>759
jQuery で、スクレイピングするだけなら、
要素の取得、HTML・Text の所だけ読めばよい。
全部の文書を、読む必要はない
let abc = $( '#abc' ).html( );
console.log( abc );
$( 'CSS セレクター' ) を書けば、jQuery オブジェクトが取得できる。
jQuery( 'CSS セレクター' )でも良い
これを実行してみれば?
console.log( window.$ );
console.log( window.jQuery );

763:デフォルトの名無しさん
21/04/13 21:11:20.27 YlnYj74B.net
>>760
doPost は同期処理なのか?
非同期処理なら、コンテキストが異なるから、
try~catch で捕捉できないのでは?
async/await なら、捕捉できるのか?

764:デフォルトの名無しさん
21/04/13 21:28:22.61 c7k7neBn.net
なんでjsの話してんの

765:デフォルトの名無しさん
21/04/22 01:56:49.59 zbsSdEd/.net
GASからWindows APIを介してWindowsアプリに指示してWindowsアプリの自動操縦て出来ます?
これのスプレッドシート+GAS版を作りたいんですが。
URLリンク(youtu.be)

766:デフォルトの名無しさん
21/04/22 21:51:19.63 IEn85Cov.net
スプレッドシートのrange.getValues()のreturnで日付が勝手にDate object に変換キャストされるのいらんのだけど
文字列にできますか

767:デフォルトの名無しさん
21/04/22 22:12:53.54 Bcy1rpDS.net
>>766
Utilities.formatDateで変換してください

768:デフォルトの名無しさん
21/04/23 01:28:15.06 KvwPc6n1.net
やっぱ自分でstringに戻すしかないのですね
どうも

769:デフォルトの名無しさん
21/04/23 01:36:47.27 Mr1QFRKK.net
>>765
できない
GASはローカルで動いてるわけじゃないからね

770:デフォルトの名無しさん
21/05/19 06:26:47.48 +jFbNy+f.net
トリガーを使って、"Sheet1"というシートのA1セルが変更された時のみ他の処理をさせたいのですが、
どのように掛けば良いでしょうか
SpreadsheetApp.getActive();
からシート名も取れると思いますが、引数からオブジェクトを指定するなどはできないでしょうか
VBAで書くと以下のような感じです
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = "Sheet1" Then
Debug.Print "sheet1が変更されました"
End If
End Sub

771:デフォルトの名無しさん
21/05/19 09:54:24.41 iHfxsQ4v.net
>>770
function onEdit( e ) {
if (e.source.getSheetByName() === "Sheet1"
&& e.range.getRow() === 1
&& e.range.getColumn() === 1) {
//なんか処理
}
}

772:デフォルトの名無しさん
21/05/19 21:19:17.86 +jFbNy+f.net
>>771
おっほおおおおおありがとうございますうううううう!!!!
めっちゃ助かりました、この一歩があればあとは 超特急で勉強できそうです、ほんま助かりました

773:デフォルトの名無しさん
21/05/25 09:12:15.05 7Zlc4Jvy.net
function pswV1(contract){
var url = "URLリンク(api.pancakeswap.info) + contract;
var content = UrlFetchApp.fetch(url).getContentText("UTF-8");
var obj = JSON.parse(content);
return Number(obj.data.price);
}
この関数作って使ってるんだけど、
定期的に再実行させるにはどうしたら良いのかな?
可能なら1分に1回再実行させたい。

774:デフォルトの名無しさん
21/05/25 12:30:25.88 UFi3lRqC.net
トリガー使えばええやん

775:デフォルトの名無しさん
21/05/25 14:37:01.15 7Zlc4Jvy.net
>>774
セル内で引数付けて使用してる関数をトリガーで定期実行するにはどうするの?
そういうサンプルがみつからない。

776:766
21/05/25 15:16:25.01 7Zlc4Jvy.net
とりあえずトリガー設定してみたけど最短1時間しかないね。
取得してるのは仮想通貨のレートだから最長でも5分程度にはしておきたい。

777:766
21/05/25 15:20:50.17 7Zlc4Jvy.net
ごめんなさい。
1分ありました。

778:766
21/05/25 15:23:17.48 7Zlc4Jvy.net
何度もすまん。
無効な引数でエラーになる。
やはりセル内で使用する関数にトリガーは使えないのでは?

779:デフォルトの名無しさん
21/05/25 19:19:13.82 bqN1UUYu.net
そのセルの情報も書け

780:766
21/05/25 19:47:34.24 7Zlc4Jvy.net
セル内は
=pswV1("0x27327672d1dc51f4dc58c9f413e1fa7e7ad8245e")
としています。
いまのところロード時とタブ切り替え時の任意リロード時のみ実行されます。

781:デフォルトの名無しさん
21/05/25 20:07:56.28 bqN1UUYu.net
>>780
それはトリガーじゃ無理だねぇ
その関数使うセルって複数ある?

782:766
21/05/25 20:25:01.51 7Zlc4Jvy.net
>>781
複数あります。
いまのところ5個くらいですが日々変動します。
トリガーがダメならセル内から呼び出す関数からは引数とセル位置だけグローバル配列に入れておいて
トリガーから呼んだ関数でまとめて通信させる方法もあるのかなと考え始めてます。
まだ実装してないので動くかわかりませんが。

783:デフォルトの名無しさん
21/05/25 21:36:08.76 FW9zXdEp.net
>>782
それか1分おきにどこでもいいからセル書き換えるようにすれば勝手に再計算されるのでは

784:デフォルトの名無しさん
21/06/03 05:38:31.48 B8Ey28oS.net
GASでPhantom JS cloudで動的なページをスクレイピングする時に、どうやらページが重くて表示に時間がかかるため取得できない値があります
すでに表示されたサイトに対してjQueryで取得したりPythonとseleniumを使って
driver.get(url)
time.sleep(30)
html = driver.page_source
みたいに待機時間を作ればちゃんと取得できるので値は確かに存在しており、GASでうまくいかないのは待機時間がないせいだと思います
Phantom JS cloudでも待機時間を入れたいのですが可能でしょうか?どこに入れればよいのでしょうか?

785:デフォルトの名無しさん
21/06/07 12:08:43.93 tyfu3spt.net
フォームの選択肢ラジオボタンA,B,Cの
それぞれにバラバラの回答数上限を設定する方法を教えてください。さらにラジオボタン横に残数があるとなお嬉しい

786:デフォルトの名無しさん
21/06/07 13:30:55.90 pl6618+T.net
>>784
GAS は知らないけど、
Ruby, Selenium Webdriver, Nokogiri では、
要素の検索の timeout を長くするとか、
driver.manage.timeouts.implicit_wait = 30
それか、sleep するとか、
driver.navigate.to url
sleep 30
doc = Nokogiri::HTML( driver.page_source )

787:デフォルトの名無しさん
21/06/10 08:31:00.19 rZOQ7XKm.net
機能の23時にはちゃんと動いていたスクリプトが、今朝試してみたらエラーが出てしまってる
function doPost(e) {
 const getdata = JSON.parse(e.postData.getDataAsString());
//略
}
という関数を使ってるスクリプトがいくつかあるんだけど、全部
TypeError: e.postData.getDataAsString is not a function
というエラーが出るようになってしまった
同じ人いる?

788:780
21/06/10 08:31:48.52 rZOQ7XKm.net
>>787
誤字失礼。昨日の23時です。

789:デフォルトの名無しさん
21/06/11 01:04:22.78 W2MDAmi/.net
>>787だけど、同じ問題を報告してる人がいた
そして今は治ってる
URLリンク(issuetracker.google.com)

790:デフォルトの名無しさん
21/06/12 21:54:06.58 yi8Rxd+W.net
見当はずれな質問も可能性高いんですが,
GASでうんこした時間をカレンダー登録するだけのスクリプト書いて,
ウェブアプリとしてデプロイしてAndroidのchromeのショートカット作って
それをデスクトップに保存して,そのアイコンをクリックすれば自分の
Googleカレンダーにうんこした時間登録できるとこまではできたんですが,
webショートカットなので当然chromeが起動してエラー画面が表示されちゃう
これをクリックしたらwebページも出さずに処理させる方法ってあるんでしょうか?

791:デフォルトの名無しさん
21/06/13 00:34:56.20 drIN04VN.net
>>790
claspで実行すれば?
URLリンク(github.com)
URLリンク(takuya-1st.hatenablog.jp)
Androidってのがスマホから実行するって意味ならゴメンだけど

792:デフォルトの名無しさん
21/06/13 00:57:33.48 TPT9gOWH.net
>>791
ありがとうございます.
やっぱりそういう目的のものではないんですなあ……
スマホは常時持ち歩いているのでうんこするときに便所でワンクリックで
うんこした時刻を記録したいという目的なのでスマホから実行させたいんですよね
やっぱりアプリ作るしかないのかしら(´・ω・`)

793:デフォルトの名無しさん
21/06/13 19:42:39.72 lkc6O7cF.net
>>792
TermuxのCUIからリクエスト送れないかね

794:デフォルトの名無しさん
21/06/13 22:42:32.09 TPT9gOWH.net
>>793
Termux 上で >>791が教えてくれたclaspをインストールして……
って事ですかね.
現状でもブラウザ開くけど目的の「ワンクリックでうんこした時間を記録」
は叶ってるので,まあうんこした時間記録するだけなのにAndroid上でLinux
環境セットアップしたくないかなって気はする.
……Termuxで実行するときってその実行コマンドをショートカットにして
デスクトップにおけますん?

795:デフォルトの名無しさん
21/06/14 01:54:11.31 btOps/6G.net
>>794
bashで書いたのをctrl + rとかで呼び出せばいいんちゃう

796:デフォルトの名無しさん
21/06/14 14:10:38.65 G+aGjkZp.net
>>792
iPhoneだと↓みたいな感じでできるみたいだから
URLリンク(ntwmachine.com)
Androidでも↓みたいなアプリでできそうじゃない?
HTTP Request Shortcuts
URLリンク(play.google.com)

797:デフォルトの名無しさん
21/06/14 17:48:55.22 WNlBtQy0.net
>>794
TaskerとTermux用Taskerプラグイン買えばショートカットとか色々なトリガーでコマンド実行できる

798:デフォルトの名無しさん
21/06/14 21:57:18.79 m506649G.net
>>790のやりたいこととやってみたことを100%理解してるわけじゃないけど、詳しくないなりに考えたのが、自分ならうんこした時間をカレンダーに記録するスクリプトと連携したスプレッドシートがあったとして、IFTTTでボタンウィジェットを押したらそのスプレッドシートに何でもいいから行が追加されるようにして、うんこ記録関数のトリガーはスプレッドシートが更新された時に発動するようにする

799:デフォルトの名無しさん
21/06/15 16:38:21.05 0GdnjUqP.net
>>790
キチンとhtml出力して、html内にウインドウ閉じるJavaScriptを入れるってのはダメですか?

800:デフォルトの名無しさん
21/06/15 22:38:27.71 Pikc/bWs.net
うわー皆さんいろいろアイディアありがとうございます.
>>799
試してみたんですがAndroid環境だと画面閉じないですね…
>>798
単純にうんこした時間をGoogleカレンダーに登録したいだけなんすよね…
なのでスプレッドシートとかは使いたくなくて,コードは
var date = new Date();
CalendarApp.getDefaultCalendar().createEvent("💩",date , date)
こんな感じで十分なので,できればこれをandroid上でアイコンに割り当てて一発実行したいのです.
>>795
ターミナル開く手間は避けたくて……
>>796
>>797
このどっちかででけそうな気がしてきたのでちょっと試してみます!

801:デフォルトの名無しさん
21/06/15 22:54:32.69 Jy0S46aa.net
絵文字かわヨ

802:デフォルトの名無しさん
21/07/13 10:23:44.28 CjZmk7C6.net
共有しているスプレッドシートの
「編集者は権限を変更して共有できます」のチェックボックスを外す(無効にする)
ソースコードを教えてください
setShareableByEditors(shareable) を使えばできるようなのですが
使い方が分かりません
よろしくお願いいたしますm(_ _)m

803:デフォルトの名無しさん
21/07/13 10:54:14.06 Vr6vzxIM.net
>>802
その関数の引数をfalseにするだけやろ

804:デフォルトの名無しさん
21/07/14 18:54:15.93 GFXnTS4Q.net
グループ内で簡易なうpろだとして使いたいのですが、ファイルのアップロード、コメントが記入できて、
アップロード先のURLとコメントをスプレッドシートにリスト化してくにはどうしたらいいんでしょうか?
ファイルのアップロード、コメント記入してそれをスプレッドシートにリスト化、それぞれは出来たんですが組合わせると動作しません。
なにかサンプルになるようなページを教えていただけると助かります…

805:デフォルトの名無しさん
21/07/15 15:20:59.29 ygp86UHP.net
シートを作る
うpするGASを書く
アップロード先のURLとコメントをスプレッドシートにリスト化
>ファイルのアップロード、コメント記入してそれをスプレッドシートにリスト化、それぞれは出来たんですが
もっと具体的に
出来ればソースとか晒すべき

806:デフォルトの名無しさん
21/07/15 21:16:55.83 gFOIdhYR.net
>>800
>>795
>ターミナルを開く手間は、避けたい
どこかに、ショートカットを作れないの?
例えば、Windows ならデスクトップにショートカットを作って、
リンク先に、コマンドプロンプトを起動して、
Ruby でスクリプトファイルを実行する
C:\Windows\System32\cmd@.exe /k "ruby C:/Users/Owner/Documents/script.rb"
注意。書き込めないので、間に@を入れました

807:デフォルトの名無しさん
21/07/18 21:16:48.01 hteKw5EV.net
スプレッドシートのトリガー
onSelectionChangeの挙動ホント悪すぎる
ここらへんVBAと比べてダメ過ぎだな

808:デフォルトの名無しさん
21/07/29 06:32:21.24 RJZsh/tv.net
スプレッドシートのグラフもひどいよ。
setOption(‘vAxes.1.title’,’hoge’)とかも

809:デフォルトの名無しさん
21/08/01 21:02:43.56 zu2woDem.net
スプレッドシートとhtmlserviceで簡単なwebアプリ作ろうと思ったのですが、ユーザー毎のデータも扱う場合、どうやるのがいいんでしょうか。
アプリの実行者を「ログインしているユーザー」にすると、スプレッドシートへのアクセス件が必要だから、他の人のデータにアクセスされそうで怖い。
だからといって、実行者を「自分」(開発者)にすると、操作してるユーザーが誰なのかを判別できないし・・。

810:デフォルトの名無しさん
21/08/05 11:42:49.43 eMHroxtV.net
>>809
ユーザーごとのデータってどんなの?
スプレッドシートの1行で表現できないもの?

811:デフォルトの名無しさん
21/08/08 03:08:43.28 JLttzwiP.net
>>810
user | name | score
aaa@gmail.com | taro | 85
bbb@gmail.com | jiro | 75
みたいにスプレッドシートをDBとして使うWEBアプリの場合、
アプリを「自分(開発者)」として実行すると、ログインユーザーのemailが取得できないから、スプレッドシートから当該ユーザーのデータを取得できない
「アクセスしているユーザー」として実行すれば、ログインユーザーのemailが取得できるけど、このスプレッドシートへのアクセス権を与えないといけないので、他のユーザーの情報も全て見れてしまう
ので、普通はどうするものなのかが知りたいです。(有償のworkspaceは使わない前提です)

812:デフォルトの名無しさん
21/08/10 05:15:26.61 MjVqGGgl.net
>>811
なるほどね
普通がどうだかわからないけど
メアド自動収集をあきらめてユーザーに入力させるか
スプレッドシートをDBにするのをやめてCloudSQLを使う
かなぁ

813:デフォルトの名無しさん
21/08/10 11:13:59.22 9wi/dlAk.net
GAS には、ユーザー認証機能があるの?
認証は、Firebase Authentication じゃないの?

814:デフォルトの名無しさん
21/08/19 04:51:29.28 l+iKsjPF.net
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const pivotSheet = spreadsheet.getSheetByName('a');
const pivotTables = pivotSheet.getPivotTables();
pivotTables.forEach(pivotTable => {
const pivotValues = pivotTable.getPivotValues();
pivotValues.forEach(pivotValue => Logger.log(pivotValue));
});
こんなかんじでpivotTablから値をとりたいのですが、ログとしては
pivotValueという値しか返ってこないのですが、なんででしょうか?
pivotValue.getValue() のようなことがしたいんです。具体的な数値が返ってくるような。

815:デフォルトの名無しさん
21/08/19 08:07:07.49 hKprbQAC.net
>>814
何も調べてないうえにやったこともないけと、文脈から察すると
Logger.log(pivotValue.getValue())
じゃない?

816:デフォルトの名無しさん
21/08/19 12:03:47.46 l+iKsjPF.net
>>815
getValue()は使えないみたいなんですよね、not a functionになって
getValueでしてみたらnullが帰ってきて謎...
ぐぐってもサンプルが出てこなくてまいりましたわ

817:デフォルトの名無しさん
21/08/19 13:20:16.21 JpyvyW0f.net
公式のリファレンス読みなさい

818:デフォルトの名無しさん
21/10/13 00:47:48.09 Qk99MJFD.net
>>811
Webアプリのコードで自分の分だけしかアクセスできないように書けばいいだけだろ?
それともクライアントから任意のコードをサーバ側で実行させられるわけなの?

819:デフォルトの名無しさん
21/10/13 01:39:22.36 sH5qc9+o.net
>>818
何言ってだ

820:デフォルトの名無しさん
21/10/17 20:46:12.87 Nd7q+jNJ.net
ピボットテーブルで出力したテーブルの特定の文字列のセルを非表示にしたいのですが
やり方が御座いましたらご教示お願いいたします
条件付き書式で一致すれば文字を白にするといった「見えなくする」ではなく
セルをコピーしてもコピーされない状態にしたいです
よろしくお願いいたします

821:デフォルトの名無しさん
21/11/01 23:15:46.54 Q50KTbzj.net
公式見てもわからなかったんですが、
新しいスプレッドシートを作る関数→できる
そのスプレッドシートに何か書き込む関数→できる
そのスプレッドシートのスクリプトエディタをいじってスクリプトを付ける関数→?
できるんでしょうか?

822:デフォルトの名無しさん
21/12/02 21:38:11.37 FXlnpm0p.net
>>821
多分できない
あらかじめコピー元テンプレート用のスプレッドシートを用意しておいて
スクリプトも仕込んでおけばいけるかなと思ったけど
実行権限の付与ができないから無理じゃね

823:デフォルトの名無しさん
21/12/18 23:17:06.97 a3T2SFZh.net
はじめまして。
質問ですが、GoogleスプレッドシートのGAS(Google Apps Script)で、
「計算結果のみ」を別のスプレッドシートへコピーする方法を教えてください。
var ss_copyFrom = SpreadsheetApp.openById('コピー元のシートID');
var ss_copyTo = SpreadsheetApp.getActiveSpreadsheet();
var sheet_copyFrom = ss_copyFrom.getSheetByName('シート名');
var sheet_copyTo = ss_copyTo.getSheetByName('別のスプレッドシートのシート名');
var copyValue = sheet_copyFrom.getRange('W3:W200').getValues();
sheet_copyTo.getRange('B4:B201').setValues(copyValue);
上記でコピーそのものはできていますが、表示されるのが
コピー元であるスプレッドシートに入力されている「=T4-U4-V4」の結果
(コピー先のT列、U列、V列には何も入っていないため、「1899/12/30」が表示されています)で、
本当に表示させたいのはコピー元のスプレッドシートで「=T4-U4-V4」が計算された結果の数値「1」なのです。
GASについてはド素人(今月から使い始めました)で、ネット検索で色々調べてみましたが、
これといった解決策がわからず、困り果てています。
何とかお知恵を貸していただけますよう、お願い致します。

824:デフォルトの名無しさん
21/12/19 02:11:05.33 TUb0vitt.net
>>823
単純にスプレッドシートの表示形式が数値か日付かって話じゃないの

825:デフォルトの名無しさん
21/12/19 11:32:13.88 RkNKFft4.net
>>824
その通りでした...ありがとうございます。
表示形式を数値に変えたら、ちゃんと「1」がでました。
こんな単純なことに気づけないとは...失礼しました。

826:デフォルトの名無しさん
21/12/20 12:14:27.96 ViJtvVZ6.net
スプレッドシートのメニューバー変わりましたよね?
拡張機能からスクリプト画面選ぶようになってる…
調べたら10月から順次変わってる…?今日気付いたんですが2ヶ月掛かって更新されたってことでしょうか?

827:デフォルトの名無しさん
21/12/20 14:36:16.49 Xy/RGdSX.net
うちのは10月末に変わってたよ。

828:デフォルトの名無しさん
22/01/15 18:08:24.36 OIci5frO.net
web版のエディタが使いにくい。
ファイル+のとこのペイン?っていうの?あれが邪魔で小さくしたくてデベロッパーコンソールでイジってるんだけどどのcss変えれば小さくできますか?

829:デフォルトの名無しさん
22/01/17 18:17:08.30 ymAJekA/.net
スライドからスクリプト開いてスクルプト書きました。
スライドからそのスクリプト実行したくて、onOpen()でスライド表示時の右サイドバーにスジュリプト起動ボタンを表示するようにしました。
ところが、スライド開いた時にこのonOpenが実行っされません。
トリガーに登録せよ!という情報もあったのですが、トリガー登録画面には、「スライドを開いた時」的なものは無く、
「カレンダーを開いた時」のようなものしかありませんでした。
スライドを開いた時に、スクリプト起動させるボタンのようなものを表示して、そこからスクチプトを起動したいです。
方法があれば教えてください。

830:822
22/01/18 10:50:27.27 Y4BAPieC.net
解決しました。下記に載ってました。
HURLリンク(myfunc.jp)

831:デフォルトの名無しさん
22/02/20 03:04:59.59 kcCfXnh0.net
指定した文字列Aと背景色の2条件で集計したいのですが、書き方を教えて下さい。
文字列Aだけ、背景色だけ、などはいくつか見つけられたのですが、組み合わせ方が分かりません…。

832:デフォルトの名無しさん
22/02/21 21:47:26.46 UKJTHoUK.net
URLリンク(script.google.com)
このページって何処からたどり着くんですか?
googleドライブとかから新規にスクリプトを作成するのは出来るんですけど
何処にも上記のリンクが無いです

833:デフォルトの名無しさん
22/02/28 14:47:01.29 QEzJwIFm.net
出来そうで出来ないというか検索してもやりかたが見つからなかったので
知ってたら助けて欲しい
【やりたいこと】
エクセルファイルをGASでスプレッドシートに変換してスプレッドシートにする
但しエクセルファイルの各シートのセルにはエクセル特有の文法で記載された計算式や関数がふんだんに使われているものとする
【ひっかかっていること】
単純にGASでDriveAppやDrive.Filesを用いてエクセルファイルをスプレッドシートに変換するだけだと
変換されたスプレッドシートのセルにはエクセルの特有の文法で記載された計算式や関数が移植されてきただけで
スプレッドシートではエクセル特有の文法で記載された計算式や関数は処理できないのでやりたいことが出来ない状態
なのでエクセルのセルに埋め込まれてる計算式で求められた計算値だけをスプレッドシートに移植したい

834:デフォルトの名無しさん
22/02/28 20:31:28.47 PjfLudyf.net
関数で計算されてるデータを全て数値などに置き換えた物をアップすれば簡単じゃね?
データとして貼り付ければ一瞬だしマクロ組めるでしょ。

835:デフォルトの名無しさん
22/03/01 18:33:50.02 VTA82jsu.net
そのエクセルが他から提出されてくるもので数百単位であるので
個々にそのマクロを仕込んだものを実行するというのは大変かなぁ
できればエクセルはそのままで一括で読み込んで
GASのなかでやっちゃいたい
無理げかなぁ

836:デフォルトの名無しさん
22/03/01 18:59:33.32 CkaReruZ.net
そういう後だしするからアドバイスするだけ無駄ってのが出てくるんだよね

837:デフォルトの名無しさん
22/03/02 20:59:04.21 CHjRcKIO.net
>>833
スプレッドシートでは処理できない、って言う時点でGASじゃ無理でしょ。
どうしてもやりたいなら、下記くらいしか思いつかない。
①その数式と同じ動きをする関数を自分でGASで実装する
②Winのタスクスケジューラとか使って、VBAでExcel文字列化するなりCSV出力するなりして、それをGASでスプレッドシート化する。GoogleドライブアプリでWinとドライブを同期する

838:デフォルトの名無しさん
22/03/02 21:59:04.64 vYgwEkZg.net
しょうがないから一つヒント
同じフォルダ、若しくは特定のフォルダに入ってるExcelのファイルを全て文字に変換して保存するマクロを組めばOK
何百あろうが一瞬
全てのブックの全てのシートへループでぐるぐる回すだけだから、そんなに難しくないよ

839:デフォルトの名無しさん
22/03/11 16:04:46.03 GfEhxdTj.net
GASのソースコード内でタイムゾーンを変更することはできるのだろうか?
GASのエディタにあるjsonに書いて指定するというのは見つけたが、それだとコード内でgoogleドライブから開いたスプレッドシートには適用されなかった
GASのエディタではTokyoにしてても開いたスプレッドシートはPacificになってる

840:デフォルトの名無しさん
22/03/11 21:23:44.78 gLuUS5Uy.net
それはスプレッドシート自体の設定いじる

841:デフォルトの名無しさん
22/03/11 21:27:52.87 gLuUS5Uy.net
もしくはGoogleアカウント設定のプロフィールのタイムゾーンいじると
それ以降作成したスプレッドシートはデフォルト変わってるはず

842:デフォルトの名無しさん
22/03/11 21:31:24.19 0mAcmeni.net
>>841
デマ回答やめろ😡

843:デフォルトの名無しさん
22/03/16 10:48:26.08 JIpzCEZ0.net
スプレッドシートの複数列を指定して二次元配列に入れる場合のやりかたはわかるんだけど
離れた二つの列を指定することって出来る?
range = Sheet.getRange("D2:E1000");
array1 =range.getValues();
Logger.log(array1);
例えばこれだとD列2行目からE列1000行目までの2列分のデータを二次元配列に格納されるけど
これをD列2行目からD列1000行目とN列2行目からN列1000行目のデータを二次元配列に入れたい
D列とE列は隣り合ってるけど
D列とN列は隣り合ってないからうまく実現できない

844:デフォルトの名無しさん
22/03/16 11:31:39.30 y8PMgdeo.net
Rangeも配列で指定すればいいんじゃね

845:デフォルトの名無しさん
22/03/28 04:13:33.54 XbT1Q7Sk.net
const files1 = DriveApp.getFolderById(folderId1).getFiles();
const files2 = DriveApp.getFolderById(folderId2).getFiles();
こんな感じで異なるフォルダに格納されてるファイルをgetFiles取得した場合
その結果のfiles1とfiles2を合体させてfiles3にするようなことってできる?
いまだとファイルの数だけ繰り返すっていうのでfiles1を回すループ処理とfiles2を回すループ処理という感じで見栄えが悪いから
2つをマージしたfiles3を回すループ処理って感じにしたい

846:デフォルトの名無しさん
22/03/28 09:02:53.32 /mas85k3.net
無理なのでループ処理部分をメソッド化するなりしてどうぞ

847:デフォルトの名無しさん
22/03/28 11:53:32.50 XbT1Q7Sk.net
えぇ~…
残念

848:デフォルトの名無しさん
22/03/31 12:20:31.27 A0O2N5qb.net
GASでセルの値を変更させて変更後の値を読み取ってって一連の処理をしたいんだけど
一連の処理が終わるまでシートに表示される値がリフレッシュされないらしく
処理としてはセルへ値を出力してるけど読み取る値が出力前の値になってる
強制的にシートに表示される値を最新にすることってできないの?

849:デフォルトの名無しさん
22/03/31 13:19:55.86 5pPwE+XM.net
コードを貼れ

850:デフォルトの名無しさん
22/04/01 06:42:07.95 68FipywF.net
setvalueで値をセルに入れるのってリアルタイム反映じゃなくて
スタックしてて処理が終わるみたいな切りがいいところで
まとめて反映する仕様じゃないのけ?
クラウドベースの実行だからサーバー側の負荷軽減のためだと聞いたが
コード云々でなんとかなるなら知りたい

851:デフォルトの名無しさん
22/04/08 13:56:00.62 PYg//+II.net
getValues()で取得したのはrangeで指定したのが1列分のデータであっても2次元配列になっちゃうけれど
getValues()の後ろに続けて.flat().filter(String).map(String) と付ければ1次元配列に変換できることを
ネット上で検索してたら見つけた
range = sheet.getRange("C2:C1000");
result = range.getValues().flat().filter(String).map(String);
実際に上記のようなコードで試したところ確かに1次元配列に変換はされてるけど
空白セルの要素が配列から消滅してしまってる
"A","B","","F","D"
上記のように要素数5個で3番目の要素が空欄の配列が欲しいのだが
"A","B","F","D"
上記のように空欄の要素が消滅して前詰めされた要素数4個になってしまってる
空白セルの要素も残したいんだけど、どうやったらいいのだろうか?

852:デフォルトの名無しさん
22/04/08 18:27:03.86 tiBN51P7.net
>>851
filter()とmap()要らなくない?

853:デフォルトの名無しさん
22/04/08 20:09:46.76 PYg//+II.net
>>852
そうなのかな
ここの記事を読んだんだけど
URLリンク(iwb.jp)

854:デフォルトの名無しさん
22/04/08 20:12:32.05 PYg//+II.net
result = range.getValues().flat()
とりあえず .filter以下を消したら望んでた結果は得られた模様

855:デフォルトの名無しさん
22/04/08 20:16:40.07 tiBN51P7.net
>>853
この記事は空白除去してるじゃん

856:デフォルトの名無しさん
22/04/08 20:28:36.27 uSpd3hvB.net
セルに手入力された5:22とか8:24とかの見た目時間になってる単なる文字列を使って
時間の足し算をしたいんだが、なんかいいアイディアはないだろうか?

857:デフォルトの名無しさん
22/04/08 20:30:57.57 TDBa7GsZ.net
足し算自体はスプレッドシート上の計算式ではなく
値だけ変数に入れてhas上でやりたい

858:デフォルトの名無しさん
22/04/14 12:07:06.46 l9jSNk17.net
スプレッドシートに数十個のボタンを図形描画してスクリプトの割り当てをしたんだが何回設定しても
いつのまにかスクリプトの割り当てで割り当てたスクリプトが空欄に戻ってしまう
これって何か制限があったりするのだろうか
一通り設定して最初のボタンから確認していくと空欄に戻ってしまってて
ボタン押しても反応しない
設定した直後にボタン押すときはスクリプトが動いてるから最初から設定できてないわけではない

859:デフォルトの名無しさん
22/05/24 07:38:06.26 78erdOqF.net
ClassroomAPIを使って
-----
Classroom.Courses.CourseWork.list(クラスルームのID).courseWork.forEach(w =>{
~~~~~~
})
-----
ってかんじで受講しているクラスで出された課題それぞれに対して処理をしているんだけど、
これだと提出済み課題に対しても処理してしまう。
提出済みか判定して、除外するためにはどうしたらいい?

860:デフォルトの名無しさん
22/05/27 11:50:40.73 S0cy91Tb.net
提出済みか判定して、除外す提出済みか判定して、除外すればいい

861:デフォルトの名無しさん
22/05/28 11:07:36.06 81XaDMLN.net
FastAPI
OCID

862:デフォルトの名無しさん
22/05/30 11:13:52 Z6OL71NL.net
Google Apps Web API
URLリンク(www.youtube.com)

863:デフォルトの名無しさん
22/07/22 09:02:24.10 CcjlX4kF.net
質問します
ローカルにあるファイルをメールに添付して
指定時間に送信するみたいなことを
gasでやりたいのですが、
ローカルファイルをGoogleドライブに取り込むところから躓いてます
こういうやり方があるよ、とかこのHPが参考になる、みたいなのはありますか?

864:sage
22/07/28 15:18:39.59 5gdZfTov.net
m5stackでボタンを押す → スプレッドシートに書き込み → 編集をgmailで送信
というのをしたいなと。
参考にしたのはこのページ
URLリンク(knt60345blog.com)
要はボタンを押すとスマホに通知がくるシステムを作りたいのです。ところがgmailの送信がされません。
やったこと
1.スプレッドシートに編集があったときに通知する
→ 手入力だと通知される。しかし、scriptによる編集では通知されない。
2.gas上で編集をトリガーにしてsendgmailを使う
→失敗。おそらく1と同じ理由
3.スプレッドシートを編集するスクリプトの中にsendgmailを記述する
→編集はされるがメールは送信されない
sendmailの使い方を間違えているのかと思いましたがメールを送るだけのコードを実行するときちんと送れていました。
ヒントをもらえるとありがたいです。よろしくお願いします。

865:デフォルトの名無しさん
22/08/03 00:57:44 Mtys3/qj.net
>>863
簡単なのはGoogle DriveアプリでPCと同期させる方法かと思います。

866:デフォルトの名無しさん
22/08/03 15:39:22.24 IS1ZoKH3.net
>>863
ローカルファイルと言うことはトリガー実行じゃないんだよね?
どういう操作を想定してるのかわからんけど、HTMLでダイアログ表示させるかdoGetでHTMLを表示させて
そのHTMLとJSでローカルファイルは読めるよ
URLリンク(tonari-it.com)
>>864
これで普通に出来たぞ
function doPost() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1');
var range = sheet.getRange('A1');
var values = range.setValue('hoge');
GmailApp.sendEmail('test@example.com', 'subject', 'body');
}

867:デフォルトの名無しさん
22/08/04 08:31:05.67 CP8sLsBT.net
>>865-866
回答ありがとうございます
もう回答もらえないのかな?と諦めておりました
実はローカルファイルをトリガー実行(時間指定)でメールに添付させたいというのが希望する処理なのです
グーグルドライブアプリからならキーも取れそうですね
会社からグーグルドライブアプリの設置許可貰えたらやってみます

868:デフォルトの名無しさん
22/08/26 19:09:52.12 fCaJRqVr.net

有料化

869:デフォルトの名無しさん
22/08/26 20:13:08.31 shwkM977.net
>>868
なんだそれ怖いこと言うなよ
ソースどこ?

870:デフォルトの名無しさん
22/08/31 11:27:16.40 8zP5mkRm.net
googleSpaceのタスクにGASでタスク登録って可能?
登録しようとしても
GoogleJsonResponseException: API call to tasks.tasks.insert failed with error: Invalid task list ID
って吐かれる
IDはスペースのURL末尾を使ってる

871:デフォルトの名無しさん
22/09/15 22:22:03.06 ZhCJ57CK.net
しばらく触ってないうちにスクリプトエディタが変わっていたんですが、新しいエディタでプロジェクトのコピーを保存したい場合ってどうしたら良いんでしょうか?
自作のスクリプトを使ってもらうのにコピーを保存してもらっていたので代わりの方法を探しています

872:デフォルトの名無しさん
22/10/25 20:43:00.01 czhOEshi.net
Googleスプレッドシートの件で質問します。
A11からF11の列に、IMPORTRANGE()によって、他のスプレッドから取り込んだデータが入っています。行の数は未定(約300件ぐらい)です。
このままでは、元データのシートが更新されると、合わせてデータも更新されてしまいます。
この現在表示されているセルの値をそのまま、文字列としてセルに上書きするコードを記入したいのですが、どのように記述するとよいでしょうか?

873:デフォルトの名無しさん
22/10/26 01:21:01.31 Dg1k8nd7.net
やりたいことがわからないのでもう少し詳しく書いてください

874:865
22/10/26 02:36:10.71 wuQKMR4S.net
すみません。自己解決しました。
スレ汚し申し訳ありませんでした。

875:デフォルトの名無しさん
22/10/26 11:11:50.28 t4LQIfXs.net
謝るより原因や解決方法を書いていってほしい
質問と解決法が揃ってればスレ汚しにならない

876:デフォルトの名無しさん
22/11/19 22:03:44.91 7xWc9dNP.net
初心者で勉強中ですがplain bodyとかの正規表現が難しくて泣きそう

877:デフォルトの名無しさん
22/12/16 21:50:55.76 /69Su096.net
1日一回gmailの中のメールをフィルタリングして集計してメールを遅るスクリプトを動かしてます。
今日までは毎日1回動いてましたが
本日近い時間帯で4回トリガーされていました。
このようなことが起こった方他におられませんでしょうか。

878:デフォルトの名無しさん
22/12/17 09:05:35.61 CgXXVcB1.net
>>877
調べてみるのでソースだせる?

879:デフォルトの名無しさん
23/01/16 23:18:09.81 XkS+UaR1.net
ボタンを押下したらテーブルを表示させたいんだけど、どうすればいいのでしょうか?

880:デフォルトの名無しさん
23/01/17 00:42:43.29 fU/PH7pE.net
質問ざっくりしすぎ

881:デフォルトの名無しさん
23/01/18 09:15:14.72 NRwxJvcS.net
毎月の商品ごとの売上グラフを作ってるんですけどAには赤、Bには青、Cには黃というように色指定は出来ますか?
グラフの並び順に1番目から赤、青、黃という順序では出来るんですけど、順番が変動しても大丈夫にしたいです
A2=
if "A", Red
"B", Blue
"C", Yellow
みたいに出来たらいいなと思ってます

882:デフォルトの名無しさん
23/01/20 23:25:45.84 E/iTFMTm.net
二次配列の中の特定要素を一個だけじゃなくて任意の数があるか確認する方法ってある?

883:デフォルトの名無しさん
23/01/21 01:05:54.74 tr5Udobt.net
どういうこと?
何か日本語不得意なやつ多すぎね?
上手く質問できないなら具体例を書けよ
例えば
[
[1, 2, ...],
[3, 4, ...]
]
という二次元があったとき、
○○が○○であることを確認する方法ってある?
みたいな

884:デフォルトの名無しさん
23/01/21 04:21:13.49 a0kfmYv3.net
日本語というかこういうのはちゃんと説明できないからコード書けないんでは

885:デフォルトの名無しさん
23/01/21 16:40:27.15 /REhm/9K.net
ボタンが押下されたら表が動的に表示されるようにしたいのですが、動的に作成された表の値がundefinedになります。
下記の通りに書いたのですが、何故undefinedになるのでしょうか?
<script>
function displayTable() {
var htmlTable = google.script.run.getTable_Area();
document.getElementById("createdTable").innerHTML = htmlTable;
}
</script>
function getTable_Area() {
return '<table>' +
'<thead>' +
'<tr>' +
'<th>Result</th>' +
'</tr>' +
'</thead>' +
'<tbody>' +
'<tr>' +
'<td>Date</td>' +
'<td><input value=<?= new Date();?>></input></td>' +
'</tr>' +
'<tr>' +
'<td>Area</td>' +
'<td><input value=<?= getArea();?>></input></td>' +
'</tr>' +
'</tbody>' +
'</table>';
}

886:デフォルトの名無しさん
23/01/21 20:12:40.75 tr5Udobt.net
>>885
パッと見だけど
displayTableはフロント側の関数だよね
getTable_Areaはgoogle.script.run経由で呼び出してるからgs(バックエンド側)の関数だよね
google.script.runはwithSuccessHandlerのコールバックでレスポンス受け取るから、変数htmlTableはundefinedになるんじゃね?

887:デフォルトの名無しさん
23/01/21 21:05:36.17 EDO4fSiJ.net
>>886
>displayTableはフロント側の関数だよね
>getTable_Areaはgoogle.script.run経由で呼び出してるからgs(バックエンド側)の関数だよね
はい。それぞれフロントとバックエンド側になります。
withSuccessHandlerを以下の通りに使用し、実行したところundefinedは表示されなくなったのですが、表が表示されないということはcalculateArea()の書き方がいけないのでしょうか?
<script>
function calculateArea() {
var htmlTable = "";
google.script.run.withSuccessHandler(function(data) {
htmlTable = data;
}).getTable_Area();
document.getElementById("createdTable").innerHTML = htmlTable;
}
</script>

888:デフォルトの名無しさん
23/01/21 21:11:08.81 tr5Udobt.net
>>887
こうしてみて
function calculateArea() {
google.script.run.withSuccessHandler(function(data) {
document.getElementById("createdTable").innerHTML = data;
}).getTable_Area();
}

889:デフォルトの名無しさん
23/01/21 22:20:43.38 EDO4fSiJ.net
>>888
ありがとうございます!表が表示されるようになりました!
もし可能であれば、もう1点教えていただきたいのですが、
上記 function getTable_Area()には
'<td><input value=<?= getArea();?>></input></td>'
のようにgetArea()などの関数を表が作成される際に呼ばれるよにしています。
しかし、表示されたタブをみてみると
<input value="<?=" getarea();?="">
になっており、エスケープ処理?がされているみたいです。
実際にアプリを開発する際は、何か別の方法でinputの値に関数の戻り値を代入しているのでしょうか?


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