>>767
セル内で引数付けて使用してる関数をトリガーで定期実行するにはどうするの?
そういうサンプルがみつからない。
探検
【MACRO】Google Apps Script 質問スレ【DRIVE】
レス数が950を超えています。1000を超えると書き込みができなくなります。
768デフォルトの名無しさん
2021/05/25(火) 14:37:01.15ID:7Zlc4Jvy769766
2021/05/25(火) 15:16:25.01ID:7Zlc4Jvy とりあえずトリガー設定してみたけど最短1時間しかないね。
取得してるのは仮想通貨のレートだから最長でも5分程度にはしておきたい。
取得してるのは仮想通貨のレートだから最長でも5分程度にはしておきたい。
770766
2021/05/25(火) 15:20:50.17ID:7Zlc4Jvy ごめんなさい。
1分ありました。
1分ありました。
771766
2021/05/25(火) 15:23:17.48ID:7Zlc4Jvy 何度もすまん。
無効な引数でエラーになる。
やはりセル内で使用する関数にトリガーは使えないのでは?
無効な引数でエラーになる。
やはりセル内で使用する関数にトリガーは使えないのでは?
772デフォルトの名無しさん
2021/05/25(火) 19:19:13.82ID:bqN1UUYu そのセルの情報も書け
773766
2021/05/25(火) 19:47:34.24ID:7Zlc4Jvy セル内は
=pswV1("0x27327672d1dc51f4dc58c9f413e1fa7e7ad8245e")
としています。
いまのところロード時とタブ切り替え時の任意リロード時のみ実行されます。
=pswV1("0x27327672d1dc51f4dc58c9f413e1fa7e7ad8245e")
としています。
いまのところロード時とタブ切り替え時の任意リロード時のみ実行されます。
774デフォルトの名無しさん
2021/05/25(火) 20:07:56.28ID:bqN1UUYu775766
2021/05/25(火) 20:25:01.51ID:7Zlc4Jvy >>774
複数あります。
いまのところ5個くらいですが日々変動します。
トリガーがダメならセル内から呼び出す関数からは引数とセル位置だけグローバル配列に入れておいて
トリガーから呼んだ関数でまとめて通信させる方法もあるのかなと考え始めてます。
まだ実装してないので動くかわかりませんが。
複数あります。
いまのところ5個くらいですが日々変動します。
トリガーがダメならセル内から呼び出す関数からは引数とセル位置だけグローバル配列に入れておいて
トリガーから呼んだ関数でまとめて通信させる方法もあるのかなと考え始めてます。
まだ実装してないので動くかわかりませんが。
776デフォルトの名無しさん
2021/05/25(火) 21:36:08.76ID:FW9zXdEp >>775
それか1分おきにどこでもいいからセル書き換えるようにすれば勝手に再計算されるのでは
それか1分おきにどこでもいいからセル書き換えるようにすれば勝手に再計算されるのでは
777デフォルトの名無しさん
2021/06/03(木) 05:38:31.48ID:B8Ey28oS GASでPhantom JS cloudで動的なページをスクレイピングする時に、どうやらページが重くて表示に時間がかかるため取得できない値があります
すでに表示されたサイトに対してjQueryで取得したりPythonとseleniumを使って
driver.get(url)
time.sleep(30)
html = driver.page_source
みたいに待機時間を作ればちゃんと取得できるので値は確かに存在しており、GASでうまくいかないのは待機時間がないせいだと思います
Phantom JS cloudでも待機時間を入れたいのですが可能でしょうか?どこに入れればよいのでしょうか?
すでに表示されたサイトに対してjQueryで取得したりPythonとseleniumを使って
driver.get(url)
time.sleep(30)
html = driver.page_source
みたいに待機時間を作ればちゃんと取得できるので値は確かに存在しており、GASでうまくいかないのは待機時間がないせいだと思います
Phantom JS cloudでも待機時間を入れたいのですが可能でしょうか?どこに入れればよいのでしょうか?
778デフォルトの名無しさん
2021/06/07(月) 12:08:43.93ID:tyfu3spt フォームの選択肢ラジオボタンA,B,Cの
それぞれにバラバラの回答数上限を設定する方法を教えてください。さらにラジオボタン横に残数があるとなお嬉しい
それぞれにバラバラの回答数上限を設定する方法を教えてください。さらにラジオボタン横に残数があるとなお嬉しい
779デフォルトの名無しさん
2021/06/07(月) 13:30:55.90ID:pl6618+T >>777
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 )
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 )
780デフォルトの名無しさん
2021/06/10(木) 08:31:00.19ID:rZOQ7XKm 機能の23時にはちゃんと動いていたスクリプトが、今朝試してみたらエラーが出てしまってる
function doPost(e) {
const getdata = JSON.parse(e.postData.getDataAsString());
//略
}
という関数を使ってるスクリプトがいくつかあるんだけど、全部
TypeError: e.postData.getDataAsString is not a function
というエラーが出るようになってしまった
同じ人いる?
function doPost(e) {
const getdata = JSON.parse(e.postData.getDataAsString());
//略
}
という関数を使ってるスクリプトがいくつかあるんだけど、全部
TypeError: e.postData.getDataAsString is not a function
というエラーが出るようになってしまった
同じ人いる?
782デフォルトの名無しさん
2021/06/11(金) 01:04:22.78ID:W2MDAmi/783デフォルトの名無しさん
2021/06/12(土) 21:54:06.58ID:yi8Rxd+W 見当はずれな質問も可能性高いんですが,
GASでうんこした時間をカレンダー登録するだけのスクリプト書いて,
ウェブアプリとしてデプロイしてAndroidのchromeのショートカット作って
それをデスクトップに保存して,そのアイコンをクリックすれば自分の
Googleカレンダーにうんこした時間登録できるとこまではできたんですが,
webショートカットなので当然chromeが起動してエラー画面が表示されちゃう
これをクリックしたらwebページも出さずに処理させる方法ってあるんでしょうか?
GASでうんこした時間をカレンダー登録するだけのスクリプト書いて,
ウェブアプリとしてデプロイしてAndroidのchromeのショートカット作って
それをデスクトップに保存して,そのアイコンをクリックすれば自分の
Googleカレンダーにうんこした時間登録できるとこまではできたんですが,
webショートカットなので当然chromeが起動してエラー画面が表示されちゃう
これをクリックしたらwebページも出さずに処理させる方法ってあるんでしょうか?
784デフォルトの名無しさん
2021/06/13(日) 00:34:56.20ID:drIN04VN >>783
claspで実行すれば?
https://github.com/google/clasp
https://takuya-1st.hatenablog.jp/entry/2021/06/08/021238
Androidってのがスマホから実行するって意味ならゴメンだけど
claspで実行すれば?
https://github.com/google/clasp
https://takuya-1st.hatenablog.jp/entry/2021/06/08/021238
Androidってのがスマホから実行するって意味ならゴメンだけど
785デフォルトの名無しさん
2021/06/13(日) 00:57:33.48ID:TPT9gOWH >>784
ありがとうございます.
やっぱりそういう目的のものではないんですなあ……
スマホは常時持ち歩いているのでうんこするときに便所でワンクリックで
うんこした時刻を記録したいという目的なのでスマホから実行させたいんですよね
やっぱりアプリ作るしかないのかしら(´・ω・`)
ありがとうございます.
やっぱりそういう目的のものではないんですなあ……
スマホは常時持ち歩いているのでうんこするときに便所でワンクリックで
うんこした時刻を記録したいという目的なのでスマホから実行させたいんですよね
やっぱりアプリ作るしかないのかしら(´・ω・`)
786デフォルトの名無しさん
2021/06/13(日) 19:42:39.72ID:lkc6O7cF >>785
TermuxのCUIからリクエスト送れないかね
TermuxのCUIからリクエスト送れないかね
787デフォルトの名無しさん
2021/06/13(日) 22:42:32.09ID:TPT9gOWH788デフォルトの名無しさん
2021/06/14(月) 01:54:11.31ID:btOps/6G >>787
bashで書いたのをctrl + rとかで呼び出せばいいんちゃう
bashで書いたのをctrl + rとかで呼び出せばいいんちゃう
789デフォルトの名無しさん
2021/06/14(月) 14:10:38.65ID:G+aGjkZp >>785
iPhoneだと↓みたいな感じでできるみたいだから
https://ntwmachine.com/shortcut-gas
Androidでも↓みたいなアプリでできそうじゃない?
HTTP Request Shortcuts
https://play.google.com/store/apps/details?id=ch.rmy.android.http_shortcuts
iPhoneだと↓みたいな感じでできるみたいだから
https://ntwmachine.com/shortcut-gas
Androidでも↓みたいなアプリでできそうじゃない?
HTTP Request Shortcuts
https://play.google.com/store/apps/details?id=ch.rmy.android.http_shortcuts
790デフォルトの名無しさん
2021/06/14(月) 17:48:55.22ID:WNlBtQy0 >>787
TaskerとTermux用Taskerプラグイン買えばショートカットとか色々なトリガーでコマンド実行できる
TaskerとTermux用Taskerプラグイン買えばショートカットとか色々なトリガーでコマンド実行できる
791デフォルトの名無しさん
2021/06/14(月) 21:57:18.79ID:m506649G >>783のやりたいこととやってみたことを100%理解してるわけじゃないけど、詳しくないなりに考えたのが、自分ならうんこした時間をカレンダーに記録するスクリプトと連携したスプレッドシートがあったとして、IFTTTでボタンウィジェットを押したらそのスプレッドシートに何でもいいから行が追加されるようにして、うんこ記録関数のトリガーはスプレッドシートが更新された時に発動するようにする
792デフォルトの名無しさん
2021/06/15(火) 16:38:21.05ID:0GdnjUqP >>783
キチンとhtml出力して、html内にウインドウ閉じるJavaScriptを入れるってのはダメですか?
キチンとhtml出力して、html内にウインドウ閉じるJavaScriptを入れるってのはダメですか?
793デフォルトの名無しさん
2021/06/15(火) 22:38:27.71ID:Pikc/bWs うわー皆さんいろいろアイディアありがとうございます.
>>792
試してみたんですがAndroid環境だと画面閉じないですね…
>>791
単純にうんこした時間をGoogleカレンダーに登録したいだけなんすよね…
なのでスプレッドシートとかは使いたくなくて,コードは
var date = new Date();
CalendarApp.getDefaultCalendar().createEvent("💩",date , date)
こんな感じで十分なので,できればこれをandroid上でアイコンに割り当てて一発実行したいのです.
>>788
ターミナル開く手間は避けたくて……
>>789
>>790
このどっちかででけそうな気がしてきたのでちょっと試してみます!
>>792
試してみたんですがAndroid環境だと画面閉じないですね…
>>791
単純にうんこした時間をGoogleカレンダーに登録したいだけなんすよね…
なのでスプレッドシートとかは使いたくなくて,コードは
var date = new Date();
CalendarApp.getDefaultCalendar().createEvent("💩",date , date)
こんな感じで十分なので,できればこれをandroid上でアイコンに割り当てて一発実行したいのです.
>>788
ターミナル開く手間は避けたくて……
>>789
>>790
このどっちかででけそうな気がしてきたのでちょっと試してみます!
794デフォルトの名無しさん
2021/06/15(火) 22:54:32.69ID:Jy0S46aa 絵文字かわヨ
795デフォルトの名無しさん
2021/07/13(火) 10:23:44.28ID:CjZmk7C6 共有しているスプレッドシートの
「編集者は権限を変更して共有できます」のチェックボックスを外す(無効にする)
ソースコードを教えてください
setShareableByEditors(shareable) を使えばできるようなのですが
使い方が分かりません
よろしくお願いいたしますm(_ _)m
「編集者は権限を変更して共有できます」のチェックボックスを外す(無効にする)
ソースコードを教えてください
setShareableByEditors(shareable) を使えばできるようなのですが
使い方が分かりません
よろしくお願いいたしますm(_ _)m
796デフォルトの名無しさん
2021/07/13(火) 10:54:14.06ID:Vr6vzxIM >>795
その関数の引数をfalseにするだけやろ
その関数の引数をfalseにするだけやろ
797デフォルトの名無しさん
2021/07/14(水) 18:54:15.93ID:GFXnTS4Q グループ内で簡易なうpろだとして使いたいのですが、ファイルのアップロード、コメントが記入できて、
アップロード先のURLとコメントをスプレッドシートにリスト化してくにはどうしたらいいんでしょうか?
ファイルのアップロード、コメント記入してそれをスプレッドシートにリスト化、それぞれは出来たんですが組合わせると動作しません。
なにかサンプルになるようなページを教えていただけると助かります…
アップロード先のURLとコメントをスプレッドシートにリスト化してくにはどうしたらいいんでしょうか?
ファイルのアップロード、コメント記入してそれをスプレッドシートにリスト化、それぞれは出来たんですが組合わせると動作しません。
なにかサンプルになるようなページを教えていただけると助かります…
798デフォルトの名無しさん
2021/07/15(木) 15:20:59.29ID:ygp86UHP シートを作る
うpするGASを書く
アップロード先のURLとコメントをスプレッドシートにリスト化
>ファイルのアップロード、コメント記入してそれをスプレッドシートにリスト化、それぞれは出来たんですが
もっと具体的に
出来ればソースとか晒すべき
うpするGASを書く
アップロード先のURLとコメントをスプレッドシートにリスト化
>ファイルのアップロード、コメント記入してそれをスプレッドシートにリスト化、それぞれは出来たんですが
もっと具体的に
出来ればソースとか晒すべき
799デフォルトの名無しさん
2021/07/15(木) 21:16:55.83ID:gFOIdhYR800デフォルトの名無しさん
2021/07/18(日) 21:16:48.01ID:hteKw5EV スプレッドシートのトリガー
onSelectionChangeの挙動ホント悪すぎる
ここらへんVBAと比べてダメ過ぎだな
onSelectionChangeの挙動ホント悪すぎる
ここらへんVBAと比べてダメ過ぎだな
801デフォルトの名無しさん
2021/07/29(木) 06:32:21.24ID:RJZsh/tv スプレッドシートのグラフもひどいよ。
setOption(‘vAxes.1.title’,’hoge’)とかも
setOption(‘vAxes.1.title’,’hoge’)とかも
802デフォルトの名無しさん
2021/08/01(日) 21:02:43.56ID:zu2woDem スプレッドシートとhtmlserviceで簡単なwebアプリ作ろうと思ったのですが、ユーザー毎のデータも扱う場合、どうやるのがいいんでしょうか。
アプリの実行者を「ログインしているユーザー」にすると、スプレッドシートへのアクセス件が必要だから、他の人のデータにアクセスされそうで怖い。
だからといって、実行者を「自分」(開発者)にすると、操作してるユーザーが誰なのかを判別できないし・・。
アプリの実行者を「ログインしているユーザー」にすると、スプレッドシートへのアクセス件が必要だから、他の人のデータにアクセスされそうで怖い。
だからといって、実行者を「自分」(開発者)にすると、操作してるユーザーが誰なのかを判別できないし・・。
803デフォルトの名無しさん
2021/08/05(木) 11:42:49.43ID:eMHroxtV804デフォルトの名無しさん
2021/08/08(日) 03:08:43.28ID:JLttzwiP >>803
user | name | score
aaa@gmail.com | taro | 85
bbb@gmail.com | jiro | 75
みたいにスプレッドシートをDBとして使うWEBアプリの場合、
アプリを「自分(開発者)」として実行すると、ログインユーザーのemailが取得できないから、スプレッドシートから当該ユーザーのデータを取得できない
「アクセスしているユーザー」として実行すれば、ログインユーザーのemailが取得できるけど、このスプレッドシートへのアクセス権を与えないといけないので、他のユーザーの情報も全て見れてしまう
ので、普通はどうするものなのかが知りたいです。(有償のworkspaceは使わない前提です)
user | name | score
aaa@gmail.com | taro | 85
bbb@gmail.com | jiro | 75
みたいにスプレッドシートをDBとして使うWEBアプリの場合、
アプリを「自分(開発者)」として実行すると、ログインユーザーのemailが取得できないから、スプレッドシートから当該ユーザーのデータを取得できない
「アクセスしているユーザー」として実行すれば、ログインユーザーのemailが取得できるけど、このスプレッドシートへのアクセス権を与えないといけないので、他のユーザーの情報も全て見れてしまう
ので、普通はどうするものなのかが知りたいです。(有償のworkspaceは使わない前提です)
805デフォルトの名無しさん
2021/08/10(火) 05:15:26.61ID:MjVqGGgl806デフォルトの名無しさん
2021/08/10(火) 11:13:59.22ID:9wi/dlAk GAS には、ユーザー認証機能があるの?
認証は、Firebase Authentication じゃないの?
認証は、Firebase Authentication じゃないの?
807デフォルトの名無しさん
2021/08/19(木) 04:51:29.28ID:l+iKsjPF 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() のようなことがしたいんです。具体的な数値が返ってくるような。
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() のようなことがしたいんです。具体的な数値が返ってくるような。
808デフォルトの名無しさん
2021/08/19(木) 08:07:07.49ID:hKprbQAC809デフォルトの名無しさん
2021/08/19(木) 12:03:47.46ID:l+iKsjPF >>808
getValue()は使えないみたいなんですよね、not a functionになって
getValueでしてみたらnullが帰ってきて謎...
ぐぐってもサンプルが出てこなくてまいりましたわ
getValue()は使えないみたいなんですよね、not a functionになって
getValueでしてみたらnullが帰ってきて謎...
ぐぐってもサンプルが出てこなくてまいりましたわ
810デフォルトの名無しさん
2021/08/19(木) 13:20:16.21ID:JpyvyW0f 公式のリファレンス読みなさい
811デフォルトの名無しさん
2021/10/13(水) 00:47:48.09ID:Qk99MJFD812デフォルトの名無しさん
2021/10/13(水) 01:39:22.36ID:sH5qc9+o >>811
何言ってだ
何言ってだ
813デフォルトの名無しさん
2021/10/17(日) 20:46:12.87ID:Nd7q+jNJ ピボットテーブルで出力したテーブルの特定の文字列のセルを非表示にしたいのですが
やり方が御座いましたらご教示お願いいたします
条件付き書式で一致すれば文字を白にするといった「見えなくする」ではなく
セルをコピーしてもコピーされない状態にしたいです
よろしくお願いいたします
やり方が御座いましたらご教示お願いいたします
条件付き書式で一致すれば文字を白にするといった「見えなくする」ではなく
セルをコピーしてもコピーされない状態にしたいです
よろしくお願いいたします
814デフォルトの名無しさん
2021/11/01(月) 23:15:46.54ID:Q50KTbzj 公式見てもわからなかったんですが、
新しいスプレッドシートを作る関数→できる
そのスプレッドシートに何か書き込む関数→できる
そのスプレッドシートのスクリプトエディタをいじってスクリプトを付ける関数→?
できるんでしょうか?
新しいスプレッドシートを作る関数→できる
そのスプレッドシートに何か書き込む関数→できる
そのスプレッドシートのスクリプトエディタをいじってスクリプトを付ける関数→?
できるんでしょうか?
815デフォルトの名無しさん
2021/12/02(木) 21:38:11.37ID:FXlnpm0p816デフォルトの名無しさん
2021/12/18(土) 23:17:06.97ID:a3T2SFZh はじめまして。
質問ですが、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についてはド素人(今月から使い始めました)で、ネット検索で色々調べてみましたが、
これといった解決策がわからず、困り果てています。
何とかお知恵を貸していただけますよう、お願い致します。
質問ですが、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についてはド素人(今月から使い始めました)で、ネット検索で色々調べてみましたが、
これといった解決策がわからず、困り果てています。
何とかお知恵を貸していただけますよう、お願い致します。
817デフォルトの名無しさん
2021/12/19(日) 02:11:05.33ID:TUb0vitt >>816
単純にスプレッドシートの表示形式が数値か日付かって話じゃないの
単純にスプレッドシートの表示形式が数値か日付かって話じゃないの
818デフォルトの名無しさん
2021/12/19(日) 11:32:13.88ID:RkNKFft4819デフォルトの名無しさん
2021/12/20(月) 12:14:27.96ID:ViJtvVZ6 スプレッドシートのメニューバー変わりましたよね?
拡張機能からスクリプト画面選ぶようになってる…
調べたら10月から順次変わってる…?今日気付いたんですが2ヶ月掛かって更新されたってことでしょうか?
拡張機能からスクリプト画面選ぶようになってる…
調べたら10月から順次変わってる…?今日気付いたんですが2ヶ月掛かって更新されたってことでしょうか?
820デフォルトの名無しさん
2021/12/20(月) 14:36:16.49ID:Xy/RGdSX うちのは10月末に変わってたよ。
821デフォルトの名無しさん
2022/01/15(土) 18:08:24.36ID:OIci5frO web版のエディタが使いにくい。
ファイル+のとこのペイン?っていうの?あれが邪魔で小さくしたくてデベロッパーコンソールでイジってるんだけどどのcss変えれば小さくできますか?
ファイル+のとこのペイン?っていうの?あれが邪魔で小さくしたくてデベロッパーコンソールでイジってるんだけどどのcss変えれば小さくできますか?
822デフォルトの名無しさん
2022/01/17(月) 18:17:08.30ID:ymAJekA/ スライドからスクリプト開いてスクルプト書きました。
スライドからそのスクリプト実行したくて、onOpen()でスライド表示時の右サイドバーにスジュリプト起動ボタンを表示するようにしました。
ところが、スライド開いた時にこのonOpenが実行っされません。
トリガーに登録せよ!という情報もあったのですが、トリガー登録画面には、「スライドを開いた時」的なものは無く、
「カレンダーを開いた時」のようなものしかありませんでした。
スライドを開いた時に、スクリプト起動させるボタンのようなものを表示して、そこからスクチプトを起動したいです。
方法があれば教えてください。
スライドからそのスクリプト実行したくて、onOpen()でスライド表示時の右サイドバーにスジュリプト起動ボタンを表示するようにしました。
ところが、スライド開いた時にこのonOpenが実行っされません。
トリガーに登録せよ!という情報もあったのですが、トリガー登録画面には、「スライドを開いた時」的なものは無く、
「カレンダーを開いた時」のようなものしかありませんでした。
スライドを開いた時に、スクリプト起動させるボタンのようなものを表示して、そこからスクチプトを起動したいです。
方法があれば教えてください。
823822
2022/01/18(火) 10:50:27.27ID:Y4BAPieC 解決しました。下記に載ってました。
Https://myfunc.jp/items/00015/index.html
Https://myfunc.jp/items/00015/index.html
824デフォルトの名無しさん
2022/02/20(日) 03:04:59.59ID:kcCfXnh0 指定した文字列Aと背景色の2条件で集計したいのですが、書き方を教えて下さい。
文字列Aだけ、背景色だけ、などはいくつか見つけられたのですが、組み合わせ方が分かりません…。
文字列Aだけ、背景色だけ、などはいくつか見つけられたのですが、組み合わせ方が分かりません…。
825デフォルトの名無しさん
2022/02/21(月) 21:47:26.46ID:UKJTHoUK https://script.google.com/
このページって何処からたどり着くんですか?
googleドライブとかから新規にスクリプトを作成するのは出来るんですけど
何処にも上記のリンクが無いです
このページって何処からたどり着くんですか?
googleドライブとかから新規にスクリプトを作成するのは出来るんですけど
何処にも上記のリンクが無いです
826デフォルトの名無しさん
2022/02/28(月) 14:47:01.29ID:QEzJwIFm 出来そうで出来ないというか検索してもやりかたが見つからなかったので
知ってたら助けて欲しい
【やりたいこと】
エクセルファイルをGASでスプレッドシートに変換してスプレッドシートにする
但しエクセルファイルの各シートのセルにはエクセル特有の文法で記載された計算式や関数がふんだんに使われているものとする
【ひっかかっていること】
単純にGASでDriveAppやDrive.Filesを用いてエクセルファイルをスプレッドシートに変換するだけだと
変換されたスプレッドシートのセルにはエクセルの特有の文法で記載された計算式や関数が移植されてきただけで
スプレッドシートではエクセル特有の文法で記載された計算式や関数は処理できないのでやりたいことが出来ない状態
なのでエクセルのセルに埋め込まれてる計算式で求められた計算値だけをスプレッドシートに移植したい
知ってたら助けて欲しい
【やりたいこと】
エクセルファイルをGASでスプレッドシートに変換してスプレッドシートにする
但しエクセルファイルの各シートのセルにはエクセル特有の文法で記載された計算式や関数がふんだんに使われているものとする
【ひっかかっていること】
単純にGASでDriveAppやDrive.Filesを用いてエクセルファイルをスプレッドシートに変換するだけだと
変換されたスプレッドシートのセルにはエクセルの特有の文法で記載された計算式や関数が移植されてきただけで
スプレッドシートではエクセル特有の文法で記載された計算式や関数は処理できないのでやりたいことが出来ない状態
なのでエクセルのセルに埋め込まれてる計算式で求められた計算値だけをスプレッドシートに移植したい
827デフォルトの名無しさん
2022/02/28(月) 20:31:28.47ID:PjfLudyf 関数で計算されてるデータを全て数値などに置き換えた物をアップすれば簡単じゃね?
データとして貼り付ければ一瞬だしマクロ組めるでしょ。
データとして貼り付ければ一瞬だしマクロ組めるでしょ。
828デフォルトの名無しさん
2022/03/01(火) 18:33:50.02ID:VTA82jsu そのエクセルが他から提出されてくるもので数百単位であるので
個々にそのマクロを仕込んだものを実行するというのは大変かなぁ
できればエクセルはそのままで一括で読み込んで
GASのなかでやっちゃいたい
無理げかなぁ
個々にそのマクロを仕込んだものを実行するというのは大変かなぁ
できればエクセルはそのままで一括で読み込んで
GASのなかでやっちゃいたい
無理げかなぁ
829デフォルトの名無しさん
2022/03/01(火) 18:59:33.32ID:CkaReruZ そういう後だしするからアドバイスするだけ無駄ってのが出てくるんだよね
830デフォルトの名無しさん
2022/03/02(水) 20:59:04.21ID:CHjRcKIO >>826
スプレッドシートでは処理できない、って言う時点でGASじゃ無理でしょ。
どうしてもやりたいなら、下記くらいしか思いつかない。
@その数式と同じ動きをする関数を自分でGASで実装する
AWinのタスクスケジューラとか使って、VBAでExcel文字列化するなりCSV出力するなりして、それをGASでスプレッドシート化する。GoogleドライブアプリでWinとドライブを同期する
スプレッドシートでは処理できない、って言う時点でGASじゃ無理でしょ。
どうしてもやりたいなら、下記くらいしか思いつかない。
@その数式と同じ動きをする関数を自分でGASで実装する
AWinのタスクスケジューラとか使って、VBAでExcel文字列化するなりCSV出力するなりして、それをGASでスプレッドシート化する。GoogleドライブアプリでWinとドライブを同期する
831デフォルトの名無しさん
2022/03/02(水) 21:59:04.64ID:vYgwEkZg しょうがないから一つヒント
同じフォルダ、若しくは特定のフォルダに入ってるExcelのファイルを全て文字に変換して保存するマクロを組めばOK
何百あろうが一瞬
全てのブックの全てのシートへループでぐるぐる回すだけだから、そんなに難しくないよ
同じフォルダ、若しくは特定のフォルダに入ってるExcelのファイルを全て文字に変換して保存するマクロを組めばOK
何百あろうが一瞬
全てのブックの全てのシートへループでぐるぐる回すだけだから、そんなに難しくないよ
832デフォルトの名無しさん
2022/03/11(金) 16:04:46.03ID:GfEhxdTj GASのソースコード内でタイムゾーンを変更することはできるのだろうか?
GASのエディタにあるjsonに書いて指定するというのは見つけたが、それだとコード内でgoogleドライブから開いたスプレッドシートには適用されなかった
GASのエディタではTokyoにしてても開いたスプレッドシートはPacificになってる
GASのエディタにあるjsonに書いて指定するというのは見つけたが、それだとコード内でgoogleドライブから開いたスプレッドシートには適用されなかった
GASのエディタではTokyoにしてても開いたスプレッドシートはPacificになってる
833デフォルトの名無しさん
2022/03/11(金) 21:23:44.78ID:gLuUS5Uy それはスプレッドシート自体の設定いじる
834デフォルトの名無しさん
2022/03/11(金) 21:27:52.87ID:gLuUS5Uy もしくはGoogleアカウント設定のプロフィールのタイムゾーンいじると
それ以降作成したスプレッドシートはデフォルト変わってるはず
それ以降作成したスプレッドシートはデフォルト変わってるはず
835デフォルトの名無しさん
2022/03/11(金) 21:31:24.19ID:0mAcmeni >>834
デマ回答やめろ😡
デマ回答やめろ😡
836デフォルトの名無しさん
2022/03/16(水) 10:48:26.08ID:JIpzCEZ0 スプレッドシートの複数列を指定して二次元配列に入れる場合のやりかたはわかるんだけど
離れた二つの列を指定することって出来る?
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列は隣り合ってないからうまく実現できない
離れた二つの列を指定することって出来る?
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列は隣り合ってないからうまく実現できない
837デフォルトの名無しさん
2022/03/16(水) 11:31:39.30ID:y8PMgdeo Rangeも配列で指定すればいいんじゃね
838デフォルトの名無しさん
2022/03/28(月) 04:13:33.54ID:XbT1Q7Sk const files1 = DriveApp.getFolderById(folderId1).getFiles();
const files2 = DriveApp.getFolderById(folderId2).getFiles();
こんな感じで異なるフォルダに格納されてるファイルをgetFiles取得した場合
その結果のfiles1とfiles2を合体させてfiles3にするようなことってできる?
いまだとファイルの数だけ繰り返すっていうのでfiles1を回すループ処理とfiles2を回すループ処理という感じで見栄えが悪いから
2つをマージしたfiles3を回すループ処理って感じにしたい
const files2 = DriveApp.getFolderById(folderId2).getFiles();
こんな感じで異なるフォルダに格納されてるファイルをgetFiles取得した場合
その結果のfiles1とfiles2を合体させてfiles3にするようなことってできる?
いまだとファイルの数だけ繰り返すっていうのでfiles1を回すループ処理とfiles2を回すループ処理という感じで見栄えが悪いから
2つをマージしたfiles3を回すループ処理って感じにしたい
839デフォルトの名無しさん
2022/03/28(月) 09:02:53.32ID:/mas85k3 無理なのでループ処理部分をメソッド化するなりしてどうぞ
840デフォルトの名無しさん
2022/03/28(月) 11:53:32.50ID:XbT1Q7Sk えぇ〜…
残念
残念
841デフォルトの名無しさん
2022/03/31(木) 12:20:31.27ID:A0O2N5qb GASでセルの値を変更させて変更後の値を読み取ってって一連の処理をしたいんだけど
一連の処理が終わるまでシートに表示される値がリフレッシュされないらしく
処理としてはセルへ値を出力してるけど読み取る値が出力前の値になってる
強制的にシートに表示される値を最新にすることってできないの?
一連の処理が終わるまでシートに表示される値がリフレッシュされないらしく
処理としてはセルへ値を出力してるけど読み取る値が出力前の値になってる
強制的にシートに表示される値を最新にすることってできないの?
842デフォルトの名無しさん
2022/03/31(木) 13:19:55.86ID:5pPwE+XM コードを貼れ
843デフォルトの名無しさん
2022/04/01(金) 06:42:07.95ID:68FipywF setvalueで値をセルに入れるのってリアルタイム反映じゃなくて
スタックしてて処理が終わるみたいな切りがいいところで
まとめて反映する仕様じゃないのけ?
クラウドベースの実行だからサーバー側の負荷軽減のためだと聞いたが
コード云々でなんとかなるなら知りたい
スタックしてて処理が終わるみたいな切りがいいところで
まとめて反映する仕様じゃないのけ?
クラウドベースの実行だからサーバー側の負荷軽減のためだと聞いたが
コード云々でなんとかなるなら知りたい
844デフォルトの名無しさん
2022/04/08(金) 13:56:00.62ID:PYg//+II 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個になってしまってる
空白セルの要素も残したいんだけど、どうやったらいいのだろうか?
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個になってしまってる
空白セルの要素も残したいんだけど、どうやったらいいのだろうか?
845デフォルトの名無しさん
2022/04/08(金) 18:27:03.86ID:tiBN51P7 >>844
filter()とmap()要らなくない?
filter()とmap()要らなくない?
846デフォルトの名無しさん
2022/04/08(金) 20:09:46.76ID:PYg//+II >>845
そうなのかな
ここの記事を読んだんだけど
https://iwb.jp/google-apps-script-getvalues-two-dimensional-array-concat/
そうなのかな
ここの記事を読んだんだけど
https://iwb.jp/google-apps-script-getvalues-two-dimensional-array-concat/
847デフォルトの名無しさん
2022/04/08(金) 20:12:32.05ID:PYg//+II result = range.getValues().flat()
とりあえず .filter以下を消したら望んでた結果は得られた模様
とりあえず .filter以下を消したら望んでた結果は得られた模様
848デフォルトの名無しさん
2022/04/08(金) 20:16:40.07ID:tiBN51P7 >>846
この記事は空白除去してるじゃん
この記事は空白除去してるじゃん
849デフォルトの名無しさん
2022/04/08(金) 20:28:36.27ID:uSpd3hvB セルに手入力された5:22とか8:24とかの見た目時間になってる単なる文字列を使って
時間の足し算をしたいんだが、なんかいいアイディアはないだろうか?
時間の足し算をしたいんだが、なんかいいアイディアはないだろうか?
850デフォルトの名無しさん
2022/04/08(金) 20:30:57.57ID:TDBa7GsZ 足し算自体はスプレッドシート上の計算式ではなく
値だけ変数に入れてhas上でやりたい
値だけ変数に入れてhas上でやりたい
851デフォルトの名無しさん
2022/04/14(木) 12:07:06.46ID:l9jSNk17 スプレッドシートに数十個のボタンを図形描画してスクリプトの割り当てをしたんだが何回設定しても
いつのまにかスクリプトの割り当てで割り当てたスクリプトが空欄に戻ってしまう
これって何か制限があったりするのだろうか
一通り設定して最初のボタンから確認していくと空欄に戻ってしまってて
ボタン押しても反応しない
設定した直後にボタン押すときはスクリプトが動いてるから最初から設定できてないわけではない
いつのまにかスクリプトの割り当てで割り当てたスクリプトが空欄に戻ってしまう
これって何か制限があったりするのだろうか
一通り設定して最初のボタンから確認していくと空欄に戻ってしまってて
ボタン押しても反応しない
設定した直後にボタン押すときはスクリプトが動いてるから最初から設定できてないわけではない
852デフォルトの名無しさん
2022/05/24(火) 07:38:06.26ID:78erdOqF ClassroomAPIを使って
-----
Classroom.Courses.CourseWork.list(クラスルームのID).courseWork.forEach(w =>{
〜〜〜〜〜〜
})
-----
ってかんじで受講しているクラスで出された課題それぞれに対して処理をしているんだけど、
これだと提出済み課題に対しても処理してしまう。
提出済みか判定して、除外するためにはどうしたらいい?
-----
Classroom.Courses.CourseWork.list(クラスルームのID).courseWork.forEach(w =>{
〜〜〜〜〜〜
})
-----
ってかんじで受講しているクラスで出された課題それぞれに対して処理をしているんだけど、
これだと提出済み課題に対しても処理してしまう。
提出済みか判定して、除外するためにはどうしたらいい?
853デフォルトの名無しさん
2022/05/27(金) 11:50:40.73ID:S0cy91Tb 提出済みか判定して、除外す提出済みか判定して、除外すればいい
854デフォルトの名無しさん
2022/05/28(土) 11:07:36.06ID:81XaDMLN FastAPI
OCID
OCID
855デフォルトの名無しさん
2022/05/30(月) 11:13:52.52ID:Z6OL71NL Google Apps Web API
https://www.youtube.com/watch?v=i80Dy6PwWqE
https://www.youtube.com/watch?v=i80Dy6PwWqE
856デフォルトの名無しさん
2022/07/22(金) 09:02:24.10ID:CcjlX4kF 質問します
ローカルにあるファイルをメールに添付して
指定時間に送信するみたいなことを
gasでやりたいのですが、
ローカルファイルをGoogleドライブに取り込むところから躓いてます
こういうやり方があるよ、とかこのHPが参考になる、みたいなのはありますか?
ローカルにあるファイルをメールに添付して
指定時間に送信するみたいなことを
gasでやりたいのですが、
ローカルファイルをGoogleドライブに取り込むところから躓いてます
こういうやり方があるよ、とかこのHPが参考になる、みたいなのはありますか?
857sage
2022/07/28(木) 15:18:39.59ID:5gdZfTov m5stackでボタンを押す → スプレッドシートに書き込み → 編集をgmailで送信
というのをしたいなと。
参考にしたのはこのページ
https://knt60345blog.com/m5stack-googlespreadsheet/
要はボタンを押すとスマホに通知がくるシステムを作りたいのです。ところがgmailの送信がされません。
やったこと
1.スプレッドシートに編集があったときに通知する
→ 手入力だと通知される。しかし、scriptによる編集では通知されない。
2.gas上で編集をトリガーにしてsendgmailを使う
→失敗。おそらく1と同じ理由
3.スプレッドシートを編集するスクリプトの中にsendgmailを記述する
→編集はされるがメールは送信されない
sendmailの使い方を間違えているのかと思いましたがメールを送るだけのコードを実行するときちんと送れていました。
ヒントをもらえるとありがたいです。よろしくお願いします。
というのをしたいなと。
参考にしたのはこのページ
https://knt60345blog.com/m5stack-googlespreadsheet/
要はボタンを押すとスマホに通知がくるシステムを作りたいのです。ところがgmailの送信がされません。
やったこと
1.スプレッドシートに編集があったときに通知する
→ 手入力だと通知される。しかし、scriptによる編集では通知されない。
2.gas上で編集をトリガーにしてsendgmailを使う
→失敗。おそらく1と同じ理由
3.スプレッドシートを編集するスクリプトの中にsendgmailを記述する
→編集はされるがメールは送信されない
sendmailの使い方を間違えているのかと思いましたがメールを送るだけのコードを実行するときちんと送れていました。
ヒントをもらえるとありがたいです。よろしくお願いします。
858デフォルトの名無しさん
2022/08/03(水) 00:57:44.35ID:Mtys3/qj >>856
簡単なのはGoogle DriveアプリでPCと同期させる方法かと思います。
簡単なのはGoogle DriveアプリでPCと同期させる方法かと思います。
859デフォルトの名無しさん
2022/08/03(水) 15:39:22.24ID:IS1ZoKH3 >>856
ローカルファイルと言うことはトリガー実行じゃないんだよね?
どういう操作を想定してるのかわからんけど、HTMLでダイアログ表示させるかdoGetでHTMLを表示させて
そのHTMLとJSでローカルファイルは読めるよ
https://tonari-it.com/gas-dialog-basic/
>>857
これで普通に出来たぞ
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');
}
ローカルファイルと言うことはトリガー実行じゃないんだよね?
どういう操作を想定してるのかわからんけど、HTMLでダイアログ表示させるかdoGetでHTMLを表示させて
そのHTMLとJSでローカルファイルは読めるよ
https://tonari-it.com/gas-dialog-basic/
>>857
これで普通に出来たぞ
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');
}
860デフォルトの名無しさん
2022/08/04(木) 08:31:05.67ID:CP8sLsBT >>858-859
回答ありがとうございます
もう回答もらえないのかな?と諦めておりました
実はローカルファイルをトリガー実行(時間指定)でメールに添付させたいというのが希望する処理なのです
グーグルドライブアプリからならキーも取れそうですね
会社からグーグルドライブアプリの設置許可貰えたらやってみます
回答ありがとうございます
もう回答もらえないのかな?と諦めておりました
実はローカルファイルをトリガー実行(時間指定)でメールに添付させたいというのが希望する処理なのです
グーグルドライブアプリからならキーも取れそうですね
会社からグーグルドライブアプリの設置許可貰えたらやってみます
861デフォルトの名無しさん
2022/08/26(金) 19:09:52.12ID:fCaJRqVr 祝
有料化
有料化
862デフォルトの名無しさん
2022/08/26(金) 20:13:08.31ID:shwkM977863デフォルトの名無しさん
2022/08/31(水) 11:27:16.40ID:8zP5mkRm googleSpaceのタスクにGASでタスク登録って可能?
登録しようとしても
GoogleJsonResponseException: API call to tasks.tasks.insert failed with error: Invalid task list ID
って吐かれる
IDはスペースのURL末尾を使ってる
登録しようとしても
GoogleJsonResponseException: API call to tasks.tasks.insert failed with error: Invalid task list ID
って吐かれる
IDはスペースのURL末尾を使ってる
864デフォルトの名無しさん
2022/09/15(木) 22:22:03.06ID:ZhCJ57CK しばらく触ってないうちにスクリプトエディタが変わっていたんですが、新しいエディタでプロジェクトのコピーを保存したい場合ってどうしたら良いんでしょうか?
自作のスクリプトを使ってもらうのにコピーを保存してもらっていたので代わりの方法を探しています
自作のスクリプトを使ってもらうのにコピーを保存してもらっていたので代わりの方法を探しています
865デフォルトの名無しさん
2022/10/25(火) 20:43:00.01ID:czhOEshi Googleスプレッドシートの件で質問します。
A11からF11の列に、IMPORTRANGE()によって、他のスプレッドから取り込んだデータが入っています。行の数は未定(約300件ぐらい)です。
このままでは、元データのシートが更新されると、合わせてデータも更新されてしまいます。
この現在表示されているセルの値をそのまま、文字列としてセルに上書きするコードを記入したいのですが、どのように記述するとよいでしょうか?
A11からF11の列に、IMPORTRANGE()によって、他のスプレッドから取り込んだデータが入っています。行の数は未定(約300件ぐらい)です。
このままでは、元データのシートが更新されると、合わせてデータも更新されてしまいます。
この現在表示されているセルの値をそのまま、文字列としてセルに上書きするコードを記入したいのですが、どのように記述するとよいでしょうか?
866デフォルトの名無しさん
2022/10/26(水) 01:21:01.31ID:Dg1k8nd7 やりたいことがわからないのでもう少し詳しく書いてください
867865
2022/10/26(水) 02:36:10.71ID:wuQKMR4S すみません。自己解決しました。
スレ汚し申し訳ありませんでした。
スレ汚し申し訳ありませんでした。
868デフォルトの名無しさん
2022/10/26(水) 11:11:50.28ID:t4LQIfXs 謝るより原因や解決方法を書いていってほしい
質問と解決法が揃ってればスレ汚しにならない
質問と解決法が揃ってればスレ汚しにならない
869デフォルトの名無しさん
2022/11/19(土) 22:03:44.91ID:7xWc9dNP 初心者で勉強中ですがplain bodyとかの正規表現が難しくて泣きそう
870デフォルトの名無しさん
2022/12/16(金) 21:50:55.76ID:/69Su096 1日一回gmailの中のメールをフィルタリングして集計してメールを遅るスクリプトを動かしてます。
今日までは毎日1回動いてましたが
本日近い時間帯で4回トリガーされていました。
このようなことが起こった方他におられませんでしょうか。
今日までは毎日1回動いてましたが
本日近い時間帯で4回トリガーされていました。
このようなことが起こった方他におられませんでしょうか。
871デフォルトの名無しさん
2022/12/17(土) 09:05:35.61ID:CgXXVcB1 >>870
調べてみるのでソースだせる?
調べてみるのでソースだせる?
872デフォルトの名無しさん
2023/01/16(月) 23:18:09.81ID:XkS+UaR1 ボタンを押下したらテーブルを表示させたいんだけど、どうすればいいのでしょうか?
873デフォルトの名無しさん
2023/01/17(火) 00:42:43.29ID:fU/PH7pE 質問ざっくりしすぎ
874デフォルトの名無しさん
2023/01/18(水) 09:15:14.72ID:NRwxJvcS 毎月の商品ごとの売上グラフを作ってるんですけどAには赤、Bには青、Cには黃というように色指定は出来ますか?
グラフの並び順に1番目から赤、青、黃という順序では出来るんですけど、順番が変動しても大丈夫にしたいです
A2=
if "A", Red
"B", Blue
"C", Yellow
みたいに出来たらいいなと思ってます
グラフの並び順に1番目から赤、青、黃という順序では出来るんですけど、順番が変動しても大丈夫にしたいです
A2=
if "A", Red
"B", Blue
"C", Yellow
みたいに出来たらいいなと思ってます
875デフォルトの名無しさん
2023/01/20(金) 23:25:45.84ID:E/iTFMTm 二次配列の中の特定要素を一個だけじゃなくて任意の数があるか確認する方法ってある?
876デフォルトの名無しさん
2023/01/21(土) 01:05:54.74ID:tr5Udobt どういうこと?
何か日本語不得意なやつ多すぎね?
上手く質問できないなら具体例を書けよ
例えば
[
[1, 2, ...],
[3, 4, ...]
]
という二次元があったとき、
○○が○○であることを確認する方法ってある?
みたいな
何か日本語不得意なやつ多すぎね?
上手く質問できないなら具体例を書けよ
例えば
[
[1, 2, ...],
[3, 4, ...]
]
という二次元があったとき、
○○が○○であることを確認する方法ってある?
みたいな
877デフォルトの名無しさん
2023/01/21(土) 04:21:13.49ID:a0kfmYv3 日本語というかこういうのはちゃんと説明できないからコード書けないんでは
878デフォルトの名無しさん
2023/01/21(土) 16:40:27.15ID:/REhm/9K ボタンが押下されたら表が動的に表示されるようにしたいのですが、動的に作成された表の値が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>';
}
下記の通りに書いたのですが、何故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>';
}
879デフォルトの名無しさん
2023/01/21(土) 20:12:40.75ID:tr5Udobt >>878
パッと見だけど
displayTableはフロント側の関数だよね
getTable_Areaはgoogle.script.run経由で呼び出してるからgs(バックエンド側)の関数だよね
google.script.runはwithSuccessHandlerのコールバックでレスポンス受け取るから、変数htmlTableはundefinedになるんじゃね?
パッと見だけど
displayTableはフロント側の関数だよね
getTable_Areaはgoogle.script.run経由で呼び出してるからgs(バックエンド側)の関数だよね
google.script.runはwithSuccessHandlerのコールバックでレスポンス受け取るから、変数htmlTableはundefinedになるんじゃね?
880デフォルトの名無しさん
2023/01/21(土) 21:05:36.17ID:EDO4fSiJ >>879
>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>
>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>
881デフォルトの名無しさん
2023/01/21(土) 21:11:08.81ID:tr5Udobt >>880
こうしてみて
function calculateArea() {
google.script.run.withSuccessHandler(function(data) {
document.getElementById("createdTable").innerHTML = data;
}).getTable_Area();
}
こうしてみて
function calculateArea() {
google.script.run.withSuccessHandler(function(data) {
document.getElementById("createdTable").innerHTML = data;
}).getTable_Area();
}
882デフォルトの名無しさん
2023/01/21(土) 22:20:43.38ID:EDO4fSiJ >>881
ありがとうございます!表が表示されるようになりました!
もし可能であれば、もう1点教えていただきたいのですが、
上記 function getTable_Area()には
'<td><input value=<?= getArea();?>></input></td>'
のようにgetArea()などの関数を表が作成される際に呼ばれるよにしています。
しかし、表示されたタブをみてみると
<input value="<?=" getarea();?="">
になっており、エスケープ処理?がされているみたいです。
実際にアプリを開発する際は、何か別の方法でinputの値に関数の戻り値を代入しているのでしょうか?
ありがとうございます!表が表示されるようになりました!
もし可能であれば、もう1点教えていただきたいのですが、
上記 function getTable_Area()には
'<td><input value=<?= getArea();?>></input></td>'
のようにgetArea()などの関数を表が作成される際に呼ばれるよにしています。
しかし、表示されたタブをみてみると
<input value="<?=" getarea();?="">
になっており、エスケープ処理?がされているみたいです。
実際にアプリを開発する際は、何か別の方法でinputの値に関数の戻り値を代入しているのでしょうか?
883デフォルトの名無しさん
2023/01/21(土) 22:36:15.48ID:tr5Udobt884デフォルトの名無しさん
2023/01/21(土) 22:50:23.61ID:EDO4fSiJ >>883
バック(gs)になります。
バック(gs)になります。
885デフォルトの名無しさん
2023/01/21(土) 22:59:56.13ID:tr5Udobt >>884
これで良くない?
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>';
}
これで良くない?
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>';
}
886デフォルトの名無しさん
2023/01/21(土) 23:07:30.06ID:EDO4fSiJ887デフォルトの名無しさん
2023/01/21(土) 23:20:48.89ID:tr5Udobt >>886
全く説明してなくてごめんね
テンプレートリテラル使うともっと簡潔に書ける
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Template_literals
あと同期/非同期がわかるといいね
全く説明してなくてごめんね
テンプレートリテラル使うともっと簡潔に書ける
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Template_literals
あと同期/非同期がわかるといいね
888デフォルトの名無しさん
2023/01/21(土) 23:41:09.53ID:EDO4fSiJ889デフォルトの名無しさん
2023/01/22(日) 09:05:30.28ID:1NpPY/pK 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="あ">
<% 〜 %> で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="あ">
890デフォルトの名無しさん
2023/01/25(水) 19:23:10.13ID:EJwoBEnK test
891デフォルトの名無しさん
2023/01/25(水) 19:23:43.80ID:EJwoBEnK やりたいこと:
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タグの中に画像を表示させようとしているのですが、ファイルアイコンが半分に敗れたものが表示されています。
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タグの中に画像を表示させようとしているのですが、ファイルアイコンが半分に敗れたものが表示されています。
892デフォルトの名無しさん
2023/01/26(木) 03:32:17.94ID:n/mKepPR >>891
getUrlで取得されたURLにあるものって画像じゃないよね
画像じゃないものをimgタグにセットしても表示されないよ
URLにあるものを画像化するか
iframe使って表示させるか(未検証)
どっちかのアプローチじゃないかな
getUrlで取得されたURLにあるものって画像じゃないよね
画像じゃないものをimgタグにセットしても表示されないよ
URLにあるものを画像化するか
iframe使って表示させるか(未検証)
どっちかのアプローチじゃないかな
893デフォルトの名無しさん
2023/01/26(木) 04:58:55.72ID:p3aeborJ894デフォルトの名無しさん
2023/02/02(木) 21:14:34.93ID:d3AVgBUi GAS愛好家のみなさん
ContactsAppからPeopleAPIへの移行状況はいかがですか?
勝手が違いすぎてよーわからん
公式すらあんまり情報ないしマトモな記事載せてるサイトもないですよね
ContactsAppからPeopleAPIへの移行状況はいかがですか?
勝手が違いすぎてよーわからん
公式すらあんまり情報ないしマトモな記事載せてるサイトもないですよね
895デフォルトの名無しさん
2023/02/03(金) 12:45:44.80ID:0b57qUmd スプレッドシートについての質問をさせてください
条件付き書式で、フォントサイズを変更するにはどうしたらいいでしょうか
表で一定の値の数字以上はフォントサイズが大きくなる、という仕様にしたいです
条件付き書式で、フォントサイズを変更するにはどうしたらいいでしょうか
表で一定の値の数字以上はフォントサイズが大きくなる、という仕様にしたいです
896デフォルトの名無しさん
2023/02/05(日) 16:08:42.77ID:2ccsuJcO897デフォルトの名無しさん
2023/02/15(水) 16:03:34.65ID:b8FtSvc2 GASじゃなくてスプレッドシートなのだけど、
検索窓閉じた時検索結果に跳ぶの避けられませんかね。
検索窓閉じた時検索結果に跳ぶの避けられませんかね。
898デフォルトの名無しさん
2023/02/18(土) 13:58:20.49ID:W3nKwjDO やりたいこと
スプレッドシートに沢山ある あ い う とかいう文字列を
i[あ.い.う...]
t[a.b.c...]
という配列使って一度に置換作業がしたい。
i[1]→t[1]みたいな感じで。
replafeとforの組み合わせでなんとかなるかな?と思ったのですが、リファレンス読む限りreplace(a,b)の置換のa部分に変数を用いることは出来ないようなので他の方法を探しています。
ご教授頂きたく。
スプレッドシートに沢山ある あ い う とかいう文字列を
i[あ.い.う...]
t[a.b.c...]
という配列使って一度に置換作業がしたい。
i[1]→t[1]みたいな感じで。
replafeとforの組み合わせでなんとかなるかな?と思ったのですが、リファレンス読む限りreplace(a,b)の置換のa部分に変数を用いることは出来ないようなので他の方法を探しています。
ご教授頂きたく。
899デフォルトの名無しさん
2023/02/18(土) 18:58:41.14ID:W3nKwjDO900デフォルトの名無しさん
2023/02/19(日) 14:19:59.95ID:bukleA+Y >>898
日立?
日立?
901デフォルトの名無しさん
2023/02/19(日) 22:06:54.53ID:sztA44Ir902デフォルトの名無しさん
2023/02/20(月) 02:05:22.77ID:6OqVkYRD903898
2023/02/20(月) 16:04:41.81ID:4jGYSd8p 駄目でした…
includesにしてもmatchにしても配列[ ]で指定するとうまく動いてくれません。
配列を作らずfor文で無理やりセルを置換させるという荒業で解決しましたが時間がかかり過ぎて実用的でなく。
やりたいこと
table[[あ],[か],[さ],[た]...]
before[あ][い]...
after[ア][イ]...
以上の配列があり、
tableに対しbefore[i]を総当りで検索し一致したらafter[i]に置き換える。
includesにしてもmatchにしても配列[ ]で指定するとうまく動いてくれません。
配列を作らずfor文で無理やりセルを置換させるという荒業で解決しましたが時間がかかり過ぎて実用的でなく。
やりたいこと
table[[あ],[か],[さ],[た]...]
before[あ][い]...
after[ア][イ]...
以上の配列があり、
tableに対しbefore[i]を総当りで検索し一致したらafter[i]に置き換える。
904デフォルトの名無しさん
2023/02/20(月) 18:43:52.85ID:czK6pNoa >>903
やりたいことがいまいちわからん
こういうこと?
# ひらがなをカタカナに変換
table = [['あ','ア'], ['い','イ'], ['う','ウ'], ['え','エ'], ['お','オ'] ];
before = ['あ','い','う','え','お'];
after = before.map(b => table.find(a => b === a[0])[1]);
やりたいことがいまいちわからん
こういうこと?
# ひらがなをカタカナに変換
table = [['あ','ア'], ['い','イ'], ['う','ウ'], ['え','エ'], ['お','オ'] ];
before = ['あ','い','う','え','お'];
after = before.map(b => table.find(a => b === a[0])[1]);
905898
2023/02/20(月) 18:49:29.88ID:83YdaF3i ありがとうございます。配列の中身は適当です…。
表と配列2種類の3つの要素があって、表にある配列1の要素を見つけたら配列2に置き換えるということをしたかったのです。
ですがお陰様でなんとかなりました!
二次元配列をflat()で一次元にして、splice使いました。
その後再度2次元配列に戻して元の形に直しました。
表と配列2種類の3つの要素があって、表にある配列1の要素を見つけたら配列2に置き換えるということをしたかったのです。
ですがお陰様でなんとかなりました!
二次元配列をflat()で一次元にして、splice使いました。
その後再度2次元配列に戻して元の形に直しました。
906898
2023/02/21(火) 00:26:18.85ID:B3qxCQs3 >>904
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 ));
}
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 ));
}
907デフォルトの名無しさん
2023/02/21(火) 02:43:28.40ID:6tAoYaOK >>906
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));
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));
908898
2023/02/21(火) 08:58:31.52ID:B3qxCQs3 >>907
そのarray[i][j]の[j]を入れるとindexOfにしてもincludesにしてもうちの環境?では何故かエラー出て読み込めなかったんですよ。(
確かcannot read properties of undefinedだった筈)
それ外すとエラーなく読んだので仕方なくflat入れた次第です。
因みに
arrayX=array[x]
arrayY=array[y]
みたいに入れ子しても駄目でした。
そのarray[i][j]の[j]を入れるとindexOfにしてもincludesにしてもうちの環境?では何故かエラー出て読み込めなかったんですよ。(
確かcannot read properties of undefinedだった筈)
それ外すとエラーなく読んだので仕方なくflat入れた次第です。
因みに
arrayX=array[x]
arrayY=array[y]
みたいに入れ子しても駄目でした。
909898
2023/02/21(火) 09:10:16.56ID:B3qxCQs3 確認したらエラー全然違うし書いてること散々でした
訂正
出てたエラーは多分is not defined
下の入れ子は
arrayX=array[x]
arrayY=arrayX[y]
みたいにしても同じエラーだったかと。
訂正
出てたエラーは多分is not defined
下の入れ子は
arrayX=array[x]
arrayY=arrayX[y]
みたいにしても同じエラーだったかと。
910デフォルトの名無しさん
2023/02/21(火) 23:07:45.74ID:6tAoYaOK >>908
>その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)];
}
});
});
>その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)];
}
});
});
911デフォルトの名無しさん
2023/02/21(火) 23:08:33.93ID:6tAoYaOK あと上のmapは省略しすぎてわかりにくかったのでアロー関数と三項演算子をやめたらこうなる
const array2 = array.map(function(row) {
return row.map(function(col) {
if(before.includes(col)) {
return after[before.indexOf(col)];
}
else {
return col;
}
});
});
const array2 = array.map(function(row) {
return row.map(function(col) {
if(before.includes(col)) {
return after[before.indexOf(col)];
}
else {
return col;
}
});
});
912898
2023/02/22(水) 11:50:37.27ID:7vReBJfV913デフォルトの名無しさん
2023/02/28(火) 21:38:42.26ID:8PRLUyLU スプレッドシートの共有で閲覧権限を持っている人の
印刷は可能でファイルのダウンロードだけ禁止することは可能でしょうか?
印刷は可能でファイルのダウンロードだけ禁止することは可能でしょうか?
914デフォルトの名無しさん
2023/03/01(水) 10:13:26.28ID:NPxLOyBL 共有アイテムのファイルにスターをつける方法を教えてください
宜しくお願いしますm(_ _)m
宜しくお願いしますm(_ _)m
915デフォルトの名無しさん
2023/03/01(水) 14:17:21.21ID:csCK6+UB sheetクラスを取得する方法ってgetSheetByNameとgetActiveSheetしかないよね?
getSheetBySheetIdがないのが謎なんだけどシートはシート名で管理するしかない?
getSheetBySheetIdがないのが謎なんだけどシートはシート名で管理するしかない?
917デフォルトの名無しさん
2023/03/24(金) 19:19:34.21ID:GCLzu5nr Rangeオブジェクトから、セルアドレスの文字列を取得したい場合
Excelならr.Address()で相対参照や絶対参照を取得できますが
GASで同じようなことできるメソッドあります?
getA1Notation()だと相対アドレスでしか取得できないようで…
Excelならr.Address()で相対参照や絶対参照を取得できますが
GASで同じようなことできるメソッドあります?
getA1Notation()だと相対アドレスでしか取得できないようで…
918デフォルトの名無しさん
2023/03/24(金) 20:40:28.68ID:h6PMjTMa919デフォルトの名無しさん
2023/03/25(土) 11:52:56.28ID:TC3JXJ5y >>918
例えば
A1のRangeオブジェクトから
$A$1という文字列を取得できないかなと
GASから条件付き書式を設定するのに使いたいです
なぜ使いたいかというと
複数人で編集してコピペを繰り返すと条件付き書式が破壊されてしまうので
それを上書きリセットするためです
逆に、条件付書式だけロックかけて切り取ったり貼り付けたり出来ない設定ができるならそれで十分なのですが…
例えば
A1のRangeオブジェクトから
$A$1という文字列を取得できないかなと
GASから条件付き書式を設定するのに使いたいです
なぜ使いたいかというと
複数人で編集してコピペを繰り返すと条件付き書式が破壊されてしまうので
それを上書きリセットするためです
逆に、条件付書式だけロックかけて切り取ったり貼り付けたり出来ない設定ができるならそれで十分なのですが…
920デフォルトの名無しさん
2023/03/25(土) 17:53:03.57ID:nYxwu6kr >>919
>複数人で編集してコピペを繰り返すと条件付き書式が破壊されてしまうのでそれを上書きリセットするためです
通常の書式ならonEditで変更されたセルの書式を変更するだけでいいけど
条件付き書式をGAS上で扱ったことなかったから調べたけどちょっと面倒だね
そんでよくよく考えてみたらそもそもGAS使うならonEditで書式変更すればいいだけだから条件付き書式を使う必要がないと思った
>複数人で編集してコピペを繰り返すと条件付き書式が破壊されてしまうのでそれを上書きリセットするためです
通常の書式ならonEditで変更されたセルの書式を変更するだけでいいけど
条件付き書式をGAS上で扱ったことなかったから調べたけどちょっと面倒だね
そんでよくよく考えてみたらそもそもGAS使うならonEditで書式変更すればいいだけだから条件付き書式を使う必要がないと思った
921デフォルトの名無しさん
2023/04/04(火) 12:37:38.49ID:dAPefWGR スプレッドシートにスクリプト作成して権限付与して動作するように設定したあと
そのスプレッドシートをコピーするとスクリプトもコピーされるようですが
スクリプトの権限やトリガーは設定しなおしが必要のようです。
イメージ的には、vba付のExcelをコピーして別ファイルとして保存して
毎月のデータを作成していく、みたいなことがしたいんですが
その辺コピーするだけで全部引き継がれるみたいな設定ないのでしょうか?
そのスプレッドシートをコピーするとスクリプトもコピーされるようですが
スクリプトの権限やトリガーは設定しなおしが必要のようです。
イメージ的には、vba付のExcelをコピーして別ファイルとして保存して
毎月のデータを作成していく、みたいなことがしたいんですが
その辺コピーするだけで全部引き継がれるみたいな設定ないのでしょうか?
922デフォルトの名無しさん
2023/04/11(火) 18:45:08.89ID:u8YBlLPL 類似画像を判別できるようなライブラリとか公開されてるコードありますか?
検索するとpythonだとImageHashってライブラリがあるんだけどGASで同じようなことしたい
検索するとpythonだとImageHashってライブラリがあるんだけどGASで同じようなことしたい
923デフォルトの名無しさん
2023/04/21(金) 16:25:28.26ID:vnxhj4My ごめんgoogleスプレッドシートの質問スレがみつからずこちらで質問させてください。
シートのある列をユーザーごとの閲覧を制限かけたい
有効な方法ありますか?
シートのある列をユーザーごとの閲覧を制限かけたい
有効な方法ありますか?
924デフォルトの名無しさん
2023/04/21(金) 16:53:56.40ID:8VcMj5ya 閲覧の制限はファイル単位でしか出来ないでしょ
シート、セル(列/行)単位は編集の制限しか出来ない
シート、セル(列/行)単位は編集の制限しか出来ない
925デフォルトの名無しさん
2023/04/21(金) 17:40:05.18ID:vnxhj4My ありがとうございます。
確かに「表示」→「保護されている範囲」でできそうだったけど。やっぱりだめでした。
諦めて、もう一つリンクしたファイルのシート作ってそちらに閲覧されたくない列を追加します。
確かに「表示」→「保護されている範囲」でできそうだったけど。やっぱりだめでした。
諦めて、もう一つリンクしたファイルのシート作ってそちらに閲覧されたくない列を追加します。
926デフォルトの名無しさん
2023/05/02(火) 21:52:22.95ID:39G20EoK Googleカレンダーに予定を追加するプログラムを使ってるんだけど、「場所を追加」ちゃんと場所を追加したいです
以下詳細
普通に手作業でGoogleカレンダーに予定を追加するときは、「場所を追加」に場所の名前を入力すると候補が出てきて、そこから選ぶと、そこに間に合うためには何時に家を出ればいいかの通知が来たり、Android版のGoogleカレンダーだと予定の背景がその場所の写真になったりします。
で、GASで予定を追加するとき、場所を指定するためにGoogleマップのURLを使ってるんだけど、それだとURLが表示されるのみで、上記の通知とか背景写真とかが実行されません。
公式ドキュメントでも {location: 'Conference Room'}とされており、Googleマップ上の場所を使う気がなさそうです。
ちゃんとした「場所の追加」は、ウェブ上でマウスで操作しないとできないのでしょうか?
以下詳細
普通に手作業でGoogleカレンダーに予定を追加するときは、「場所を追加」に場所の名前を入力すると候補が出てきて、そこから選ぶと、そこに間に合うためには何時に家を出ればいいかの通知が来たり、Android版のGoogleカレンダーだと予定の背景がその場所の写真になったりします。
で、GASで予定を追加するとき、場所を指定するためにGoogleマップのURLを使ってるんだけど、それだとURLが表示されるのみで、上記の通知とか背景写真とかが実行されません。
公式ドキュメントでも {location: 'Conference Room'}とされており、Googleマップ上の場所を使う気がなさそうです。
ちゃんとした「場所の追加」は、ウェブ上でマウスで操作しないとできないのでしょうか?
927デフォルトの名無しさん
2023/05/03(水) 00:25:10.26ID:2fvruydV >>926
URLじゃなくてその場所の名前か住所、もしくは緯度経度を入れればいいんじゃないの?
URLじゃなくてその場所の名前か住所、もしくは緯度経度を入れればいいんじゃないの?
928デフォルトの名無しさん
2023/05/03(水) 03:09:39.55ID:CT7gAj9T >>927
それが名前や住所を入れても、その文字列が表示されるだけのようです
こんな感じ
https://i.imgur.com/pn88z8w.jpg
ブラウザかアプリで場所を選択した時には場所と認識されるのか、こう表示されます
https://i.imgur.com/k3K5mhe.jpg
それが名前や住所を入れても、その文字列が表示されるだけのようです
こんな感じ
https://i.imgur.com/pn88z8w.jpg
ブラウザかアプリで場所を選択した時には場所と認識されるのか、こう表示されます
https://i.imgur.com/k3K5mhe.jpg
929デフォルトの名無しさん
2023/05/16(火) 22:03:10.90ID:9Kd/3stA ゲッ!!(/||| ̄▽)y-ξ⌒◇ヾ( ̄  ̄;)ジュッ
930デフォルトの名無しさん
2023/07/08(土) 12:42:20.50ID:CwJ0Byq0 質問させてください
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 お知らせ 実行完了
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 お知らせ 実行完了
931デフォルトの名無しさん
2023/07/08(土) 17:00:03.61ID:IeBiUrvH >>930
トリガーの設定してる?
トリガーの設定してる?
932デフォルトの名無しさん
2023/08/22(火) 23:04:26.43ID:+ZplHR9+ GASではなく、スプレッドシートの質問なのですが、もし適切なスレッドがあったら誘導お願いします
セルに例えば「130409.67」と入力し、
表示形式>数字>通貨(端数切り捨て)
に設定すると、小数点以下が切り捨てではなく四捨五入されてしまいます。
これはなにか私の使い方がおかしいのでしょうか?
また、他の方法でも良いので、内部的には小数点を保持しつつ、表示上だけ小数点以下を切り捨てる(非表示)する方法があれば教えてください。宜しくお願いします。
セルに例えば「130409.67」と入力し、
表示形式>数字>通貨(端数切り捨て)
に設定すると、小数点以下が切り捨てではなく四捨五入されてしまいます。
これはなにか私の使い方がおかしいのでしょうか?
また、他の方法でも良いので、内部的には小数点を保持しつつ、表示上だけ小数点以下を切り捨てる(非表示)する方法があれば教えてください。宜しくお願いします。
933デフォルトの名無しさん
2023/09/10(日) 09:27:06.36ID:yM7j2B0I オhル
934デフォルトの名無しさん
2023/09/22(金) 13:52:01.19ID:dkRHHNCe GTKは糞
935デフォルトの名無しさん
2023/09/24(日) 09:36:46.05ID:2YTVyUlC 君は失格
やり治せ
やり治せ
936デフォルトの名無しさん
2023/10/20(金) 12:46:49.67ID:/M3RKJCH GAS抜きで
937デフォルトの名無しさん
2023/10/20(金) 20:23:13.56ID:c9EoYnQA938デフォルトの名無しさん
2023/10/31(火) 16:30:00.40ID:qmiHWWBC940デフォルトの名無しさん
2024/03/10(日) 15:35:26.40ID:H28l+VF2 スプレッドシートについての質問です。
SBI証券のマイページからポートフォリオのcsvファイルをダウンロードすることができます。
GASにより、自動で、ポートフォリオの円グラフを作りたいのですが、スクリプトはコンテナバインドではなくスタンドアローンでないと駄目でしょうか?
毎日、csvファイルをダウンロードして、円グラフを描く予定なので、コンテナバインドだと駄目ですよね?
SBI証券のマイページからポートフォリオのcsvファイルをダウンロードすることができます。
GASにより、自動で、ポートフォリオの円グラフを作りたいのですが、スクリプトはコンテナバインドではなくスタンドアローンでないと駄目でしょうか?
毎日、csvファイルをダウンロードして、円グラフを描く予定なので、コンテナバインドだと駄目ですよね?
941デフォルトの名無しさん
2024/03/10(日) 15:38:07.27ID:H28l+VF2 でもスタンドアロンにすると、スプレッドシートを開くときに、ファイルのIDを指定しないと駄目ですよね。
このIDが毎日変わることになると思いますが、この部分をどうすれば楽ができるでしょうか?
このIDが毎日変わることになると思いますが、この部分をどうすれば楽ができるでしょうか?
942デフォルトの名無しさん
2024/03/10(日) 15:55:50.28ID:vw/rAwFk なんでコンテナバインドじゃだめなの?
トリガーで1日1回実行すればいいんじゃないの
トリガーで1日1回実行すればいいんじゃないの
943デフォルトの名無しさん
2024/03/10(日) 16:29:51.77ID:H28l+VF2 >>942
自動でダウンロードして来るとかそういうことを想定していますか?
そういう技術はありませんので、手動でダウンロードしてきて、Google Driveにアップロードする。
これを毎日やろうと考えています。
そうするとファイル自体が毎日変わりますし、IDも変わってしまうのではないかと思います。
バインドを新しい他のファイルに引き継ぐことはできませんよね?
自動でダウンロードして来るとかそういうことを想定していますか?
そういう技術はありませんので、手動でダウンロードしてきて、Google Driveにアップロードする。
これを毎日やろうと考えています。
そうするとファイル自体が毎日変わりますし、IDも変わってしまうのではないかと思います。
バインドを新しい他のファイルに引き継ぐことはできませんよね?
944デフォルトの名無しさん
2024/03/10(日) 16:50:03.03ID:vw/rAwFk945デフォルトの名無しさん
2024/03/10(日) 17:01:06.12ID:H28l+VF2 >>944
なるほど、ありがとうございました。
そういうことができるんですね。
ということは、スタンドアロンである固定したフォルダからファイルの一覧を取得する。
SBI証券からダウンロードしてきたcsvファイルは、その日の日付をファイル名とする。
ファイルの一覧からその日の日付のファイルをオープンして、円グラフを作成する。
ありがとうございました。
なるほど、ありがとうございました。
そういうことができるんですね。
ということは、スタンドアロンである固定したフォルダからファイルの一覧を取得する。
SBI証券からダウンロードしてきたcsvファイルは、その日の日付をファイル名とする。
ファイルの一覧からその日の日付のファイルをオープンして、円グラフを作成する。
ありがとうございました。
946デフォルトの名無しさん
2024/03/11(月) 11:33:26.37ID:Voh59fAx csvファイルに、
'+7441000
というデータがあります。
これをSpreadsheetとしてインポートすると、セル上で
+7441000
と表示されます。
先頭に「+」がついていますが、扱いは文字列ではなく、数字です。
この「+」をGASを使って削除したいのですが、どうすればいいでしょうか?
このセルを選択した状態で「fx」の右隣をみると「'+7441000」となっています。
'+7441000
というデータがあります。
これをSpreadsheetとしてインポートすると、セル上で
+7441000
と表示されます。
先頭に「+」がついていますが、扱いは文字列ではなく、数字です。
この「+」をGASを使って削除したいのですが、どうすればいいでしょうか?
このセルを選択した状態で「fx」の右隣をみると「'+7441000」となっています。
947デフォルトの名無しさん
2024/03/11(月) 21:30:14.93ID:Voh59fAx948デフォルトの名無しさん
2024/04/04(木) 12:51:32.09ID:q67OTvc3 getUi().showModelessDialog()の挙動おかしくなった?
他をクリックしたら閉じるようになったし移動も出来なくなった
バグですか?
他をクリックしたら閉じるようになったし移動も出来なくなった
バグですか?
949デフォルトの名無しさん
2024/12/12(木) 17:27:14.20ID:/P1+mPAL createTextFinderで正常に動いてたのにソース変更してないのに最近になって
TypeError: Cannot read properties of undefined (reading 'indexOf')と言うようになった
他の部分が悪いのか、切り分けるためcreateTextFinderだけ機能させるコードを書いてたけど同様のエラー
とりあえず別の手段で回避させたけどおま環?
TypeError: Cannot read properties of undefined (reading 'indexOf')と言うようになった
他の部分が悪いのか、切り分けるためcreateTextFinderだけ機能させるコードを書いてたけど同様のエラー
とりあえず別の手段で回避させたけどおま環?
950デフォルトの名無しさん
2024/12/13(金) 13:21:51.42ID:ouGUX1+B だからjsは馬鹿にされるんだ
951デフォルトの名無しさん
2025/01/05(日) 10:08:17.06ID:8kdOFrcZ OneDriveの質問ここでok?
952デフォルトの名無しさん
2025/01/05(日) 10:17:13.58ID:xU+8tKpK gasってgoogleのサービス。onedriveはmicrosoftのサービスで違う
スクリプトからonedriveを操作したいとかじゃないよね?
スレチだけど一応聞いてみれば?誰か分かるかもね
スクリプトからonedriveを操作したいとかじゃないよね?
スレチだけど一応聞いてみれば?誰か分かるかもね
953デフォルトの名無しさん
2025/01/12(日) 21:20:33.84ID:EIvdvWG6 スプレッドシートさ、ExcelVBAでできる
とあるRangeからとあるRangeまでの範囲を指定して新たにRangeを作る、てのが用意されてないの地味に不便だよね
getRangeもoffsetも「座標~座標」の直接範囲指定がなくて軒並み「座標~行列数」しかないのがめんどくさい…そう思ってるの俺だけか?
A1形式の文字列をガッチャンコすれば出来るっちゃ出来るが、お前それでいいのか感がすごい
とあるRangeからとあるRangeまでの範囲を指定して新たにRangeを作る、てのが用意されてないの地味に不便だよね
getRangeもoffsetも「座標~座標」の直接範囲指定がなくて軒並み「座標~行列数」しかないのがめんどくさい…そう思ってるの俺だけか?
A1形式の文字列をガッチャンコすれば出来るっちゃ出来るが、お前それでいいのか感がすごい
954デフォルトの名無しさん
2025/01/16(木) 13:26:46.58ID:5fNIPSC6 スプレッドシートとDriveAPIについて質問です。
他のGoogleアカウントがオーナーとして持ってるスプレッドシートで、別アカウントを閲覧者として共有。
その別アカウント側でAPI設定し、そのAPIを使ってxlsx形式でExportすることは可能?
他のGoogleアカウントがオーナーとして持ってるスプレッドシートで、別アカウントを閲覧者として共有。
その別アカウント側でAPI設定し、そのAPIを使ってxlsx形式でExportすることは可能?
955デフォルトの名無しさん
2025/01/16(木) 19:10:14.77ID:OQ3rw5hF 自分で試せよ。やりたいならやってみれば良いだろ
956デフォルトの名無しさん
2025/01/16(木) 19:13:42.90ID:RFhmsTBB 過疎ってる上にスクリプト荒らしが跋扈し誰か来ても煽ってくるやつしかおりゃん
いまどきのプログラマーはみんなChatGPTかCopilotに質問投げてるよ
5ちゃんねるはおしまい!
いまどきのプログラマーはみんなChatGPTかCopilotに質問投げてるよ
5ちゃんねるはおしまい!
957デフォルトの名無しさん
2025/01/17(金) 19:35:55.09ID:S3TtCEi5 みんなぁ……どこ逝っちゃったんだブー…………
958デフォルトの名無しさん
2025/01/17(金) 19:39:30.95ID:S3TtCEi5 なんでこの掲示板まだ運営してるの~?
959デフォルトの名無しさん
2025/01/17(金) 19:41:02.24ID:S3TtCEi5 \
 ̄ヽ、 _ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
`'ー '´
O
o と
。 ,. -ー冖'⌒'ー-、 思
,ノ \ う
/ ,r‐へへく⌒'¬、 ヽ キ
{ノ へ.._、 ,,/~` 〉 } ,r=-、 モ
/プ ̄`y'¨Y´ ̄ヽ―}j=く /,ミ=/ オ
ノ /レ'>-〈_ュ`ー‐' リ,イ} 〃 / タ
/ _勺 イ;;∵r;==、、∴'∵; シ 〃 / で
,/ └' ノ \ こ¨` ノ{ー--、〃__/ あ
人__/ー┬ 个-、__,,.. ‐'´ 〃`ァーァー\ っ
. / |/ |::::::|、 〃 /:::::/ ヽ た
/ | |::::::|\、_________/' /:::::/〃
 ̄ヽ、 _ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
`'ー '´
O
o と
。 ,. -ー冖'⌒'ー-、 思
,ノ \ う
/ ,r‐へへく⌒'¬、 ヽ キ
{ノ へ.._、 ,,/~` 〉 } ,r=-、 モ
/プ ̄`y'¨Y´ ̄ヽ―}j=く /,ミ=/ オ
ノ /レ'>-〈_ュ`ー‐' リ,イ} 〃 / タ
/ _勺 イ;;∵r;==、、∴'∵; シ 〃 / で
,/ └' ノ \ こ¨` ノ{ー--、〃__/ あ
人__/ー┬ 个-、__,,.. ‐'´ 〃`ァーァー\ っ
. / |/ |::::::|、 〃 /:::::/ ヽ た
/ | |::::::|\、_________/' /:::::/〃
960デフォルトの名無しさん
2025/02/12(水) 05:27:59.68ID:EChoPnIL アンドロイドのGoogleスプレッドシートのセルに日付を入れたら自動で○/○(月)と表示されるようにしたい。
どうかよろしくお願いいたします。
どうかよろしくお願いいたします。
961デフォルトの名無しさん
2025/02/12(水) 07:18:57.16ID:vZOAXNAs セルの書式設定でカスタム日付からできるけど、日付の後に半角でも良いからスペース入れないと2/12 ?とはならないね
細かい解説はぐぐってくれ
細かい解説はぐぐってくれ
962デフォルトの名無しさん
2025/02/12(水) 07:20:02.17ID:vZOAXNAs 文字化けした 2/12 (水) ね
頭に0を入れるか入れないかも決められるみたい
頭に0を入れるか入れないかも決められるみたい
963デフォルトの名無しさん
2025/02/12(水) 08:21:38.43ID:AFDgFLET スレ違い
964デフォルトの名無しさん
2025/02/12(水) 10:54:44.45ID:WpGOIYcm これが博士か
965デフォルトの名無しさん
2025/02/20(木) 20:37:16.70ID:74VDrAOZ 閑古鳥すらいなくなった糞過疎掲示板
それが5ちゃんねる
それが5ちゃんねる
966デフォルトの名無しさん
2025/02/28(金) 17:03:24.70ID:kF3VgEHE もう2人くらいしかいない
967デフォルトの名無しさん
2025/03/02(日) 03:32:16.42ID:SuUkbROl たまに覗いてる
そういやContactsApp死んだな
People APIダルい
そういやContactsApp死んだな
People APIダルい
968デフォルトの名無しさん
2025/06/04(水) 20:18:23.69ID:BeLNgZJK969デフォルトの名無しさん
2025/10/30(木) 01:29:21.98ID:XzU25Vj2 Geminiで書かせると捗るな
同じGoogle製だし間違いも少なめ
たまに google.script.run.withFinally()とか
存在しないモン吐かれて笑うけど
もうこれでいいじゃんレベル
同じGoogle製だし間違いも少なめ
たまに google.script.run.withFinally()とか
存在しないモン吐かれて笑うけど
もうこれでいいじゃんレベル
970デフォルトの名無しさん
2025/11/11(火) 14:18:00.93ID:crDtfQHZ jsの方言大杉
レスを投稿する
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 【無言】中国怒らせた高市首相→1週間だんまり、国民に実害も説明なし 中国問題を避けてスルー… ★4 [BFU★]
- 【いちご高騰】ヤマザキのクリスマスケーキ、いちご無し販売 [おっさん友の会★]
- 【日中対立】 朝日新聞のタイトル修正が中国逆ギレの火種か SNSで批判相次ぐ [♪♪♪★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★10 [樽悶★]
- 「ドラゴンボール」初の全世界キャラクター人気投票が開幕!212キャラからナンバーワンが決まる!! [ひかり★]
- 【音楽】『日本レコード大賞』各賞発表! 大賞候補にILLIT、M!LK、ふるっぱー、幾田りら、アイナ、ミセスら… 作詩賞は指原莉乃 [冬月記者★]
- 中国、レアアース輸出制限wwwwwwwwwwwwwwwwwwwwwwww🎌 [329329848]
- 橋下徹「中国こそ国家としてのあるべき姿!!」
- ( ´・ω・` )ぶーぶー
- 【すべてが】𝗮𝗺͜𝗮͉𝘇𝗼𝗻ブラックフライデーSALE総合【いいだろ!】 [194819832]
- 【訃報】日経平均先物逝く、円安株安債券安 [943688309]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
