Google Apps Scriptでスプレッドシートにアクセスする

Google Apps ScriptからGoogleスプレッドシートを操作する方法をメモ。

Google Apps ScriptとGoogleスプレッドシートを紐づける場合

まずはスプレッドシートとGoogle Apps Scriptを紐づける方法を試してみます。
新しくスプレッドシートを作成して、ツール > スクリプト エディタ を選択します。

Google Apps Scriptファイルが生成されます。

myFunction()内に以下のように記述します。

function myFunction() {
  Browser.msgBox('test');
}

上部メニューにある実行ボタンをクリックします。

初めての場合は承認のアラートが表示されるので許可すると、最初のスプレッドシートにアラートで「test」と表示されました。

次にスプレッドシートとその中のシートを指定して書き込みを行ってみます。

function myFunction() {
  // 対象のスプレッドシートを取得
  var spread = SpreadsheetApp.getActiveSpreadsheet();
  // スプレッドシート内のシート一覧を取得
  var sheets = spread.getSheets();
  // 指定したシート(1番目)の左上に書き込み
  sheets[0].getRange(1, 1).setValue('test');
}

上部メニューにある実行ボタンをクリックします。

スプレッドシートに戻ると、シートの左上に「test」と記述できました。

先ほどは何番目のシート化を指定しましたが、シート名を指定することもできます。

function myFunction() {
  // 対象のスプレッドシートを取得
  var spread = SpreadsheetApp.getActiveSpreadsheet();
  // スプレッドシート内のシートを取得
  var sheet = spread.getSheetByName('シート1');
  // 指定したシート(シート1)の左上に書き込み
  sheet.getRange(1, 1).setValue('test2');
}

上部メニューにある実行ボタンをクリックします。

スプレッドシートに戻ると、シートの左上に「test2」と記述できました。

 

Google Apps ScriptとGoogleスプレッドシートを紐づけない場合

スプレッドシートとGoogle Apps Scriptを別々に用意する方法を試してみます。
新しくスプレッドシートとGoogle Apps Scriptを別々に作成します。

myFunction()内に以下のように記述します。

function myFunction() {
  // 対象のスプレッドシートを取得
  var spread = SpreadsheetApp.getActiveSpreadsheet();
  // スプレッドシート内のシート一覧を取得
  var sheets = spread.getSheets();
  // 指定したシート(1番目)の左上に書き込み
  sheets[0].getRange(1, 1).setValue('test');
}

上部メニューにある実行ボタンをクリックします。

最初のサンプルではスプレッドシートに「test」と表示されましたが、今回は表示されずに以下のようなエラーが表示されました。
これはスプレッドシートとGoogle Apps Scriptを別々に作成したため紐づいておらず、Google Apps Scriptからスプレッドシートを見つけられていないためです。

スプレッドシートのIDまたはURLを指定することで、紐づけを行えます。
まずはIDを指定してみます。

function myFunction() {
  // 対象のスプレッドシートを取得
  var spread = SpreadsheetApp.openById('XXXXXXXXXX');
  // スプレッドシート内のシート一覧を取得
  var sheets = spread.getSheets();
  // 指定したシート(1番目)の左上に書き込み
  sheets[0].getRange(1, 1).setValue('test');
}

IDはスプレッドシートURLの以下の「XXXXXXXXXX」の部分になります。

https://docs.google.com/spreadsheets/d/XXXXXXXXXX/edit

上部メニューにある実行ボタンをクリックします。

スプレッドシートに戻ると、シートの左上に「test」と記述できました。

次にURLを指定してみます。

function myFunction() {
  // 対象のスプレッドシートを取得
  var spread = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/XXXXXXXXXX/edit');
  // スプレッドシート内のシート一覧を取得
  var sheets = spread.getSheets();
  // 指定したシート(1番目)の左上に書き込み
  sheets[0].getRange(1, 1).setValue('test2');
}

上部メニューにある実行ボタンをクリックします。

スプレッドシートに戻ると、シートの左上に「test2」と記述できました。

 

【参考サイト】

 

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年12月
1234567
891011121314
15161718192021
22232425262728
293031