Google Apps Scriptでのスプレッドシート制御方法

Google Apps Scriptでのスプレッドシート制御方法

はじめに

Google Sheetsはビジネスや日常生活の様々な場面で利用される、強力なスプレッドシートツールです。Google Apps Scriptを使うことで、スプレッドシートに自動処理を追加することができます。本記事では、初心者向けにGoogle Apps Scriptでスプレッドシートを制御する方法について解説します。

スプレッドシート上級を理解するための内容の詳細

Google Apps Scriptsとは

Google Apps Scriptは、Google Workspace(G Suite)の一部で、JavaScriptを使ってG Suiteの各種アプリケーションを操作できるプラットフォームです。GmailGoogle DriveGoogleカレンダーGoogle SheetsなどのGoogle製品に対して自動処理を追加することができます。

Google Apps Scriptの基本的な使い方

  1. Google Sheetsを開いて、ツールバーから「ツール」-「スクリプトエディタ」を選択します。
  2. 新規スクリプト画面が表示されますので、そこにコードを書きます。
  3. スクリプトを実行するために、適切なトリガーを設定します。

スプレッドシートを制御する方法

スプレッドシートの制御方法には、以下のようなものがあります。

基本操作

  1. セルに値を入力してみる
function setValueToCell() {
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange(1, 1).setValue("Hello, world!"); // A1セルに値を設定
}
  1. セル内容を読み取ってみる
function getValueFromCell() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var value = sheet.getRange(1, 1).getValue(); // A1セルの値を取得
  Logger.log(value); // ログに値を出力
}

データの操作

  1. シートを追加してみる
function addSheet() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var newSheet = sheet.insertSheet(); // 新しいシートを作成する
  newSheet.setName("Sheet2"); // シート名を設定する
}
  1. セル範囲内の値を取得してみる
function getValuesFromRange() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange(1, 1, 10, 2); // A1:B10の範囲を取得
  var values = range.getValues(); // 範囲内の値を取得
  Logger.log(values); // ログに値を出力
}

フォーミュラの操作

function setFormulaToCell() {
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange(1, 1).setFormula('=SUM(B1:B10)'); // セルにSUM関数を設定する
}

自動処理

  1. スクリプトを定期的に実行する
function myFunction() {
 // ここにプログラムを書く
}

// 24時間ごとにmyFunctionを実行する 
function setTrigger() {
  ScriptApp.newTrigger('myFunction')
  .timeBased()
  .everyDays(1)
  .create();
}

Webアプリケーションの制御

  1. Webアプリケーションを作成してみる
function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function getUserInput(form) {
  var name = form.name;
  var email = form.email;
  // ここで処理を行う
}

Index.html
<form>
  <input type="text" name="name" placeholder="名前">
  <input type="email" name="email" placeholder="メールアドレス">
  <input type="submit" value="送信" onclick="google.script.run.withSuccessHandler(showMessage).getUserInput(this.parentNode)">
</form>

<script>
function showMessage(result) {
  var responseMessage = document.getElementById("response-message");
  responseMessage.innerHTML = "処理が完了しました。";
}
</script>

細かな操作

SpreadsheetApp

以下は、SpreadsheetAppの主なメソッドの例です。

  1. シートを取得する
var sheet = SpreadsheetApp.getActiveSheet(); // 現在アクティブなシートを取得する
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); // Sheet1というシート名のシートを取得する
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets(); // 全てのシートの配列を取得する
  1. セルの範囲を取得する
var range = sheet.getRange(1, 1); // A1のセル範囲を取得する
var range = sheet.getRange(1, 1, 10, 10); // A1:J10のセル範囲を取得する
var namedRange = sheet.getRangeByName("myRange"); // 名前で指定したセル範囲を取得する
  1. セルに関する操作
range.setValue("test"); // セルに値を設定する
var value = range.getValue(); // セルの値を取得する
var fontColor = range.getFontColor(); // セルのフォント色を取得する
range.setFontSize(12); // セルのフォントサイズを変更する

Utilities

以下は、Utilitiesの主なメソッドの例です。

  1. URLのエンコードやデコードを行う
var url = "https://example.com/?q=" + Utilities.base64Encode("example");
  1. 日付のフォーマットを変更する
var date = new Date();
var formattedDate = Utilities.formatDate(date, "JST", "yyyy/MM/dd");

シートを使用した具体的なシーン

  1. データの整理・集計

スプレッドシートを使って、Excelなどでよく行うようなデータの整理や集計を行うことができます。例えば、各部門の売り上げデータを収集し、月次や年次での集計を行うことができます。

  1. タイムラインの作成

制作物の進捗状況やスケジュール管理など、日々のタスク管理に利用することができます。スプレッドシートに記入した予定やタスクをカレンダーアプリに同期させることもできます。

  1. アンケート作成

スプレッドシートを使って、アンケートの回答結果を集計することができます。フォーム機能を活用することで、回答者への自動送信や回答結果の自動集計が可能です。

理解することで何に役立つか

スプレッドシート上級を理解することで、Google Sheetsをより多様なシーンで活用することができるようになります。スタンダードな基本操作にとどまらず、データの操作やフォーミュラの設定、自動処理やWebアプリケーションの制御方法など、幅広いテクニックを習得することができます。これにより、ビジネスの現場でデータ分析を行い、プロジェクト管理やタスク管理など、多様な業務を効率化させることができます。

補足的な情報

Google Apps Scriptには、Atlassian ScriptRunnerやTrueScriptなど、サードパーティー製品があります。これらは、より高度な制御を可能にし、より複雑なスクリプトを簡単に実行することができます。また、Google Apps Scriptは、Google Cloud Platform上で動作しているため、Google Cloud Platformの各種機能やAPIを利用することができます。これにより、より高度な機能を実現することができます。

まとめ

Google Sheetsを利用することで多様なデータ処理や集計が簡単に行えることがわかりました。Google Apps Scriptを使うことで、スプレッドシートに自動処理を追加することができ、ビジネスやプライベートなどの様々なシーンで利用することができます。初心者でも簡単に扱える基本操作から、より高度な操作まで幅広く取り扱いました。Google Apps Scriptを活用して、よりスマートなデータ処理を実現しましょう。