【GoogleAppsScript】GASでスプレッドシートを操作してみる

しろです。

Google Apps Scriptの勉強としてスプレッドシート操作をしてみました。

スタンドアロンスクリプトとして作成しています。

今回はスプレッドシート操作の一番簡単な手順のみをまとめています。

流れのイメージ

スプレッドシートを操作する基本の流れとして以下の手順を行う必要があります。

 

スプレッドシート(本体)オブジェクトの取得 – どのファイルを操作するか

シートオブジェクトの取得 – どのシートを操作するか

操作対象セル範囲の取得 – どのセルを操作するか

操作の実行 – 読み取り、または書き込みを行う

上記の流れを覚えていれば混乱することもなくなりそうです。

スプレッドシートオブジェクトを取得する

まずはGoogle Apps Scriptを起動しましょう。起動方法はこちらを確認。

今回はスプレッドシートIDでファイルを開いてみます。IDの確認方法は以下の画像を参照

以下はサンプルコードになります。ファイルIDを指定してファイル名を表示するのみ。

function myFunction() {
  const spreadsheet = SpreadsheetApp.openById('メモしたID');
  Logger.log(spreadsheet.getName());
}

実際の実行画面はこちら。

実行ログ上に正しくファイル名が表示されていることを確認。

コードが長くなると修正箇所がわかりづらくなるので以下のようにまとめたほうが〇

function myFunction() {
  const ssId = 'メモしたスプレッドシートID'
  const spreadsheet = SpreadsheetApp.openById(ssId);
  Logger.log(spreadsheet.getName());
}

シートオブジェクトを取得する

次にシートオブジェクトを取得していきます。

今回は シート名で取得する方法です。以下にコードを記載します。

function myFunction() {
  const ssId = 'メモしたスプレッドシートID'
  const sheetName = 'シート1'

  const spreadsheet = SpreadsheetApp.openById(ssId);
  const sheet = spreadsheet.getSheetByName(sheetName)
 
  Logger.log(spreadsheet.getName());
  Logger.log(sheet.getName());
}

先ほどのコードに3行追加しました。追加した行の説明は以下。

 1行目:シート名を変数にセット
 2行目:スプレッドシートオブジェクトからシート名でシートオブジェクトを取得
 3行目:取得したシート名を表示

シートが複数ある場合はシート名変数とオブジェクトをセットする変数を増やしていけばいいですね

セル範囲を指定する

スプレッドシートオブジェクトの取得、シートオブジェクトの取得までできました。

次は指定したセルの値の読み取り、書き込みを行います。

まずは指定したセル(A1)の値を読み取ります。コードは以下。

function myFunction() {
  const ssId = 'メモしたスプレッドシートID'
  const sheetName = 'シート1'
  const range = 'A1'

  var spreadsheet = SpreadsheetApp.openById(ssId);
  var sheet = spreadsheet.getSheetByName(sheetName);
  var cell = sheet.getRange(range);

  Logger.log(spreadsheet.getName());
  Logger.log(sheet.getName());
  Logger.log(cell.getValue());
}

またまた3行追加しました。追加した行の説明は以下。

 ・1行目:セルの場所を変数にセット
 ・2行目:シートオブジェクトからセルの範囲を取得(今回はA1)
 ・3行目:セルの値を読み取り

実行結果は以下のようになります。

現在読み取っているスプレッドシートは何も記入されていないためブランク(空)の状態です。

次はセルに値を書き込みます。コードは以下。

function myFunction() {
  const ssId = 'メモしたスプレッドシートID'
  const sheetName = 'シート1'
  const range = 'A1'

  var spreadsheet = SpreadsheetApp.openById(ssId);
  var sheet = spreadsheet.getSheetByName(sheetName);
  var cell = sheet.getRange(range);
  cell.setValue('A1のセルの値です');

  Logger.log(spreadsheet.getName());
  Logger.log(sheet.getName());
  Logger.log(cell.getValue());
}

.setValue(‘書き込むデータ’)でセルに値をセットすることができます。

実行結果は以下のようになります。

.setValue()で書き込んだ値が反映されていることが確認できました。

実際にスプレッドシートを見てみると、、、

指定したスプレッドシートの指定したシートの指定したセルに正しく値が書き込まれていました。

参考:

https://qiita.com/mitama/items/e5fbf8306384c26cf42f
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app

さいごに

わたしも勉強をはじめたばかりなのでいろんなサイトやブログを参考にさせていただいております。

今回はスプレッドシート操作の一番簡単な手順をまとめてみました。

他にも方法はたくさんありますが割愛します。

ではまた

コメント

タイトルとURLをコピーしました