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