Google Apps Script のgetについて

Google Appsとは…

Google Appsとは、Google社が提供しているパブリッククラウド型のサービスのことです。
Google Appsを導入することにより、
Gmailやハングアウト、スプレッドシートなどのドキュメントの共有(管理や編集)だけでなく、スケジュール共有(Googleカレンダー)といったサービスによる情報共有ができるようになります。
またGoogle Appsを使用することにより、IT コストを削減できるだけでなく生産性を高めることができます。これらのGoogle Appsを使ったことがないという方は少ないのではないでしょうか。

Google Apps Script (GAS)とは…

Google Apps Scriptは頭文字をとって「GAS(ガス)」と略されます。
また、Google Apps Scriptは無料で利用できます。

Google Apps Scriptとは、GmailやGoogleカレンダー、Googleドライブなど、Googleが提供しているさまざまなツールやサービスを連携して利用するためにGoogleが開発し、提供しているJavaScript ベースのプログラミング言語です。ただし、開発環境の構築が必要なく、Googleアカウントとインターネット環境さえあれば利用できます。

JavaScriptというのは、Webブラウザ上で動作するプログラミング言語で、Webサービスを作ろうと思ったときには避けては通ることができない言語ですので、ある程度の学習が必要になります。ただし、JavaScriptはエンジニアにとってはポピュラーな言語なので学習コストは多少低いのではないでしょうか。

Google Apps Scripを使えば、カスタムのメニューやダイアログ、サイドバーを Google ドキュメント、スプレッドシート、フォームに追加することができますし、GmailやGoogleカレンダなどのGoogleが提供しているさまざまなサービスと連携して活用することができます。

例えば、GoogleスプレッドシートやGoogleドキュメントなどの操作を自動化して表やグラフを作成することや、決まったフォーマットにドキュメントを整理すること、ファイルの共有管理などができます。
また、Gmailに届いた添付ファイルをGoogleドライブに共有する場合にも、ファイルを自動で共有フォルダにアップロードするように設定できますし、メールの自動送信や返信もできます。

今回はスプレッドシートを操作する際の基本となるセルの値や行数、列数を取得する方法に関する内容について紹介していきたいと思います。

Google Sheets

Google Apps Scriptでは、「SpreadsheetApp」オブジェクトとして、Google Sheets(スプレッドシート) が用意されており、Google Apps Scriptでセルを操作する手順は、

  スプレッドシートのオブジェクトを取得する → シートのオブジェクトを取得する
→ セル範囲を指定したオブジェクトを取得する → オブジェクトの内容を取得・変更する

です。

getの使い方


① 選択されたシートを取得します。

var example=SpreadsheetApp.getActiveSheet();

② セルの範囲(Range)オブジェクトを取得します。
まずはセルを1つだけ取得する getRange(“{セルの番地}”) という構文です。
{セルの番地}の部分に書かれたセルを1つだけ指定することができます。

var range=sheet.getRange(“{セルの番地}”)

var range=sheet.getRange(“A3”);  (⇦具体的に書くとこのようになる)

次にセルを範囲で指定する構文です。こちらは様々な書き方があるので紹介します。

getRange(“{始まりのセルの番地}:{終わりのセルの番地}”)
 var range=sample.getRange(A1 : C1)と書けば、この範囲のセルを取得する

getRange({行番号},{列番号})
 var range=sample.getRange(1, 1)と書けば、セルA1を取得する

getRange({行番号},{列番号},{行数})
 var range=sample.getRange(1, 1, 4)と書けば、A1:A4を取得する

getRange({行番号},{列番号},{行数},{列数})
 var range=sample.getRange(1, 1, 4, 3);セルA1:C4を取得する

③ セルの値を取得します。
セルの値を取得する際、1つだけ取得するのか、全ての値を取得するのかで書き方が違います。
まずは指定したセルの値を1つ取得する書き方を説明します。

getValue();
var exValue=range.getValue();

これは指定された範囲内の1番左上にあるセルの値を取得します。
Number、Boolean、Date、Stringのいずれかが返り値の型となります。ただしセルが空の場合は空のStringで返されます。

次に指定したセル全ての値を取得する書き方を紹介します。

getValues()
var exValues=range.getValues();

これは指定された範囲内の値を二次元配列で返します。配列のインデックスは[0][0]から始まり、返り値には配列が格納されることになります。また返り値の型は、getValue()と同じです。

では最後に①〜③をわかりやすくまとめて書いておきます。

function myFunction() {
var example = SpreadsheetApp.getActiveSpreadsheet();
var sample = example.getActiveSheet();     (⇦①)

var range = sample.getRange(1, 1, 4);     (⇦②)

Logger.log(range.getValue());   (⇦③ – ⑴ )
Logger.log(range.getValues());   (⇦③ – ⑵ )

③ – ⑴はA1のみ、③ – ⑵はA1からA4が返されるという結果になります。

最後に…

以上がGoogle Apps Scriptのスプレッドシートを使う際のgetについての内容でした。
最後に出てきていたgetValue()では値を取得しましたが、setValue()というものもあります。こちらは指定されたセルに値を入力するメソッドです。他にも様々なメソッドがありますが、今回は「get」が付くものを紹介しました!
もっと知りたいと思う方は学習してみてくださいね。

前の記事

Google Apps Script gmail

次の記事

Googleドキュメントに関して