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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2014/06/29(日) 11:07:03.38 ID:5HmND7Qc.net]
Google Apps Script でのプログラミング等に関する質問スレです
Excel や Access の VBA に不満のあるあなた
web アプリだけでなくクライアントアプリからも利用したいあなた
ローカルなデータベースやファイルだとバックアップに不安のあるあなた

ム板に無かったので立ててみます

Google Apps Script
ttps://developers.google.com/apps-script/
Google Drive API
ttps://developers.google.com/drive/
Getting Started with the Google Data Python Library
ttps://developers.google.com/gdata/articles/python_client_lib

■関連スレ
Google Maps API 質問箱
peace.2ch.net/test/read.cgi/tech/1131627583/
Microsoft SkyDrive API
peace.2ch.net/test/read.cgi/tech/1385604796/
【GoogleAppsScript】猿92【研究せよ!!!】
nozomi.2ch.net/test/read.cgi/php/1398600864/
GoogleAPIってどうよ?
nozomi.2ch.net/test/read.cgi/php/1018614427/
Google App Engine for Python 6アプ目
nozomi.2ch.net/test/read.cgi/php/1358570953/
Google App Engine for java
peace.2ch.net/test/read.cgi/tech/1317639323/
GoogleWebToolkit[GWT]について語ろう
nozomi.2ch.net/test/read.cgi/php/1147975874/

720 名前:デフォルトの名無しさん mailto:sage [2020/06/17(水) 03:35:08.78 ID:H0Dcbe9T.net]
1つのフォルダ内に、同じ名前のサブフォルダが2つ以上作れるの?

そんなファイルシステムを見た事がない

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

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

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

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

私の記憶だと以前は特に尋ねられることもなく、同じ名前のフォルダやファイルが二重に出来てしまっていた気がするのですが、、、、改善されたんですかね?

725 名前:デフォルトの名無しさん mailto:sage [2020/07/01(水) 13:06:41.87 ID: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 名前:デフォルトの名無しさん [2020/07/01(水) 13:10:17.98 ID:IfUrt5hg.net]
parseint

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

728 名前:蟻人間 mailto:sage [2020/07/08(水) 19:08:08.66 ID:wtc6YQgJ.net]
>>727
簡単じゃないようだ。

https://stackoverflow.com/questions/48754286/retrieving-google-sheets-cell-border-style-programmatically

事前にSheets APIを有効にする必要がある。



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

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

731 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 00:44:34.10 ID:9dNzv7wt.net]
ファイルはもちろんGoogleドライブに入っています。

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

733 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 03:09:29.37 ID:8onqYysW.net]
ファイル名はgasで取得するよりローカルで取得するのが楽なのでは

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

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

736 名前:デフォルトの名無しさん mailto:sage [2020/09/26(土) 16:10:20.48 ID:PfG/B09Z.net]
GASの開発環境を英語にするのは、Googleアカウントの言語を変更する以外に方法はありませんか?

目的はExceptionなどのエラーを英語で出力してほしいんです。

今日はプロパティの設定でバグが出ているようなんですが、以下のように日本語だと本来の意味とはニュアンスが異なりますし、IssueTrackerで「Data storag error」検索したらすでに報告されているのが分かったので余計な問題判別をせずに済みます。

日本語「データの保存容量エラー」
英語「Data storage error」

737 名前:デフォルトの名無しさん mailto:sage [2020/10/23(金) 18:22:51.85 ID:bYAKNzy9.net]
gmailにおいて、添付を外して転送ということって可能でしょうか?

調べてみた所添付の付け方ばかりが出てきてしまい...

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



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

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

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

742 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 22:04:25.41 ID:yF2gYpL6/]
「コンサル・IT業界」を俺が全解説する やりたい事ない就活生は全員集合!
https://www.youtube.com/watch?v=zJReZO1ND6c&t=2003s
努力不足でSESに転職
https://www.youtube.com/watch?v=enk3CgyuFDo
【転職】日系大手企業から外資系企業への転職は困難な道だ
https://www.youtube.com/watch?v=2HESzMFgN4M
【就活】非体育会系はどう戦うべきなのか?
https://www.youtube.com/watch?v=x6aW7E538KY
「圧倒的努力」と言いたがる奴www
https://www.youtube.com/watch?v=kI-ZkKhQLZY

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

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

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

746 名前:デフォルトの名無しさん mailto:sage [2021/02/26(金) 19:19:22.27 ID:gv3Dvayc.net]
どなたか>>741をお願いします

747 名前:デフォルトの名無しさん mailto:sage [2021/02/26(金) 19:22:12.53 ID:yh0R3Tzg.net]
>>741
スレ違い

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



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

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

751 名前:デフォルトの名無しさん mailto:sage [2021/03/01(月) 12:44:15.12 ID:V9NClIIm.net]
コード載せたら添削してあげるよ

752 名前:デフォルトの名無しさん mailto:sage [2021/03/01(月) 17:03:50.84 ID:PbAWyOdW.net]
APIを使った方がいいかもね

753 名前:デフォルトの名無しさん mailto:sage [2021/03/03(水) 18:08:09.09 ID:/zPRpQHx.net]
Browser.msgBox('hoge');

var ui = SpreadsheetApp.getUi();
ui.alert('hoge');

どっちもAndroidスプレッドシートアプリでは動かず一時停止状態のままになってしまいます
どうすれば回避できますかね?

処理が終わるまでshowModalDialogで操作させないようにする処理も泥アプリでは動かなくて困っています…

754 名前:デフォルトの名無しさん mailto:sage [2021/03/03(水) 21:30:50.23 ID:hlvdZ6yU.net]
>>753
スマホでは色々制限があって無理です

755 名前:デフォルトの名無しさん [2021/03/05(金) 11:04:43.54 ID:wmkFGJMv.net]
詳しい方助けてください。
当方結婚式のプロフィールムービーを制作しています。
今後、Googleフォームを使って、テロップ入力、写真をお客様自身でアップロードする仕組みを作れと言われて困っています。

問題となっているのが、フォームでの回答後、アップロードした写真がファイル名しかわからない点です。
そこで、アップロードした写真ファイルを一覧化し、PDF化したうえでお客様へ自動返信出来ないかと考えてみました。

GASを使ってなんとか・・と思いましたが、ネットを探してみても方法が見つからず、途方にくれています。

どなたかお力添えをお願いできないでしょうか?

756 名前:デフォルトの名無しさん mailto:sage [2021/03/05(金) 16:48:28.45 ID:tfvc3NNv.net]
スプレッドシートに出力してそれをpdf化すれば?

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

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



759 名前:デフォルトの名無しさん mailto:sage [2021/04/06(火) 23:13:17.50 ID:ao+gKvtS.net]
scrapingのライブラリでParser とcheeriogs以外で良いのあります?

cheerioよさそうだけどjquery知ってる前提でドキュメントが無くてjquery知らないからきつい。メソッドとかjqueryのやつ使えるの?

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

761 名前:デフォルトの名無しさん mailto:sage [2021/04/13(火) 20:44:13.01 ID:YlnYj74B.net]
>>755
自作フォームは難しい。
様々なページを作らないといけない

要するにファイルアップローダー、
TeraTerm, Putty みたいな画面が欲しいのでしょ

各顧客用のフォルダを作って、そこへアップロードするのでしょ

自作するのはキツイ。
何かのサービスを使うべき

762 名前:デフォルトの名無しさん mailto:sage [2021/04/13(火) 21:04:50.52 ID: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 名前:デフォルトの名無しさん mailto:sage [2021/04/13(火) 21:11:20.27 ID:YlnYj74B.net]
>>760
doPost は同期処理なのか?

非同期処理なら、コンテキストが異なるから、
try〜catch で捕捉できないのでは?

async/await なら、捕捉できるのか?

764 名前:デフォルトの名無しさん mailto:sage [2021/04/13(火) 21:28:22.61 ID:c7k7neBn.net]
なんでjsの話してんの

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

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

767 名前:デフォルトの名無しさん mailto:sage [2021/04/22(木) 22:12:53.54 ID:Bcy1rpDS.net]
>>766
Utilities.formatDateで変換してください

768 名前:デフォルトの名無しさん mailto:sage [2021/04/23(金) 01:28:15.06 ID:KvwPc6n1.net]
やっぱ自分でstringに戻すしかないのですね
どうも



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

770 名前:デフォルトの名無しさん [2021/05/19(水) 06:26:47.48 ID:+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 名前:デフォルトの名無しさん mailto:sage [2021/05/19(水) 09:54:24.41 ID:iHfxsQ4v.net]
>>770
function onEdit( e ) {
if (e.source.getSheetByName() === "Sheet1"
&& e.range.getRow() === 1
&& e.range.getColumn() === 1) {

//なんか処理

}
}

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

773 名前:デフォルトの名無しさん mailto:sage [2021/05/25(火) 09:12:15.05 ID:7Zlc4Jvy.net]
function pswV1(contract){
var url = "https://api.pancakeswap.info/api/tokens/" + contract;
var content = UrlFetchApp.fetch(url).getContentText("UTF-8");
var obj = JSON.parse(content);
return Number(obj.data.price);
}

この関数作って使ってるんだけど、
定期的に再実行させるにはどうしたら良いのかな?
可能なら1分に1回再実行させたい。

774 名前:デフォルトの名無しさん mailto:sage [2021/05/25(火) 12:30:25.88 ID:UFi3lRqC.net]
トリガー使えばええやん

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

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

777 名前:766 mailto:sage [2021/05/25(火) 15:20:50.17 ID:7Zlc4Jvy.net]
ごめんなさい。
1分ありました。

778 名前:766 mailto:sage [2021/05/25(火) 15:23:17.48 ID:7Zlc4Jvy.net]
何度もすまん。
無効な引数でエラーになる。
やはりセル内で使用する関数にトリガーは使えないのでは?



779 名前:デフォルトの名無しさん mailto:sage [2021/05/25(火) 19:19:13.82 ID:bqN1UUYu.net]
そのセルの情報も書け

780 名前:766 mailto:sage [2021/05/25(火) 19:47:34.24 ID:7Zlc4Jvy.net]
セル内は

=pswV1("0x27327672d1dc51f4dc58c9f413e1fa7e7ad8245e")

としています。
いまのところロード時とタブ切り替え時の任意リロード時のみ実行されます。

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

782 名前:766 mailto:sage [2021/05/25(火) 20:25:01.51 ID:7Zlc4Jvy.net]
>>781
複数あります。
いまのところ5個くらいですが日々変動します。

トリガーがダメならセル内から呼び出す関数からは引数とセル位置だけグローバル配列に入れておいて
トリガーから呼んだ関数でまとめて通信させる方法もあるのかなと考え始めてます。
まだ実装してないので動くかわかりませんが。

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

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

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

786 名前:デフォルトの名無しさん mailto:sage [2021/06/07(月) 13:30:55.90 ID: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 名前:デフォルトの名無しさん mailto:sage [2021/06/10(木) 08:31:00.19 ID:rZOQ7XKm.net]
機能の23時にはちゃんと動いていたスクリプトが、今朝試してみたらエラーが出てしまってる

function doPost(e) {
 const getdata = JSON.parse(e.postData.getDataAsString());
//略
}
という関数を使ってるスクリプトがいくつかあるんだけど、全部
TypeError: e.postData.getDataAsString is not a function
というエラーが出るようになってしまった
同じ人いる?

788 名前:780 mailto:sage [2021/06/10(木) 08:31:48.52 ID:rZOQ7XKm.net]
>>787
誤字失礼。昨日の23時です。



789 名前:デフォルトの名無しさん mailto:sage [2021/06/11(金) 01:04:22.78 ID:W2MDAmi/.net]
>>787だけど、同じ問題を報告してる人がいた
そして今は治ってる
https://issuetracker.google.com/issues/190539183

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

これをクリックしたらwebページも出さずに処理させる方法ってあるんでしょうか?

791 名前:デフォルトの名無しさん mailto:sage [2021/06/13(日) 00:34:56.20 ID:drIN04VN.net]
>>790
claspで実行すれば?
https://github.com/google/clasp
https://takuya-1st.hatenablog.jp/entry/2021/06/08/021238

Androidってのがスマホから実行するって意味ならゴメンだけど

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

793 名前:デフォルトの名無しさん mailto:sage [2021/06/13(日) 19:42:39.72 ID:lkc6O7cF.net]
>>792
TermuxのCUIからリクエスト送れないかね

794 名前:デフォルトの名無しさん mailto:sage [2021/06/13(日) 22:42:32.09 ID:TPT9gOWH.net]
>>793
Termux 上で >>791が教えてくれたclaspをインストールして……
って事ですかね.
現状でもブラウザ開くけど目的の「ワンクリックでうんこした時間を記録」
は叶ってるので,まあうんこした時間記録するだけなのにAndroid上でLinux
環境セットアップしたくないかなって気はする.

……Termuxで実行するときってその実行コマンドをショートカットにして
デスクトップにおけますん?

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

796 名前:デフォルトの名無しさん mailto:sage [2021/06/14(月) 14:10:38.65 ID:G+aGjkZp.net]
>>792
iPhoneだと↓みたいな感じでできるみたいだから
https://ntwmachine.com/shortcut-gas

Androidでも↓みたいなアプリでできそうじゃない?
HTTP Request Shortcuts
https://play.google.com/store/apps/details?id=ch.rmy.android.http_shortcuts

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

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



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

800 名前:デフォルトの名無しさん mailto:sage [2021/06/15(火) 22:38:27.71 ID:Pikc/bWs.net]
うわー皆さんいろいろアイディアありがとうございます.

>>799
試してみたんですがAndroid環境だと画面閉じないですね…

>>798
単純にうんこした時間をGoogleカレンダーに登録したいだけなんすよね…
なのでスプレッドシートとかは使いたくなくて,コードは

var date = new Date();
CalendarApp.getDefaultCalendar().createEvent("💩",date , date)

こんな感じで十分なので,できればこれをandroid上でアイコンに割り当てて一発実行したいのです.

>>795
ターミナル開く手間は避けたくて……

>>796
>>797
このどっちかででけそうな気がしてきたのでちょっと試してみます!

801 名前:デフォルトの名無しさん mailto:sage [2021/06/15(火) 22:54:32.69 ID:Jy0S46aa.net]
絵文字かわヨ

802 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 10:23:44.28 ID:CjZmk7C6.net]
共有しているスプレッドシートの

「編集者は権限を変更して共有できます」のチェックボックスを外す(無効にする)

ソースコードを教えてください

setShareableByEditors(shareable) を使えばできるようなのですが
使い方が分かりません

よろしくお願いいたしますm(_ _)m

803 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 10:54:14.06 ID:Vr6vzxIM.net]
>>802
その関数の引数をfalseにするだけやろ

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

805 名前:デフォルトの名無しさん [2021/07/15(木) 15:20:59.29 ID:ygp86UHP.net]
シートを作る
うpするGASを書く
アップロード先のURLとコメントをスプレッドシートにリスト化

>ファイルのアップロード、コメント記入してそれをスプレッドシートにリスト化、それぞれは出来たんですが

もっと具体的に
出来ればソースとか晒すべき

806 名前:デフォルトの名無しさん mailto:sage [2021/07/15(木) 21:16:55.83 ID:gFOIdhYR.net]
>>800

>>795
>ターミナルを開く手間は、避けたい

どこかに、ショートカットを作れないの?

例えば、Windows ならデスクトップにショートカットを作って、
リンク先に、コマンドプロンプトを起動して、
Ruby でスクリプトファイルを実行する

C:\Windows\System32\cmd@.exe /k "ruby C:/Users/Owner/Documents/script.rb"

注意。書き込めないので、間に@を入れました

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

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



809 名前:デフォルトの名無しさん mailto:sage [2021/08/01(日) 21:02:43.56 ID:zu2woDem.net]
スプレッドシートとhtmlserviceで簡単なwebアプリ作ろうと思ったのですが、ユーザー毎のデータも扱う場合、どうやるのがいいんでしょうか。

アプリの実行者を「ログインしているユーザー」にすると、スプレッドシートへのアクセス件が必要だから、他の人のデータにアクセスされそうで怖い。

だからといって、実行者を「自分」(開発者)にすると、操作してるユーザーが誰なのかを判別できないし・・。

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

811 名前:デフォルトの名無しさん mailto:sage [2021/08/08(日) 03:08:43.28 ID:JLttzwiP.net]
>>810
user | name | score
aaa@gmail.com | taro | 85
bbb@gmail.com | jiro | 75

みたいにスプレッドシートをDBとして使うWEBアプリの場合、
アプリを「自分(開発者)」として実行すると、ログインユーザーのemailが取得できないから、スプレッドシートから当該ユーザーのデータを取得できない

「アクセスしているユーザー」として実行すれば、ログインユーザーのemailが取得できるけど、このスプレッドシートへのアクセス権を与えないといけないので、他のユーザーの情報も全て見れてしまう

ので、普通はどうするものなのかが知りたいです。(有償のworkspaceは使わない前提です)

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

813 名前:デフォルトの名無しさん mailto:sage [2021/08/10(火) 11:13:59.22 ID:9wi/dlAk.net]
GAS には、ユーザー認証機能があるの?

認証は、Firebase Authentication じゃないの?

814 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 04:51:29.28 ID: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 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 08:07:07.49 ID:hKprbQAC.net]
>>814
何も調べてないうえにやったこともないけと、文脈から察すると
Logger.log(pivotValue.getValue())
じゃない?

816 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 12:03:47.46 ID:l+iKsjPF.net]
>>815
getValue()は使えないみたいなんですよね、not a functionになって

getValueでしてみたらnullが帰ってきて謎...

ぐぐってもサンプルが出てこなくてまいりましたわ

817 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 13:20:16.21 ID:JpyvyW0f.net]
公式のリファレンス読みなさい

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



819 名前:デフォルトの名無しさん mailto:sage [2021/10/13(水) 01:39:22.36 ID:sH5qc9+o.net]
>>818
何言ってだ

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

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

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

823 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 23:17:06.97 ID: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 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 02:11:05.33 ID:TUb0vitt.net]
>>823
単純にスプレッドシートの表示形式が数値か日付かって話じゃないの

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

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

827 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 14:36:16.49 ID:Xy/RGdSX.net]
うちのは10月末に変わってたよ。

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



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

830 名前:822 mailto:sage [2022/01/18(火) 10:50:27.27 ID:Y4BAPieC.net]
解決しました。下記に載ってました。

Https://myfunc.jp/items/00015/index.html

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

832 名前:デフォルトの名無しさん mailto:sage [2022/02/21(月) 21:47:26.46 ID:UKJTHoUK.net]
https://script.google.com/

このページって何処からたどり着くんですか?
googleドライブとかから新規にスクリプトを作成するのは出来るんですけど
何処にも上記のリンクが無いです

833 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 14:47:01.29 ID:QEzJwIFm.net]
出来そうで出来ないというか検索してもやりかたが見つからなかったので
知ってたら助けて欲しい

【やりたいこと】
エクセルファイルをGASでスプレッドシートに変換してスプレッドシートにする
但しエクセルファイルの各シートのセルにはエクセル特有の文法で記載された計算式や関数がふんだんに使われているものとする

【ひっかかっていること】
単純にGASでDriveAppやDrive.Filesを用いてエクセルファイルをスプレッドシートに変換するだけだと
変換されたスプレッドシートのセルにはエクセルの特有の文法で記載された計算式や関数が移植されてきただけで
スプレッドシートではエクセル特有の文法で記載された計算式や関数は処理できないのでやりたいことが出来ない状態
なのでエクセルのセルに埋め込まれてる計算式で求められた計算値だけをスプレッドシートに移植したい

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

835 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 18:33:50.02 ID:VTA82jsu.net]
そのエクセルが他から提出されてくるもので数百単位であるので
個々にそのマクロを仕込んだものを実行するというのは大変かなぁ

できればエクセルはそのままで一括で読み込んで
GASのなかでやっちゃいたい

無理げかなぁ

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

837 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 20:59:04.21 ID:CHjRcKIO.net]
>>833
スプレッドシートでは処理できない、って言う時点でGASじゃ無理でしょ。
どうしてもやりたいなら、下記くらいしか思いつかない。

@その数式と同じ動きをする関数を自分でGASで実装する

AWinのタスクスケジューラとか使って、VBAでExcel文字列化するなりCSV出力するなりして、それをGASでスプレッドシート化する。GoogleドライブアプリでWinとドライブを同期する

838 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 21:59:04.64 ID:vYgwEkZg.net]
しょうがないから一つヒント
同じフォルダ、若しくは特定のフォルダに入ってるExcelのファイルを全て文字に変換して保存するマクロを組めばOK
何百あろうが一瞬

全てのブックの全てのシートへループでぐるぐる回すだけだから、そんなに難しくないよ



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

840 名前:デフォルトの名無しさん mailto:sage [2022/03/11(金) 21:23:44.78 ID:gLuUS5Uy.net]
それはスプレッドシート自体の設定いじる

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

842 名前:デフォルトの名無しさん mailto:sage [2022/03/11(金) 21:31:24.19 ID:0mAcmeni.net]
>>841
デマ回答やめろ😡

843 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 10:48:26.08 ID: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 名前:デフォルトの名無しさん [2022/03/16(水) 11:31:39.30 ID:y8PMgdeo.net]
Rangeも配列で指定すればいいんじゃね

845 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 04:13:33.54 ID:XbT1Q7Sk.net]
const files1 = DriveApp.getFolderById(folderId1).getFiles();
const files2 = DriveApp.getFolderById(folderId2).getFiles();

こんな感じで異なるフォルダに格納されてるファイルをgetFiles取得した場合
その結果のfiles1とfiles2を合体させてfiles3にするようなことってできる?

いまだとファイルの数だけ繰り返すっていうのでfiles1を回すループ処理とfiles2を回すループ処理という感じで見栄えが悪いから
2つをマージしたfiles3を回すループ処理って感じにしたい

846 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 09:02:53.32 ID:/mas85k3.net]
無理なのでループ処理部分をメソッド化するなりしてどうぞ

847 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 11:53:32.50 ID:XbT1Q7Sk.net]
えぇ〜…
残念

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



849 名前:デフォルトの名無しさん mailto:sage [2022/03/31(木) 13:19:55.86 ID:5pPwE+XM.net]
コードを貼れ

850 名前:デフォルトの名無しさん mailto:sage [2022/04/01(金) 06:42:07.95 ID:68FipywF.net]
setvalueで値をセルに入れるのってリアルタイム反映じゃなくて
スタックしてて処理が終わるみたいな切りがいいところで
まとめて反映する仕様じゃないのけ?

クラウドベースの実行だからサーバー側の負荷軽減のためだと聞いたが
コード云々でなんとかなるなら知りたい

851 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 13:56:00.62 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 18:27:03.86 ID:tiBN51P7.net]
>>851
filter()とmap()要らなくない?

853 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 20:09:46.76 ID:PYg//+II.net]
>>852
そうなのかな
ここの記事を読んだんだけど

https://iwb.jp/google-apps-script-getvalues-two-dimensional-array-concat/

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

855 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 20:16:40.07 ID:tiBN51P7.net]
>>853
この記事は空白除去してるじゃん

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

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

858 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 12:07:06.46 ID:l9jSNk17.net]
スプレッドシートに数十個のボタンを図形描画してスクリプトの割り当てをしたんだが何回設定しても
いつのまにかスクリプトの割り当てで割り当てたスクリプトが空欄に戻ってしまう
これって何か制限があったりするのだろうか

一通り設定して最初のボタンから確認していくと空欄に戻ってしまってて
ボタン押しても反応しない

設定した直後にボタン押すときはスクリプトが動いてるから最初から設定できてないわけではない



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

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

861 名前:デフォルトの名無しさん [2022/05/28(土) 11:07:36.06 ID:81XaDMLN.net]
FastAPI
OCID

862 名前:デフォルトの名無しさん [2022/05/30(月) 11:13:52 ID:Z6OL71NL.net]
Google Apps Web API
https://www.youtube.com/watch?v=i80Dy6PwWqE

863 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 09:02:24.10 ID:CcjlX4kF.net]
質問します
ローカルにあるファイルをメールに添付して
指定時間に送信するみたいなことを
gasでやりたいのですが、
ローカルファイルをGoogleドライブに取り込むところから躓いてます

こういうやり方があるよ、とかこのHPが参考になる、みたいなのはありますか?

864 名前:sage mailto:sage [2022/07/28(木) 15:18:39.59 ID:5gdZfTov.net]
m5stackでボタンを押す → スプレッドシートに書き込み → 編集をgmailで送信
というのをしたいなと。

参考にしたのはこのページ
https://knt60345blog.com/m5stack-googlespreadsheet/

要はボタンを押すとスマホに通知がくるシステムを作りたいのです。ところがgmailの送信がされません。

やったこと
1.スプレッドシートに編集があったときに通知する
→ 手入力だと通知される。しかし、scriptによる編集では通知されない。
2.gas上で編集をトリガーにしてsendgmailを使う
→失敗。おそらく1と同じ理由
3.スプレッドシートを編集するスクリプトの中にsendgmailを記述する
→編集はされるがメールは送信されない

sendmailの使い方を間違えているのかと思いましたがメールを送るだけのコードを実行するときちんと送れていました。

ヒントをもらえるとありがたいです。よろしくお願いします。

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

866 名前:デフォルトの名無しさん mailto:sage [2022/08/03(水) 15:39:22.24 ID:IS1ZoKH3.net]
>>863
ローカルファイルと言うことはトリガー実行じゃないんだよね?
どういう操作を想定してるのかわからんけど、HTMLでダイアログ表示させるかdoGetでHTMLを表示させて
そのHTMLとJSでローカルファイルは読めるよ
https://tonari-it.com/gas-dialog-basic/

>>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 名前:デフォルトの名無しさん mailto:sage [2022/08/04(木) 08:31:05.67 ID:CP8sLsBT.net]
>>865-866
回答ありがとうございます
もう回答もらえないのかな?と諦めておりました

実はローカルファイルをトリガー実行(時間指定)でメールに添付させたいというのが希望する処理なのです
グーグルドライブアプリからならキーも取れそうですね
会社からグーグルドライブアプリの設置許可貰えたらやってみます

868 名前:デフォルトの名無しさん [2022/08/26(金) 19:09:52.12 ID:fCaJRqVr.net]

有料化



869 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 20:13:08.31 ID:shwkM977.net]
>>868
なんだそれ怖いこと言うなよ
ソースどこ?

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

871 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 22:22:03.06 ID:ZhCJ57CK.net]
しばらく触ってないうちにスクリプトエディタが変わっていたんですが、新しいエディタでプロジェクトのコピーを保存したい場合ってどうしたら良いんでしょうか?

自作のスクリプトを使ってもらうのにコピーを保存してもらっていたので代わりの方法を探しています

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

873 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 01:21:01.31 ID:Dg1k8nd7.net]
やりたいことがわからないのでもう少し詳しく書いてください

874 名前:865 mailto:sage [2022/10/26(水) 02:36:10.71 ID:wuQKMR4S.net]
すみません。自己解決しました。
スレ汚し申し訳ありませんでした。

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

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

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

878 名前:デフォルトの名無しさん mailto:sage [2022/12/17(土) 09:05:35.61 ID:CgXXVcB1.net]
>>877
調べてみるのでソースだせる?



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

880 名前:デフォルトの名無しさん [2023/01/17(火) 00:42:43.29 ID:fU/PH7pE.net]
質問ざっくりしすぎ

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

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

883 名前:デフォルトの名無しさん [2023/01/21(土) 01:05:54.74 ID:tr5Udobt.net]
どういうこと?
何か日本語不得意なやつ多すぎね?
上手く質問できないなら具体例を書けよ

例えば
[
[1, 2, ...],
[3, 4, ...]
]
という二次元があったとき、
○○が○○であることを確認する方法ってある?

みたいな

884 名前:デフォルトの名無しさん mailto:sage [2023/01/21(土) 04:21:13.49 ID:a0kfmYv3.net]
日本語というかこういうのはちゃんと説明できないからコード書けないんでは

885 名前:デフォルトの名無しさん [2023/01/21(土) 16:40:27.15 ID:/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 名前:デフォルトの名無しさん [2023/01/21(土) 20:12:40.75 ID:tr5Udobt.net]
>>885
パッと見だけど

displayTableはフロント側の関数だよね
getTable_Areaはgoogle.script.run経由で呼び出してるからgs(バックエンド側)の関数だよね

google.script.runはwithSuccessHandlerのコールバックでレスポンス受け取るから、変数htmlTableはundefinedになるんじゃね?

887 名前:デフォルトの名無しさん [2023/01/21(土) 21:05:36.17 ID: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 名前:デフォルトの名無しさん [2023/01/21(土) 21:11:08.81 ID:tr5Udobt.net]
>>887
こうしてみて

function calculateArea() {
google.script.run.withSuccessHandler(function(data) {
document.getElementById("createdTable").innerHTML = data;
}).getTable_Area();
}



889 名前:デフォルトの名無しさん [2023/01/21(土) 22:20:43.38 ID:EDO4fSiJ.net]
>>888
ありがとうございます!表が表示されるようになりました!

もし可能であれば、もう1点教えていただきたいのですが、
上記 function getTable_Area()には
'<td><input value=<?= getArea();?>></input></td>'
のようにgetArea()などの関数を表が作成される際に呼ばれるよにしています。
しかし、表示されたタブをみてみると
<input value="<?=" getarea();?="">
になっており、エスケープ処理?がされているみたいです。
実際にアプリを開発する際は、何か別の方法でinputの値に関数の戻り値を代入しているのでしょうか?

890 名前:デフォルトの名無しさん [2023/01/21(土) 22:36:15.48 ID:tr5Udobt.net]
>>889
そのgetAreaはどっちの関数?
フロント?バック?

891 名前:デフォルトの名無しさん [2023/01/21(土) 22:50:23.61 ID:EDO4fSiJ.net]
>>890
バック(gs)になります。

892 名前:デフォルトの名無しさん [2023/01/21(土) 22:59:56.13 ID:tr5Udobt.net]
>>891
これで良くない?

function getTable_Area() {

const a = new Date();
const b = getArea();

return '<table>' +
'<thead>' +
'<tr>' +
'<th>Result</th>' +
'</tr>' +
'</thead>' +
'<tbody>' +
'<tr>' +
'<td>Date</td>' +
'<td><input value="' + a + '"></input></td>' +
'</tr>' +
'<tr>' +
'<td>Area</td>' +
'<td><input value="' + b + '"></input></td>' +
'</tr>' +
'</tbody>' +
'</table>';
}

893 名前:デフォルトの名無しさん [2023/01/21(土) 23:07:30.06 ID:EDO4fSiJ.net]
>>892
なるほど。そのようにすればよかったのですか。
ありがとうございます!大変勉強になりました!

894 名前:デフォルトの名無しさん [2023/01/21(土) 23:20:48.89 ID:tr5Udobt.net]
>>893
全く説明してなくてごめんね
テンプレートリテラル使うともっと簡潔に書ける
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Template_literals

あと同期/非同期がわかるといいね

895 名前:デフォルトの名無しさん [2023/01/21(土) 23:41:09.53 ID:EDO4fSiJ.net]
>>894
いえいえ。重ね重ね、ありがとうございます!
テンプレートリテラルを勉強して使ってみようと思います。

またご推察の通り、同期の問題も発生しておりますので、それも合わせて勉強してみます。

896 名前:デフォルトの名無しさん mailto:sage [2023/01/22(日) 09:05:30.28 ID:1NpPY/pK.net]
ERB(埋め込み・Embedded RuBy)なら、HTML 内で、
<% 〜 %> でRubyのコード片を実行するだけ(出力はしない)。
<%= 〜 %> でRubyのコード片を実行して出力する

例えば、a.html.erb が以下なら、

<% ary = [ "<a>", "あ" ] %>

<% ary.each do |item| %>
<input type="text" value="<%= item %>">
<% end %>

a.html は、以下のように出力される

<input type="text" value="<a>">
<input type="text" value="あ">

897 名前:デフォルトの名無しさん [2023/01/25(水) 19:23:10.13 ID:EJwoBEnK.net]
test

898 名前:デフォルトの名無しさん [2023/01/25(水) 19:23:43.80 ID:EJwoBEnK.net]
やりたいこと:
Maps.newStaticMap()で作成した画像?をHTML上に表示させたい。

試したこと:
index.htmlから呼ばれるtest.gsの関数内で
var googleMap = Maps.newStaticMap().setCenter(centreY,centreX)
を定義して
return googleMap.getMapUrl();
でそのURLを取得しました。
そのURLをHTMLのIMGタグに
<img src="〇〇〇" width="100px" height="100px">
と入れても画像が表示されませんでした。


HTML上でbodタグの中に画像を表示させようとしているのですが、ファイルアイコンが半分に敗れたものが表示されています。



899 名前:デフォルトの名無しさん [2023/01/26(木) 03:32:17.94 ID:n/mKepPR.net]
>>898
getUrlで取得されたURLにあるものって画像じゃないよね
画像じゃないものをimgタグにセットしても表示されないよ

URLにあるものを画像化するか
iframe使って表示させるか(未検証)
どっちかのアプローチじゃないかな

900 名前:デフォルトの名無しさん [2023/01/26(木) 04:58:55.72 ID:p3aeborJ.net]
>>899
わかりました。
ありがとうございます。

901 名前:デフォルトの名無しさん [2023/02/02(木) 21:14:34.93 ID:d3AVgBUi.net]
GAS愛好家のみなさん
ContactsAppからPeopleAPIへの移行状況はいかがですか?

勝手が違いすぎてよーわからん
公式すらあんまり情報ないしマトモな記事載せてるサイトもないですよね

902 名前:デフォルトの名無しさん mailto:sage [2023/02/03(金) 12:45:44.80 ID:0b57qUmd.net]
スプレッドシートについての質問をさせてください
条件付き書式で、フォントサイズを変更するにはどうしたらいいでしょうか
表で一定の値の数字以上はフォントサイズが大きくなる、という仕様にしたいです

903 名前:デフォルトの名無しさん [2023/02/05(日) 16:08:42.77 ID:2ccsuJcO.net]
>>901
どうぞ。
https://officeforest.org/wp/2023/02/03/google-apps-script%e3%81%a7contact%e3%82%92people-api%e3%81%a7%e5%bc%84%e3%82%8b/

904 名前:デフォルトの名無しさん [2023/02/15(水) 16:03:34.65 ID:b8FtSvc2.net]
GASじゃなくてスプレッドシートなのだけど、
検索窓閉じた時検索結果に跳ぶの避けられませんかね。

905 名前:デフォルトの名無しさん mailto:sage [2023/02/18(土) 13:58:20.49 ID:W3nKwjDO.net]
やりたいこと
スプレッドシートに沢山ある あ い う とかいう文字列を
i[あ.い.う...]
t[a.b.c...]
という配列使って一度に置換作業がしたい。
i[1]→t[1]みたいな感じで。

replafeとforの組み合わせでなんとかなるかな?と思ったのですが、リファレンス読む限りreplace(a,b)の置換のa部分に変数を用いることは出来ないようなので他の方法を探しています。
ご教授頂きたく。

906 名前:デフォルトの名無しさん mailto:sage [2023/02/18(土) 18:58:41.14 ID:W3nKwjDO.net]
>>905
自己解決。
というか諦めて別シートに呼び出した後substituteとxlookupの組み合わせで無理やり置換したのを表示させました。

907 名前:デフォルトの名無しさん mailto:sage [2023/02/19(日) 14:19:59.95 ID:bukleA+Y.net]
>>905
日立?

908 名前:デフォルトの名無しさん [2023/02/19(日) 22:06:54.53 ID:sztA44Ir.net]
>>905
spliceで置き換える
https://gray-code.com/javascript/replace-item-for-array/



909 名前:デフォルトの名無しさん mailto:sage [2023/02/20(月) 02:05:22.77 ID:6OqVkYRD.net]
>>908
ありがとうございます!spliceメソッド使ってみます。
その前に1つずつ検索かけるのに手古摺ってますが、なんとかやってみたいと思います。

910 名前:898 mailto:sage [2023/02/20(月) 16:04:41.81 ID:4jGYSd8p.net]
駄目でした…
includesにしてもmatchにしても配列[ ]で指定するとうまく動いてくれません。
配列を作らずfor文で無理やりセルを置換させるという荒業で解決しましたが時間がかかり過ぎて実用的でなく。

やりたいこと
table[[あ],[か],[さ],[た]...]
before[あ][い]...
after[ア][イ]...
以上の配列があり、
tableに対しbefore[i]を総当りで検索し一致したらafter[i]に置き換える。

911 名前:デフォルトの名無しさん mailto:sage [2023/02/20(月) 18:43:52.85 ID:czK6pNoa.net]
>>910
やりたいことがいまいちわからん
こういうこと?

# ひらがなをカタカナに変換
table = [['あ','ア'], ['い','イ'], ['う','ウ'], ['え','エ'], ['お','オ'] ];
before = ['あ','い','う','え','お'];
after = before.map(b => table.find(a => b === a[0])[1]);

912 名前:898 mailto:sage [2023/02/20(月) 18:49:29.88 ID:83YdaF3i.net]
ありがとうございます。配列の中身は適当です…。
表と配列2種類の3つの要素があって、表にある配列1の要素を見つけたら配列2に置き換えるということをしたかったのです。

ですがお陰様でなんとかなりました!
二次元配列をflat()で一次元にして、splice使いました。
その後再度2次元配列に戻して元の形に直しました。

913 名前:898 mailto:sage [2023/02/21(火) 00:26:18.85 ID:B3qxCQs3.net]
>>911
mapメソッドはまだ理解できておらず…。
その一行で終わらせられるように勉強していきたいと思います。
結局以下のようになりました。ご教授ありがとうございました。

//1次元配列への変換。
let array = array.flat();
//array[x]とbefore[i]が一致したら置換(before→after)
for(let x = 0 ; x < array.length ; i++ ){
for(let i = 0 ; i < before.length ; i++ ){
if(array[x] == be[i]){
array.splice(x,1,after[i]);
}
}
//2次元配列に再変換、あとで貼付する。
let array2 = [];
let numOfElements = 6;//表の元のTableが6列あったので。
for(let t = 0; 0 < array.length ; t){
array2.push(array.splice( t, numOfElements ));
}

914 名前:デフォルトの名無しさん mailto:sage [2023/02/21(火) 02:43:28.40 ID:6tAoYaOK.net]
>>913
flat使わなくてもいい

for(let i = 0; i< array.length; i++) {
for(let j = 0; j< array[i].length; j++) {
if(before.includes(array[i][j])) {
array[i][j] = after[before.indexOf(array[i][j])];
}
}
}

map使うなら
array2 = array.map(r => r.map(c => before.includes(c) ? after[before.indexOf(c)] : c));

915 名前:898 mailto:sage [2023/02/21(火) 08:58:31.52 ID:B3qxCQs3.net]
>>914
そのarray[i][j]の[j]を入れるとindexOfにしてもincludesにしてもうちの環境?では何故かエラー出て読み込めなかったんですよ。(
確かcannot read properties of undefinedだった筈)
それ外すとエラーなく読んだので仕方なくflat入れた次第です。
因みに
arrayX=array[x]
arrayY=array[y]
みたいに入れ子しても駄目でした。

916 名前:898 mailto:sage [2023/02/21(火) 09:10:16.56 ID:B3qxCQs3.net]
確認したらエラー全然違うし書いてること散々でした
訂正
出てたエラーは多分is not defined
下の入れ子は
arrayX=array[x]
arrayY=arrayX[y]
みたいにしても同じエラーだったかと。

917 名前:デフォルトの名無しさん mailto:sage [2023/02/21(火) 23:07:45.74 ID:6tAoYaOK.net]
>>915
>そのarray[i][j]の[j]を入れるとindexOfにしてもincludesにしてもうちの環境?では何故かエラー出て
たぶん配列の添字が範囲外になってるんだろうけど
for文よりfor ofとかforEachのほうがシンプルにかける
const array2 = [];
for(let row of array) {
let cols = [];
for(let col of row) {
if(before.includes(col)) {
cols.push(after[before.indexOf(col)]);
}
else {
cols.push(col);
}
}
array2.push(cols);
}

const array2 = [];
array.forEach(function(row, i) {
row.forEach(function(col, j) {
if(before.includes(col)) {
array[i][j] = after[before.indexOf(col)];
}
});
});

918 名前:デフォルトの名無しさん mailto:sage [2023/02/21(火) 23:08:33.93 ID:6tAoYaOK.net]
あと上のmapは省略しすぎてわかりにくかったのでアロー関数と三項演算子をやめたらこうなる
const array2 = array.map(function(row) {
return row.map(function(col) {
if(before.includes(col)) {
return after[before.indexOf(col)];
}
else {
return col;
}
});
});



919 名前:898 mailto:sage [2023/02/22(水) 11:50:37.27 ID:7vReBJfV.net]
>>917-918
何度もありがとうございます。
仰るとおり2度目の添字は一切読み込んでくれないので…
>>918のmap参考にしながら勉強させていただきます。
とりあえず長くなってしまったのでこの辺りで。また不具合出てきたら改めて質問したいと思います。
ありがとうございました!

920 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 21:38:42.26 ID:8PRLUyLU.net]
スプレッドシートの共有で閲覧権限を持っている人の
印刷は可能でファイルのダウンロードだけ禁止することは可能でしょうか?

921 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 10:13:26.28 ID:NPxLOyBL.net]
共有アイテムのファイルにスターをつける方法を教えてください
宜しくお願いしますm(_ _)m

922 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 14:17:21.21 ID:csCK6+UB.net]
sheetクラスを取得する方法ってgetSheetByNameとgetActiveSheetしかないよね?
getSheetBySheetIdがないのが謎なんだけどシートはシート名で管理するしかない?

923 名前:914 mailto:sage [2023/03/12(日) 00:26:03.80 ID:ZZBXPzbK.net]
>>921
自己解決しました

924 名前:デフォルトの名無しさん [2023/03/24(金) 19:19:34.21 ID:GCLzu5nr.net]
Rangeオブジェクトから、セルアドレスの文字列を取得したい場合
Excelならr.Address()で相対参照や絶対参照を取得できますが
GASで同じようなことできるメソッドあります?
getA1Notation()だと相対アドレスでしか取得できないようで…

925 名前:デフォルトの名無しさん mailto:sage [2023/03/24(金) 20:40:28.68 ID:h6PMjTMa.net]
>>924
よく分かってないけどそれ意味あるの?
ただの文字列なんだから相対も絶対もないような

926 名前:デフォルトの名無しさん mailto:sage [2023/03/25(土) 11:52:56.28 ID:TC3JXJ5y.net]
>>925
例えば
A1のRangeオブジェクトから
$A$1という文字列を取得できないかなと

GASから条件付き書式を設定するのに使いたいです

なぜ使いたいかというと
複数人で編集してコピペを繰り返すと条件付き書式が破壊されてしまうので
それを上書きリセットするためです

逆に、条件付書式だけロックかけて切り取ったり貼り付けたり出来ない設定ができるならそれで十分なのですが…

927 名前:デフォルトの名無しさん mailto:sage [2023/03/25(土) 17:53:03.57 ID:nYxwu6kr.net]
>>926
>複数人で編集してコピペを繰り返すと条件付き書式が破壊されてしまうのでそれを上書きリセットするためです
通常の書式ならonEditで変更されたセルの書式を変更するだけでいいけど
条件付き書式をGAS上で扱ったことなかったから調べたけどちょっと面倒だね
そんでよくよく考えてみたらそもそもGAS使うならonEditで書式変更すればいいだけだから条件付き書式を使う必要がないと思った

928 名前:デフォルトの名無しさん [2023/04/04(火) 12:37:38.49 ID:dAPefWGR.net]
スプレッドシートにスクリプト作成して権限付与して動作するように設定したあと
そのスプレッドシートをコピーするとスクリプトもコピーされるようですが
スクリプトの権限やトリガーは設定しなおしが必要のようです。
イメージ的には、vba付のExcelをコピーして別ファイルとして保存して
毎月のデータを作成していく、みたいなことがしたいんですが
その辺コピーするだけで全部引き継がれるみたいな設定ないのでしょうか?



929 名前:デフォルトの名無しさん mailto:sage [2023/04/11(火) 18:45:08.89 ID:u8YBlLPL.net]
類似画像を判別できるようなライブラリとか公開されてるコードありますか?
検索するとpythonだとImageHashってライブラリがあるんだけどGASで同じようなことしたい

930 名前:デフォルトの名無しさん [2023/04/21(金) 16:25:28.26 ID:vnxhj4My.net]
ごめんgoogleスプレッドシートの質問スレがみつからずこちらで質問させてください。

シートのある列をユーザーごとの閲覧を制限かけたい
有効な方法ありますか?

931 名前:デフォルトの名無しさん mailto:sage [2023/04/21(金) 16:53:56.40 ID:8VcMj5ya.net]
閲覧の制限はファイル単位でしか出来ないでしょ
シート、セル(列/行)単位は編集の制限しか出来ない

932 名前:デフォルトの名無しさん mailto:sage [2023/04/21(金) 17:40:05.18 ID:vnxhj4My.net]
ありがとうございます。
確かに「表示」→「保護されている範囲」でできそうだったけど。やっぱりだめでした。
諦めて、もう一つリンクしたファイルのシート作ってそちらに閲覧されたくない列を追加します。

933 名前:デフォルトの名無しさん mailto:sage [2023/05/02(火) 21:52:22.95 ID:39G20EoK.net]
Googleカレンダーに予定を追加するプログラムを使ってるんだけど、「場所を追加」ちゃんと場所を追加したいです

以下詳細

普通に手作業でGoogleカレンダーに予定を追加するときは、「場所を追加」に場所の名前を入力すると候補が出てきて、そこから選ぶと、そこに間に合うためには何時に家を出ればいいかの通知が来たり、Android版のGoogleカレンダーだと予定の背景がその場所の写真になったりします。

で、GASで予定を追加するとき、場所を指定するためにGoogleマップのURLを使ってるんだけど、それだとURLが表示されるのみで、上記の通知とか背景写真とかが実行されません。
公式ドキュメントでも {location: 'Conference Room'}とされており、Googleマップ上の場所を使う気がなさそうです。

ちゃんとした「場所の追加」は、ウェブ上でマウスで操作しないとできないのでしょうか?

934 名前:デフォルトの名無しさん mailto:sage [2023/05/03(水) 00:25:10.26 ID:2fvruydV.net]
>>933
URLじゃなくてその場所の名前か住所、もしくは緯度経度を入れればいいんじゃないの?

935 名前:デフォルトの名無しさん mailto:sage [2023/05/03(水) 03:09:39.55 ID:CT7gAj9T.net]
>>934
それが名前や住所を入れても、その文字列が表示されるだけのようです
こんな感じ
https://i.imgur.com/pn88z8w.jpg
ブラウザかアプリで場所を選択した時には場所と認識されるのか、こう表示されます
https://i.imgur.com/k3K5mhe.jpg

936 名前:デフォルトの名無しさん mailto:sage [2023/05/16(火) 22:03:10.90 ID:9Kd/3stA.net]
ゲッ!!(/||| ̄▽)y-ξ⌒◇ヾ( ̄  ̄;)ジュッ

937 名前:デフォルトの名無しさん [2023/07/08(土) 12:42:20.50 ID:CwJ0Byq0.net]
質問させてください

Googleフォームの送信時イベントで入力された値を取るために
イベントを作成しましたが、どうしてもイベントパラメータがnullになってしまいます
Webページにあるサンプルではeからいろいろな情報が取れるように書かれているのですが、nullとなってしまう理由がわからずに困っています

function myFunction(e) {
Logger.log("myFunction start")
Logger.log(e)
}

— ログ
12:27:10 お知らせ 実行開始
12:27:10 情報 myFunction start
12:27:10 情報 null
12:27:10 お知らせ 実行完了

938 名前:デフォルトの名無しさん mailto:sage [2023/07/08(土) 17:00:03.61 ID:IeBiUrvH.net]
>>937
トリガーの設定してる?



939 名前:デフォルトの名無しさん mailto:sage [2023/08/22(火) 23:04:26.43 ID:+ZplHR9+.net]
GASではなく、スプレッドシートの質問なのですが、もし適切なスレッドがあったら誘導お願いします

セルに例えば「130409.67」と入力し、
表示形式>数字>通貨(端数切り捨て)
に設定すると、小数点以下が切り捨てではなく四捨五入されてしまいます。
これはなにか私の使い方がおかしいのでしょうか?
また、他の方法でも良いので、内部的には小数点を保持しつつ、表示上だけ小数点以下を切り捨てる(非表示)する方法があれば教えてください。宜しくお願いします。

940 名前:デフォルトの名無しさん [2023/09/10(日) 09:27:06.36 ID:yM7j2B0I.net]
オhル

941 名前:デフォルトの名無しさん [2023/09/22(金) 13:52:01.19 ID:dkRHHNCe.net]
GTKは糞

942 名前:デフォルトの名無しさん [2023/09/24(日) 09:36:46.05 ID:2YTVyUlC.net]
君は失格
やり治せ

943 名前:デフォルトの名無しさん [2023/10/20(金) 12:46:49.67 ID:/M3RKJCH.net]
GAS抜きで

944 名前:デフォルトの名無しさん mailto:sage [2023/10/20(金) 20:23:13.56 ID:c9EoYnQA.net]
>>939
=trunc(3.14, 0)
で3と表示されるはず

945 名前:デフォルトの名無しさん mailto:sage [2023/10/31(火) 16:30:00.40 ID:qmiHWWBC.net]
>>944
ありがとうございます
それを入力したセル(A1)の隣に、
=A1×8
とすると、24と出るので、内部で小数点以下を保持してないようです

946 名前:898 mailto:sage [2023/10/31(火) 17:43:19.30 ID:F7pL/7Za.net]
>>945
truncは切り捨てかな。
というかカスタム表示形式の # じゃ駄目なん?

947 名前:デフォルトの名無しさん [2024/03/10(日) 15:35:26.40 ID:H28l+VF2.net]
スプレッドシートについての質問です。

SBI証券のマイページからポートフォリオのcsvファイルをダウンロードすることができます。
GASにより、自動で、ポートフォリオの円グラフを作りたいのですが、スクリプトはコンテナバインドではなくスタンドアローンでないと駄目でしょうか?
毎日、csvファイルをダウンロードして、円グラフを描く予定なので、コンテナバインドだと駄目ですよね?

948 名前:デフォルトの名無しさん [2024/03/10(日) 15:38:07.27 ID:H28l+VF2.net]
でもスタンドアロンにすると、スプレッドシートを開くときに、ファイルのIDを指定しないと駄目ですよね。
このIDが毎日変わることになると思いますが、この部分をどうすれば楽ができるでしょうか?



949 名前:デフォルトの名無しさん mailto:sage [2024/03/10(日) 15:55:50.28 ID:vw/rAwFk.net]
なんでコンテナバインドじゃだめなの?
トリガーで1日1回実行すればいいんじゃないの

950 名前:デフォルトの名無しさん [2024/03/10(日) 16:29:51.77 ID:H28l+VF2.net]
>>949

自動でダウンロードして来るとかそういうことを想定していますか?
そういう技術はありませんので、手動でダウンロードしてきて、Google Driveにアップロードする。
これを毎日やろうと考えています。
そうするとファイル自体が毎日変わりますし、IDも変わってしまうのではないかと思います。
バインドを新しい他のファイルに引き継ぐことはできませんよね?

951 名前:デフォルトの名無しさん mailto:sage [2024/03/10(日) 16:50:03.03 ID:vw/rAwFk.net]
>>950
ファイルIDが変わってもファイルを保存するフォルダが固定なら
そのフォルダのファイル一覧を取得すればいいんでは?

952 名前:デフォルトの名無しさん [2024/03/10(日) 17:01:06.12 ID:H28l+VF2.net]
>>951

なるほど、ありがとうございました。
そういうことができるんですね。
ということは、スタンドアロンである固定したフォルダからファイルの一覧を取得する。
SBI証券からダウンロードしてきたcsvファイルは、その日の日付をファイル名とする。
ファイルの一覧からその日の日付のファイルをオープンして、円グラフを作成する。

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

953 名前:デフォルトの名無しさん [2024/03/11(月) 11:33:26.37 ID:Voh59fAx.net]
csvファイルに、

'+7441000

というデータがあります。

これをSpreadsheetとしてインポートすると、セル上で

+7441000

と表示されます。

先頭に「+」がついていますが、扱いは文字列ではなく、数字です。
この「+」をGASを使って削除したいのですが、どうすればいいでしょうか?
このセルを選択した状態で「fx」の右隣をみると「'+7441000」となっています。

954 名前:デフォルトの名無しさん [2024/03/11(月) 21:30:14.93 ID:Voh59fAx.net]
>>953

なんとか解決しました。

955 名前:デフォルトの名無しさん mailto:sage [2024/04/04(木) 12:51:32.09 ID:q67OTvc3.net]
getUi().showModelessDialog()の挙動おかしくなった?
他をクリックしたら閉じるようになったし移動も出来なくなった
バグですか?

956 名前:デフォルトの名無しさん [2024/11/25(月) 04:43:24.47 ID:XW6Q5R5Q7]
大企業資本家階級のために政治やってる自民公明がクソなのは分かりきってるか゛野党も公平もクソもない主張は゛かりで入れたい党がねえよな
郵便料金超絶値上け゛で年収‐千萬超コ゛□コ゛囗の連中やらに児童手当た゛なんた゛と税金くれてやってる上に完全教育無償化た゛のと├チ狂ったこと
ほざいて税金泥棒に追い銭とか主張する党た゛らけ貧乏人が子を産み落としたら遺棄罪て゛逮捕懲役.曰当5千圓で塀の中から孑に送金させるのか゛
筋た゛し金を出す者が孑を育てる権利を得るのも筋,子はダメな親なんて平気て゛見限るものた゛し孑がほしい金持ちに子を斡旋する制度を作る
のか゛國の仕事、力ンコ−テ□でJALANAテロリストに莫大な温室効果ガスまき散らさせてるのか゛原因の自称被災者に億の資産持っていようが
税金くれてやれた゛のほさ゛いてる党まであるしナマポ制度があるのになぜ追い銭か゛必要なのか捕捉率云々なら何万人も寄生虫公務員使って
桐生市みたくはじきまくってないで無条件に最低所得保障やって相続税で回収すればいいわな
まともな主張は消費税廃止と内部留保課税むしろ社會の寄生蟲である大企業に毎年外形課税して自民公明による不公平政治の巻戻しが必要
(ref.) ttps://www.call4.jp/info.php?type=items&id=I0000062
ttps://haneda-project.jimdofree.com/ , ttps://flight-route.com/
ttps://n-souonhigaisosyoudan.amebaownd.com/

957 名前:デフォルトの名無しさん [2024/12/12(木) 17:27:14.20 ID:/P1+mPAL.net]
createTextFinderで正常に動いてたのにソース変更してないのに最近になって
TypeError: Cannot read properties of undefined (reading 'indexOf')と言うようになった

他の部分が悪いのか、切り分けるためcreateTextFinderだけ機能させるコードを書いてたけど同様のエラー
とりあえず別の手段で回避させたけどおま環?

958 名前:デフォルトの名無しさん [2024/12/13(金) 13:21:51.42 ID:ouGUX1+B.net]
だからjsは馬鹿にされるんだ



959 名前:デフォルトの名無しさん [2025/01/05(日) 10:08:17.06 ID:8kdOFrcZ.net]
OneDriveの質問ここでok?

960 名前:デフォルトの名無しさん mailto:sage [2025/01/05(日) 10:17:13.58 ID:xU+8tKpK.net]
gasってgoogleのサービス。onedriveはmicrosoftのサービスで違う
スクリプトからonedriveを操作したいとかじゃないよね?

スレチだけど一応聞いてみれば?誰か分かるかもね

961 名前:デフォルトの名無しさん mailto:sage [2025/01/12(日) 21:20:33.84 ID:EIvdvWG6.net]
スプレッドシートさ、ExcelVBAでできる
とあるRangeからとあるRangeまでの範囲を指定して新たにRangeを作る、てのが用意されてないの地味に不便だよね

getRangeもoffsetも「座標~座標」の直接範囲指定がなくて軒並み「座標~行列数」しかないのがめんどくさい…そう思ってるの俺だけか?

A1形式の文字列をガッチャンコすれば出来るっちゃ出来るが、お前それでいいのか感がすごい

962 名前:デフォルトの名無しさん [2025/01/16(木) 13:26:46.58 ID:5fNIPSC6.net]
スプレッドシートとDriveAPIについて質問です。
他のGoogleアカウントがオーナーとして持ってるスプレッドシートで、別アカウントを閲覧者として共有。
その別アカウント側でAPI設定し、そのAPIを使ってxlsx形式でExportすることは可能?

963 名前:デフォルトの名無しさん mailto:sage [2025/01/16(木) 19:10:14.77 ID:OQ3rw5hF.net]
自分で試せよ。やりたいならやってみれば良いだろ

964 名前:デフォルトの名無しさん mailto:sage [2025/01/16(木) 19:13:42.90 ID:RFhmsTBB.net]
過疎ってる上にスクリプト荒らしが跋扈し誰か来ても煽ってくるやつしかおりゃん

いまどきのプログラマーはみんなChatGPTかCopilotに質問投げてるよ
5ちゃんねるはおしまい!

965 名前:デフォルトの名無しさん mailto:sage [2025/01/17(金) 19:35:55.09 ID:S3TtCEi5.net]
みんなぁ……どこ逝っちゃったんだブー…………

966 名前:デフォルトの名無しさん mailto:sage [2025/01/17(金) 19:39:30.95 ID:S3TtCEi5.net]
なんでこの掲示板まだ運営してるの~?

967 名前:デフォルトの名無しさん mailto:sage [2025/01/17(金) 19:41:02.24 ID:S3TtCEi5.net]

   ̄ヽ、   _ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     `'ー '´
     O
      o                        と
       。 ,. -ー冖'⌒'ー-、            思
       ,ノ         \            う
       / ,r‐へへく⌒'¬、  ヽ          キ
       {ノ へ.._、 ,,/~`  〉  }    ,r=-、  モ
      /プ ̄`y'¨Y´ ̄ヽ―}j=く    /,ミ=/  オ
    ノ /レ'>-〈_ュ`ー‐'  リ,イ}    〃 /  タ
   / _勺 イ;;∵r;==、、∴'∵; シ    〃 /   で
  ,/ └' ノ \   こ¨`    ノ{ー--、〃__/    あ
  人__/ー┬ 个-、__,,.. ‐'´ 〃`ァーァー\  っ
. /   |/ |::::::|、       〃 /:::::/    ヽ  た
/   |   |::::::|\、_________/'   /:::::/〃

968 名前:デフォルトの名無しさん [2025/02/12(水) 05:27:59.68 ID:EChoPnIL.net]
アンドロイドのGoogleスプレッドシートのセルに日付を入れたら自動で○/○(月)と表示されるようにしたい。  

どうかよろしくお願いいたします。



969 名前:デフォルトの名無しさん mailto:sage [2025/02/12(水) 07:18:57.16 ID:vZOAXNAs.net]
セルの書式設定でカスタム日付からできるけど、日付の後に半角でも良いからスペース入れないと2/12 ?とはならないね
細かい解説はぐぐってくれ

970 名前:デフォルトの名無しさん mailto:sage [2025/02/12(水) 07:20:02.17 ID:vZOAXNAs.net]
文字化けした 2/12 (水) ね
頭に0を入れるか入れないかも決められるみたい

971 名前:デフォルトの名無しさん mailto:sage [2025/02/12(水) 08:21:38.43 ID:AFDgFLET.net]
スレ違い

972 名前:デフォルトの名無しさん [2025/02/12(水) 10:54:44.45 ID:WpGOIYcm.net]
これが博士か

973 名前:デフォルトの名無しさん mailto:sage [2025/02/20(木) 20:37:16.70 ID:74VDrAOZ.net]
閑古鳥すらいなくなった糞過疎掲示板
それが5ちゃんねる

974 名前:デフォルトの名無しさん [2025/02/28(金) 17:03:24.70 ID:kF3VgEHE.net]
もう2人くらいしかいない

975 名前:デフォルトの名無しさん [2025/03/02(日) 03:32:16.42 ID:SuUkbROl.net]
たまに覗いてる
そういやContactsApp死んだな
People APIダルい

976 名前:デフォルトの名無しさん [2025/03/17(月) 20:29:14.83 ID:PwYNrAD6J]
トランプをリスペクトしようぜ何しろ連邦職員98%カットとか曰本も見習って国土破壊省を中心とした天下り税金泥棒強盗殺人集団霞が関の
コ゛ミどもに腐敗まみれで寄生虫主張しかできない無能な国会議員まで98%カットすべきだわな日銀に金刷らせてまで日本円の価値低下させて
事実上お前らから奪い取った金を盛大に自民巨額献金の大企業にくれてやって物価高騰させて付加価値型経済になるなんて信じてるバカとか
さすがにもういないた゛ろうが限られたパイを奪い合うことしかできない日本で中小零細の賃金上昇の余地なんてありはしないからな
經済の修復とは日銀が無駄金くれてやった大企業の従業員を最低賃金に統ーする法整備に6千圓でクソ航空地球破壊テロできるほど余裕綽々の
現状タダ同然の航空燃料税を1萬円/Lにして最低所得保障実現、土砂崩れ洪水、大雪.熱中症にと災害連発させて人殺しまくって海に囲まれた
日本でわざわさ゛陸域飛ばしまくって日本全国騒音まみれにして知的産業に威力業務妨害して子の学習環境まで根絶やしにしてるJALた゛のANAだの
テロリストの皆殺しなくして付加価値型経済とかあり得ない話だからな
(ref.) ttPs://www.Call4.jp/info.php?type=items&id=I0000062
ttps://haneda-project.jimdofree.com/ , ttps://flighΤ-route.Com/
ttps://n-souonhigaisosyoudan.amebaownd.com/

977 名前:デフォルトの名無しさん mailto:sage [2025/06/04(水) 20:18:23.69 ID:BeLNgZJK.net]
>>964
そうだよ便乗w
過疎過疎の地に足跡を刻むかw

978 名前:デフォルトの名無しさん [2025/10/30(木) 01:29:21.98 ID:XzU25Vj2.net]
Geminiで書かせると捗るな
同じGoogle製だし間違いも少なめ
たまに google.script.run.withFinally()とか
存在しないモン吐かれて笑うけど
もうこれでいいじゃんレベル



979 名前:デフォルトの名無しさん [2025/11/11(火) 14:18:00.93 ID:crDtfQHZ.net]
jsの方言大杉

980 名前:デフォルトの名無しさん mailto:sage [2025/12/13(土) 11:10:01.74 ID:EHTgEX58.net]
Google製のクソなら食べられる






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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