[ノンプロ研]初級講座GAS+freee API講座002第5回目

今回はスプレッドシート・シート・セルの操作です。
2
山口征啓@九大MHA, LIFE Study @ID_HelpDesk

今日は本日はノンプロ研 GAS初級 + freeeAPI講座第2期の第5回、スプレッドシート・シート・セルの操作でーす。 ついにたどり着いたスプレッドシート平原で受講者たちを待ち受けるものは?? #ノンプロ研 #GAS_freeeAPI講座 pic.twitter.com/CONY1SlG0g

2021-10-15 19:23:35
拡大
kiriharaHiro 電子工作とIoT_ICT活用を勉強中 @KiriharaHiro

今日は #ノンプロ研 #GAS_freeeAPI講座 第5回「スプレッドシート・シート・セル」いよいよスプレッドシートを使います。

2021-10-15 20:00:40
Jun FUJIKI | be a good friend @bagoodfriendJP

今日も #ノンプロ研 #GAS_freeeAPI講座 でTA(ティーチングアシスタント)やってますー。今日から楽しいスプレッドシートの操作ですよー。

2021-10-15 20:13:44
kiriharaHiro 電子工作とIoT_ICT活用を勉強中 @KiriharaHiro

講座URLの投稿先間違えたら な~さんから指摘受けた。 アザマス! #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 20:15:38
kiriharaHiro 電子工作とIoT_ICT活用を勉強中 @KiriharaHiro

SpreadsheetサービスでRangeを掴む時は  SprreadsheetApp  Spreadsheet  Sheet    の順に指定し降りていく。 #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 20:19:06
Jun FUJIKI | be a good friend @bagoodfriendJP

SpreadShhetApp > Spreadshhet > Sheet > Range > と目的のセル操作までは、階層を降りていきます。この階層ひとつひとつが〜オブジェクトです。ほらオブジェクト出てきましたよー。今、どのオブジェクトを操作しているのかを意識するのが大切です! #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 20:20:16
kiriharaHiro 電子工作とIoT_ICT活用を勉強中 @KiriharaHiro

アクティブなスプレッドシートの取得 getActiveSpreadsheet() ⇐ メソッド #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 20:20:23
Jun FUJIKI | be a good friend @bagoodfriendJP

Googleスプレッドシートはファイルひとつひとつにユニークな(重複しない)IDがあります。世界中のスプレッドシートにIDが発行されているってすごいですよね。 #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 20:25:21
kiriharaHiro 電子工作とIoT_ICT活用を勉強中 @KiriharaHiro

URLを指定してスプレッドシートを開く SpreadsheetApp.openByUrl('対象のURL'); #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 20:25:22
kiriharaHiro 電子工作とIoT_ICT活用を勉強中 @KiriharaHiro

IDを指定してスプレッドシートを開く SpreadsheetApp.openById('対象のID'); #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 20:25:54
kiriharaHiro 電子工作とIoT_ICT活用を勉強中 @KiriharaHiro

IDはURLのID部分の任意の場所にカーソルを位置づけダブルクリックすると範囲指定できます。 (Windows+Chrome の場合) #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 20:27:49
山口征啓@九大MHA, LIFE Study @ID_HelpDesk

スプレッドシートの各パーツはすべてオブジェクトで作られています。 構造がわかれば、すべてメソッドで取得できるので、シンプルですねー。 #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 20:29:26
Jun FUJIKI | be a good friend @bagoodfriendJP

写経中に「不明なエラーが発生しました。しばらくしてからもう一度お試しください。」 発生。これは対処が難しい。 #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 20:36:38
Jun FUJIKI | be a good friend @bagoodfriendJP

SpreadsheetオブジェクトのgetName()メソッドは、スプレッドシートファイルの名前を取得してくれます。いま取得しているスプレッドシートがなんだっけ?という時によく使います。 #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 20:40:03
kiriharaHiro 電子工作とIoT_ICT活用を勉強中 @KiriharaHiro

urlやidは予め定数で指定しておくと読みやすいコードになります。 const url = 'docs.google.com・・・'; const ssByUrl = SpreadsheetApp.openByUrl(url); #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 20:42:14
kiriharaHiro 電子工作とIoT_ICT活用を勉強中 @KiriharaHiro

Spreadsheetオブジェクト.getSheets() シート名を一括で取りだしてくれます。 const sheets = ss.getSheets(); sheets[0]:1番左のシート sheets[1]:2番目のシート sheets[2]:3番目のシート シート位置をずらしてしまうと混乱するので注意! #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 20:45:30
Jun FUJIKI | be a good friend @bagoodfriendJP

getSheetByName()はシート名でSheetオブジェクトを取得してくれますが、名前を変更されてしまうと🙅一人で仕事してるとシート名なんて変えないでしょって思っていたら別日の自分がサクッと変えたりはしますね。 #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 20:47:59
Jun FUJIKI | be a good friend @bagoodfriendJP

getSheets()メソッドはSheetオブジェクトを配列ですべて取得してくれます。配列なのでひとつひとつはインデックスで取り出しですが、あまり順番指定してSheetオブジェクトを取得することは少ないかな。すべてのシートのA1セルに月初日を入れるとかの時に使っています。 #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 20:49:39
kiriharaHiro 電子工作とIoT_ICT活用を勉強中 @KiriharaHiro

const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheetByName = ss.getSheetByName('シート1'); console.log(`${sheetByName.getName()}を取得しました`); // シート1を取得しました #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 20:54:54
Jun FUJIKI | be a good friend @bagoodfriendJP

続いてRangeオブジェクトへと潜っていきます。いわゆるセルの操作ですね。単体のセルだけでなくセル範囲も操作します。 #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 20:58:53
kiriharaHiro 電子工作とIoT_ICT活用を勉強中 @KiriharaHiro

次はセル。3つの取得方法が有ります。 ・アドレスで指定(B1, F15など) ・行番号、列番号、行数、列数で指定 ・データ範囲を指定 #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 20:59:48
kiriharaHiro 電子工作とIoT_ICT活用を勉強中 @KiriharaHiro

sheet.getRange('A1') :A1セル sheet.getRange('A:A') : A列セル全部 sheet.getRange('1:1') :1行目セル全部 #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 21:03:48
Jun FUJIKI | be a good friend @bagoodfriendJP

getRange()メソッドの範囲の取得の方法は色々あります。慣れ親しんだアドレス(A1とかB:B、B3:C6など)を指定する方法がとっつきやすいですが、getRange(行番号,列番号)で指定する方法のほうがよく使います。行・列を番号にすると繰り返し処理とかに便利です。 #ノンプロ研 #GAS_freeeAPI講座

2021-10-15 21:04:38