[表示 : 全て 最新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/

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個になってしまってる
空白セルの要素も残したいんだけど、どうやったらいいのだろうか?






[ 続きを読む ] / [ 携帯版 ]

前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