Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

google

R1C1記法がうまく動かないならINDIRECT関数を使うというても

shuzo-kino.hateblo.jp以前のR1C1記法の記事 のような動きを実装する場合、INDIRECT関数越しにR1C1を指定するケースでは =SUM(indirect(r[-3]c[0]):indirect(R[-1]C[0]))とった風になります。 参考もと Google スプレッドシートで セル参照にR1C1 形式を利用…

GASで数式を入力する その2:R1C1形式の座標指示

前回のsetFormula関数はA3、Z9みたいな感じでセルを指示してやっていました。 今回のsetFormulaR1C1関数はR1C1形式という相対的な座標指示ができる子です。 ……わたし、この関数を知るまでR1C1形式を知りませんでした(白目 実際のところ A4にそれより上3つの…

GASで数式を入力する その1:普通の座標指示

実際のところ A1にB列の合算を入力する場合、以下のようにします。 var sheet = SpreadsheetApp.getActiveSheet(); sheet.getRange('A1').setFormula('=SUM(B2:B)') 参考もと Class Range | Apps Script | Google Developers

GASのspreadsheet用独自関数をつくる

spreadsheetファイルに紐づいたgsファイル上で そのファイルでしか使わない独自関数を定義できます。 実際のところ 単純に、数値をぶち込むと+1してくれるような関数MYFUNCを考えます。 /** * わたしの素敵な関数 * * @param {number} 任意の数値 * @return …

二つ以上の値で小さい方を取得したい場合……素直にMIN関数をつかいましょう

考えてみれば当たり前だったのですが……なぜかハマったのでメモ。 二つ以上のパラメーターがあって、そのうちで小さい方を取得したい場合、MIN関数をつかいます。 ……そう、別に二個でも使っていいんですよ。 無駄にIF関数とか使わんでいいのです。 実際のとこ…

GASの開発をローカルでやる その6:デプロイしたファイルを引っ込める

実際のところ 一旦デプロイした"123"を引っ込める場合は $ clasp undeploy "123" 参考もと GitHub - google/clasp: 🔗 Develop Apps Script projects locally.

GASの開発をローカルでやる その5:gsファイルの関数をclaspから起動

実際のところ ”.clasp.json”にてプロジェクトIDを設定した状態で 開いているGSファイルの"sendEmail"関数を呼ぶ場合は以下のようにします。 clasp run 'sendEmail' 参考もと GitHub - google/clasp: 🔗 Develop Apps Script projects locally.

GASの開発をローカルでやる その4:同期

実際のところ ファイルIDが”yourscriptId”のとき、以下のようにします。 $ clasp clone yourscriptId 参考もと GitHub - google/clasp: 🔗 Develop Apps Script projects locally.

GASの開発をローカルでやる その3:デプロイ

GASはバージョン番号にて内容を巻き戻したりする事ができます。 claspにも、これに対応したコマンドがあります。 実際のところ バージョン3として、"foo bar."とコメントつきでデプロイする場合 $ clasp deploy 3 "foo bar." 参考もと GitHub - google/clasp…

GASの開発をローカルでやる その2:ファイルを作成する

shuzo-kino.hateblo.jp 実際のところ 名前が"My Script"、紐づけるドキュメントのIDが"YOUR_DOCUMENT_ID"のとき ファイルを作成するには以下のようにします。 $ clasp create "My Script" "YOUR_DOCUMENT_ID" 参考もと GitHub - google/clasp: Develop Apps…

【読書メモ】東京以外で、1人で年商1億円のネットビジネスをつくる方法

東京以外で、1人で年商1億円のネットビジネスをつくる方法作者: 中村あきら出版社/メーカー: 朝日新聞出版発売日: 2014/11/20メディア: 単行本この商品を含むブログ (2件) を見る基本、ネットショップの話です。 この本がやや珍しい点として、一度潰しかけた…

GASの開発をローカルでやる その1:環境構築

GASはオンライン上で開発できるので便利な反面、 ネットが通じてないところでやるときや、バージョン管理を事細かにやりたいときには少し不便です。 今回はGoogle公式提供のCLASPというツールにて、これをローカルでやる方法をためしてみます。 実際の…

GASによるスプレッドシートの操作をすぐに反映する

GASで大量のセルをいじる場合、 パフォーマンス向上の都合で反映が遅れるケースがあります。 この際、編集キューを速攻で反映したい場合はflush関数を使います。 実際のところ for文などで大量のキューを生じさせたら、 末尾でflushを呼びます。 Spreadsheet…

GASでシートにあるメモ類を全部けす

編集しているときは大活躍、外に出すときには色々面倒なメモ機能。 今回は、GASでこいつを全消しする方法です 実際のところ シートにあるノートを全部消したい場合は シートのメソッドとして実行すれば一発で全部消してくれます。 function clrNt() { var ss…

GASで今みているGoogle SpreadSheetのシート名を取得する

実際のところ 基本は前回までの記事と同様。 code.gs code.gsの値変更を以下のようにいじります。 getName関数は文字列を返すので、加工も容易。 function changeVal(formObject){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheet…

Google SpreadSheetのデータ入力支援サイドバーをつくってみる その5:値を入力できるようにする

実際のところ page.html <html> <head> <base target="_top"> </head> <body> <p>Hello, world!</p> <hr/> <div id="output">none</div> <form id="myForm" onsubmit="handleFormSubmit(this)"> <input name="value" type="text" /> <input type="submit" value="Submit" /> </form> <hr/> </hr/></hr/></body></html>

Google SpreadSheetのデータ入力支援サイドバーをつくってみる その4:今度こそボタンで変えてみる

実際のところ code.gs こちらは「その3」と変わりません。 セルの値を変更する関数もそのまんま。 function onOpen() { //サイドメニュー表示 SpreadsheetApp.getUi() .createMenu('Custom Menu') .addItem('Show sidebar', 'showSidebar') .addToUi(); } f…

Google SpreadSheetのデータ入力支援サイドバーをつくってみる その3:イベントハンドラーを経由して値を変更

実際のところ code.gs function onOpen() { //サイドメニュー表示 SpreadsheetApp.getUi() .createMenu('Custom Menu') .addItem('Show sidebar', 'showSidebar') .addToUi(); } function changeVal(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var…

Google SpreadSheetのデータ入力支援サイドバーをつくってみる その2:更新時に値を変更する

code.gs function onOpen() { //サイドメニュー表示 SpreadsheetApp.getUi() .createMenu('Custom Menu') .addItem('Show sidebar', 'showSidebar') .addToUi(); } function changeVal(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var cell = ss.ge…

Google SpreadSheetのデータ入力支援サイドバーをつくってみる その1:とりあえずサイドバー

自社でオレオレ見積・請求書フォーマットをGoogle Sheet上で作って活用しています。 そこそこ手間が減らせているのですが、今のところ書類番号は手入力です。 今回はこれを社内ルールにしたがって宜しくやってくれるやつを考えてみます。 実際のところ ター…

GASのContentServiceで任意の型を返す その2:RSS / ATOM

一時に比べて大分大人しくはなったものの、 相変わらずRSS自体はとても便利なデータ型です。 GAS ではこのRSS / ATOMも返り値にできます 実際のところ RSSのとき function doGet() { var feed = "<tag>sample value</tag>"; return ContentService.createTextOutput(fee…

GASのContentServiceで任意の型を返す その1:JSON

function doGet(request) { var result = { available: request.parameters.val == 1 }; return ContentService.createTextOutput(JSON.stringify(result)) .setMimeType(ContentService.MimeType.JSON); } これでCurlで $ curl -L URL_OF_YOUR_SCRIPT?val=1…

GASのプロパティについて

GASにはパラメータを格納するプロパティという便利な箱があります。 あるユーザーは日本語モード、そちらのユーザーはヘブライ語といった感じの。種類はScript Properties、User Properties、Document Propertiesの三つがあり それぞれ用途が異なります。 実…

GASでBlobファイルを外部からもってくる

var url = "https://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Google_2015_logo.svg/220px-Google_2015_logo.svg.png" var response = UrlFetchApp.fetch(url); //Blobとして加工したいとき var resultBlon = response.getBlob(); //単に画像が欲…

GASのイベントトリガーをスクリプトから消す

実際のところ 以下の構文で現在開いて居るGASに使われて居るTriggerの配列が返ってきます。 var triggers = ScriptApp.getProjectTriggers();トリガーを消したい場合、いかのように一個一個バラしてScriptApp.delteTrigger関数で消します。 for (var i = 0; …

GASの時間トリガーをスクリプトから作成する

時間トリガーはUIからも作成できますが、 今回はスクリプトから作成してみます。 こうやると、まとめて作るときなんかで有利です。 実際のところ 平日の20時にトリガーを発生したい場合 以下のようにします。 function createTimeDrivenTriggers() { // 平日…

半端な金額を500円単位に丸める

実際のところ CEILINGは基準値をベースに切り捨て/切り上げを行います =CEILING('別のシート'!A1*1.33,500)他にもMROUNDというのも =MROUND('別のシート'!A1*1.33,500) 参考もと www.excel-list.com www.excel-list.com

G-suiteで編集等のイベントを元にアクションを起こさせる その2:Docs

G-suiteで編集等のイベントを元にアクションを起こさせる方法の2回目 今回はDocsです 実際のところ Docsの本体はeのsourceで読み出しできます。たとえば、読み出した瞬間タイトルを変更したい場合は以下の通り。 function onOpen(e) { var doc = e.source; d…

G-suiteで編集等のイベントを元にアクションを起こさせる

実際のところ セルが変更された場合にメモを残す関数は以下の通り。 function onEdit(e){ var range = e.range; range.setNote('最終編集日時: ' + new Date()); } これと、以前紹介のIFTTTのspread sheet編集機能を連動すると、 単体ではフォローできないよ…

IFTTTのGoogle SpreadSheetアクション その3:既存セルが更新されたらアクションをおこす

参考もと Do more with Google Sheets - IFTTT