[ノンプロ研] GAS初級講座8期5日目 スプレッドシートの操作・基礎編

コミュニティ「ノンプログラマーのためのスキルアップ研究会」GAS コース第8期第5回のツイートまとめです。コンテンツは「スプレッドシートの操作・基礎編」です。 https://tonari-it.com/community-nonpro-semi/
3
KT @KTktktkt06

◆スプレッドシートの取得の方法 ・アクティブスプレッドシートから SpreadsheetApp.getActiveSpreadsheet() ・URLで取得 SpreadsheetApp.openByUrl(URL) ・IDで取得 SpreadsheetApp.openById(ID) ↓IDの位置:{ID} docs.google.com/spreadsheets/d/{ID}/edit#gid=0 #ノンプロ研 #GAS初心者講座

2021-03-24 20:21:44
Kenny Tsuji | 『旬北海道』北海道から世界の食卓へ @TsujiKenzo

さぁ、一個目の写経です。今日はバタバタだぞ~ (写経の量が多い) #ノンプロ研

2021-03-24 20:23:03
Kenny Tsuji | 『旬北海道』北海道から世界の食卓へ @TsujiKenzo

スプレッドシートを掴むgetActiveSpreadsheet()メソッドはコンテナバインドスクリプトでしか使えません。 なにも紐づいていないスタンドアロンスクリプトから実行すると「アクティブ(紐づいてる)なスプレッドシートなんて無いですよ」と怒られます。 #ノンプロ研

2021-03-24 20:24:45
Kenny Tsuji | 『旬北海道』北海道から世界の食卓へ @TsujiKenzo

スプレッドシートのURLは /edit までです。しかしながら、editの後ろのシートID(#glid=number)を含めたURLのすべてを張り付けても、openByUrl()は有効です。 #ノンプロ研

2021-03-24 20:28:25
な~🍀GAS @GasNao703

URLで開くの知らなかった訳ではないと思うのだけど、使ったことなかった! #ノンプロ研 #GAS初級講座

2021-03-24 20:28:42
KT @KTktktkt06

今日は写経が大変な日です (毎度のことですが)1問目から、普段の4倍くらいの時間がかかっちゃってます #ノンプロ研 #GAS初心者講座

2021-03-24 20:30:13
かにみそ.gs @kanimiso_gs

IDで取得すると文字数がすくなくなるなどのメリットが。URLで取得すると、そのままコピペでブラウザで開けるなどのメリットが。 #ノンプロ研

2021-03-24 20:32:48
KT @KTktktkt06

認証の画面が出てくる方がいらっしゃるかもしれません 以下の画面が出たら、 詳細→"XXXX"(安全ではないページに移動) に進みましょう ka-net.org/blog/?p=12258 #ノンプロ研 #GAS初心者講座 pic.twitter.com/XNcKsTyVkh

2021-03-24 20:33:33
拡大
KT @KTktktkt06

◆シートの取得の方法 ・シート名で取得 ・配列を取得しインデックスで指定 ・アクティブなシートを取得  =バインドしているスプレッドシートのアクティブなシート #ノンプロ研 #GAS初心者講座

2021-03-24 20:34:21
な~🍀GAS @GasNao703

シート名は変えないで~という運用 シート名がわかると動かなくなっちゃうよ。 #ノンプロ研 #GAS初級講座

2021-03-24 20:34:33
な~🍀GAS @GasNao703

あ、並びも変えることもできるのか! #ノンプロ研 #GAS初級講座

2021-03-24 20:35:26
な~🍀GAS @GasNao703

シートの並び順こそは、不意に変わってしまうときあるよね。 #ノンプロ研 #GAS初級講座

2021-03-24 20:36:06
KT @KTktktkt06

◆シートの取得の方法 ・シート名から:Spreadsheetオブジェクト.getSheetByName(シート名) ・配列から:const sheets = ss.getSheets(); ↓ sheets[0]:1番左のシート sheets[1]:2番目のシート sheets[2]:3番目のシート ※シート名・並び順はユーザーが変更できるので注意! #ノンプロ研

2021-03-24 20:36:21
KT @KTktktkt06

◆シートの取得の方法 ・アクティブシートを取得:SpreadsheetApp.getActiveSheet() ※グローバルオブジェクトから直接取得可能 ※”アクティブシート”は状況によって変わる #ノンプロ研 #GAS初心者講座

2021-03-24 20:37:51
Hassy @googleappsscri

Sheetが1枚しかない時はgetActiveSheet使ってオッケー! #ノンプロ研 #GAS初心者講座

2021-03-24 20:37:52
かにみそ.gs @kanimiso_gs

シートオブジェクトを取得する方法は3つ。 1)シート名で取得 2)getSheets()ですべてのシートを取得→配列から取得 3)アクティブなシートを取得 #ノンプロ研

2021-03-24 20:38:10
Kenny Tsuji | 『旬北海道』北海道から世界の食卓へ @TsujiKenzo

続いてシートの掴み方です。必ず階層の上から順に掴んでいきましょうね。 SpreadSheetApp ↓ SpreadSheet ↓ Sheet です。 #ノンプロ研

2021-03-24 20:40:56
かにみそ.gs @kanimiso_gs

シートを取得するもう一つの方法。 getSheets()で取得したシートオブジェクトをfor...of文で回し、sh.getSheetId()で取得したシートIDが特定のgidと一致するか確かめるやりかた。 これならシート名の変更にも並び順の変更にも耐えられる。ただコードが冗長になるのがデメリット。 #ノンプロ研

2021-03-24 20:42:21
Kenny Tsuji | 『旬北海道』北海道から世界の食卓へ @TsujiKenzo

シートを掴むメソッドの紹介をした後に、運用後に起きるエラーのあるあるを説明するのは、少々こんがらがってしまうかな。。。 とりあえずは「○○を使うことで○○ができます」だけでいいかも。 「ただし、○○をされちゃうと困ります」ってのは、あくまで補足としてね。 #ノンプロ研

2021-03-24 20:43:11
Hassy @googleappsscri

リファレンスってvarとかloggerばっかり。V8対応するのかな? #ノンプロ研

2021-03-24 20:48:29
KT @KTktktkt06

◆セル範囲の取得の方法 ・アドレスで取得 ・行番号,列番号,行数,列数で取得 ・データ範囲を取得 #ノンプロ研 #GAS初心者講座

2021-03-24 20:52:58
KT @KTktktkt06

◆セル範囲の取得の方法 ・アドレスでセル範囲を取得:Sheetオブジェクト.getRange(アドレス) const sheet = SpreadsheetApp.getActiveSheet(); ↓ sheet.getRange('A1') : A1セル sheet.getRange('A1:E5') : A1:E5セルsheet.getRange('A:A') : A列 sheet.getRange('1:1') : 1行 #ノンプロ研

2021-03-24 20:54:14
Hassy @googleappsscri

.getA1Notationというのは、「.getB1Notation」とかもありうるのでしょうか? #ノンプロ研 #GAS初心者講座

2021-03-24 20:56:16