1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

40 代おっさん GASのSheetクラスについて学ぶ

Posted at

本記事ついて

本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。

Sheetクラス

Sheetクラスとは
シートを操作する機能を提供するクラス

*Sheetクラスの主なメンバーの図はさすがに作るのがきびしいので、参考資料の本を見ていただくか、ネットで調べください。

ちなみにこちらで書いてありました。
https://hirachin.com/post-4006/

お試し

function toshiki4() {
  const sheet = SpreadsheetApp.getActiveSheet();

  console.log(sheet.getIndex()); 
  console.log(sheet.getName());
  console.log(sheet.getParent().getName());
  console.log(sheet.isSheetHidden());
}

セル範囲を収得する

セル範囲を収得するメソッドはいくつかある。
その中でもスタンダードなのが、getRangeメソッド

セル範囲のアドレスを文字列で渡し、その範囲を取得する方法

sheetオブジェクト.getRange(アドレス)

他のパターンで行番号、列番号、行数、列数を組み合わせてセル範囲を指定する方法

sheetオブジェクト.getRange(行番号, 列番号, [行数, 列数])

お試し

function toshiki4() {
  const sheet = SpreadsheetApp.getActiveSheet();

  console.log(sheet.getRange('B2').getA1Notation()); 
  console.log(sheet.getRange('D4:F6').getA1Notation());
  console.log(sheet.getRange('2:2').getA1Notation());  
  console.log(sheet.getRange('B:B').getA1Notation()); 

  console.log(sheet.getRange(4, 4).getA1Notation()); 
  console.log(sheet.getRange(4, 4, 3).getA1Notation()); 
  console.log(sheet.getRange(4, 4, 3, 3).getA1Notation()); 
 }

シートのデータ範囲を取得する

アドレスや行番号、列番号が分からない場合、変化する場合のセル範囲を収得する方法

シート上のデータが存在する範囲を自動で判別して収得する
getDataRangeメソッド

構文

sheetオブジェクト.getDataRange();

セル範囲ではなく、データが存在する最後の行番号または列番号を収得する。
getLastRowメソッド シートのデータがある最後の行番号を返す

sheetオブジェクト.getLastRow();

getLastColumnメソッド シートのデータがある最後の列番号を返す

sheetオブジェクト.getLastColumn();

お試し

function toshiki4() {
  const sheet = SpreadsheetApp.getActiveSheet();

  console.log(sheet.getDataRange().getA1Notation()); 

  const row = sheet.getLastRow();
  console.log(row);
  
  const column = sheet.getLastColumn();
  console.log(column);

  const range = sheet.getRange(1, 1, row, column);
  console.log(range.getA1Notation());
}

1行、1列目などを空白行にしてシートを構成するケースがありますが、それだとgetDataRangeメソッドの効果は低下するようです。

シートに行を追加する

シートを1行1列目から表を構成するとappendRowメソッドを使えるメリットがでます。
appendRowメソッドは引数として与えた配列をそのままシート最終の次の行に使いするメソッドです。

構文

Sheetオブジェクト.appendRow(配列)

お試し

スプレッドシートにデータを入れてから試してください

function toshiki4() {
  const sheet = SpreadsheetApp.getActiveSheet();

  sheet.appendRow(['アッキー', 9, 'リンゴ']);
  sheet.appendRow([null, '=sum(B2:B4)'])
}

シートをクリアする

シートをクリアする方法

cleartentsメソッド
コンテンツのみ、つまり入力されている値や数式などの内容のみをクリアする

構文

Sheetオブジェクト.cleartents()

clearFormatsメソッド
背景、フォント、罫線などの書式のみをクリアする

構文

Sheetオブジェクト.clearFormats()

clearメソッド
上の両方をクリアする

構文

Sheetオブジェクト.clear()

参考資料

https://www.amazon.co.jp/s?k=google+apps+script+%E5%AE%8C%E5%85%A8%E5%85%A5%E9%96%80&adgrpid=110264232688&gclid=CjwKCAiA9aKQBhBREiwAyGP5lSl7AJJLCvOEHb4wQgMlyqW1fll5X8GDTT_Rkd1_soUAyIPMXQr26hoClHEQAvD_BwE&hvadid=553833563682&hvdev=c&hvlocphy=1009076&hvnetw=g&hvqmt=b&hvrand=4378489642044417389&hvtargid=kwd-594191211348&hydadcr=4106_13159878&jp-ad-ap=0&tag=googhydr-22&ref=pd_sl_2x1owglv0s_b_p52

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?