はじめに
GoogleスプレッドシートとGoogle Apps Scriptを使うと、データの入力や編集を自動化できて非常に便利です!この記事では、まずスプレッドシートを使い始めるところから、簡単なプログラムを作って実行する手順を紹介します。プログラム初心者の方も気軽にチャレンジできる内容です。
1. Googleスプレッドシートを作成する
ステップ1: スプレッドシートにアクセス
Googleドライブにアクセスして、新しいスプレッドシートを作成します。
- Googleドライブにアクセス
- 左上の「新規」をクリックし、「Googleスプレッドシート」を選択します
ステップ2: スプレッドシートを設定
- スプレッドシートが開いたら、任意の名前を付けます(例:
データ管理シート
)。 -
URLの一部にあるスプレッドシートIDを後で使用するので、メモしておきます。
例:https://docs.google.com/spreadsheets/d/スプレッドシートID/edit
2. Google Apps Scriptを使ってみよう
ステップ1: Apps Scriptエディタを開く
- スプレッドシートのメニューから「拡張機能」→「Apps Script」を選択します。
- Apps Scriptのエディタが別タブで開きます。
ステップ2: プログラムを書く
Apps Scriptエディタにサンプルコードを入力して、スプレッドシートにデータを追加してみましょう。
function addRowToSheet() {
var sheetId = 'YOUR_SPREADSHEET_ID'; // ここにスプレッドシートIDを置き換えてください
var spreadsheet = SpreadsheetApp.openById(sheetId);
var sheet = spreadsheet.getSheetByName('シート1'); // デフォルトのシート名
// 追加するデータ
var data = ['データ1', 'データ2', 'データ3'];
// 最終行の次にデータを追加
sheet.appendRow(data);
Logger.log('データが追加されました!');
}
- YOUR_SPREADSHEET_IDを実際のスプレッドシートIDに置き換えてください。
-
sheet.appendRow(data);
で、シートにデータを追加します。
ステップ3: プログラムを実行する
- コードを入力したら、左上の「保存」ボタンを押します。任意のプロジェクト名(例:
スプレッドシート操作プログラム
)を付けて保存します。 - 「関数を選択」のドロップダウンから「addRowToSheet」を選び、「▶」ボタンをクリックして実行します。
- 初めての実行ではGoogleアカウントの許可が求められるので、指示に従って許可します。
3. スプレッドシートのデータを条件で検索し、更新する
次に、特定の条件に一致するデータを検索し、更新するプログラムです。
function searchAndUpdateRow() {
var sheetId = 'YOUR_SPREADSHEET_ID';
var spreadsheet = SpreadsheetApp.openById(sheetId);
var sheet = spreadsheet.getSheetByName('シート1');
var searchValue = 'データ1';
var newDataB = '更新データ';
var newDataC = 'さらに更新';
var dataRange = sheet.getDataRange();
var values = dataRange.getValues();
for (var i = 0; i < values.length; i++) {
if (values[i][0] === searchValue) {
sheet.getRange(i + 1, 2).setValue(newDataB);
sheet.getRange(i + 1, 3).setValue(newDataC);
Logger.log('データが更新されました! 行: ' + (i + 1));
return;
}
}
Logger.log('指定したデータが見つかりませんでした。');
}
このスクリプトを実行すると、検索条件に一致する行が見つかった場合、その行のデータが更新されます。検索したい値をsearchValue
に、更新するデータをnewDataB
とnewDataC
に指定します。
4. 条件でフィルタリングしてデータを別シートにコピー、スタイルを設定する
次は、データを「結果シート」にフィルタリングしてコピーし、スタイルも適用するプログラムです。
function filterCopyAndStyleData() {
var sheetId = 'YOUR_SPREADSHEET_ID';
var spreadsheet = SpreadsheetApp.openById(sheetId);
var sourceSheet = spreadsheet.getSheetByName('シート1');
var resultSheet = spreadsheet.getSheetByName('結果シート');
if (!resultSheet) {
resultSheet = spreadsheet.insertSheet('結果シート');
} else {
resultSheet.clear();
}
var targetValue = '特定の値';
var dataRange = sourceSheet.getDataRange();
var values = dataRange.getValues();
var filteredData = [];
filteredData.push(values[0]);
for (var i = 1; i < values.length; i++) {
if (values[i][2] === targetValue) {
filteredData.push(values[i]);
}
}
if (filteredData.length > 1) {
resultSheet.getRange(1, 1, filteredData.length, filteredData[0].length).setValues(filteredData);
var dataRangeForStyling = resultSheet.getRange(2, 1, filteredData.length - 1, filteredData[0].length);
dataRangeForStyling.setBackground('#FFEB3B');
dataRangeForStyling.setFontColor('#1B5E20');
dataRangeForStyling.setFontWeight('bold');
dataRangeForStyling.setHorizontalAlignment('center');
Logger.log('フィルタリングされたデータが「結果シート」にコピーされ、スタイルが適用されました。');
} else {
Logger.log('条件に一致するデータが見つかりませんでした。');
}
}
ポイント
-
resultSheet.clear()
で既存のデータを消去し、毎回新しいデータを出力します。 -
setBackground()
,setFontColor()
,setFontWeight()
などを使ってスタイルを適用します。
おわりに
以上がGoogle Apps Scriptを使ってスプレッドシートの操作を自動化する基本的な方法です。データ入力の自動化から、特定条件に応じたデータの加工やスタイルの設定まで、スクリプトを活用してGoogleスプレッドシートをさらに便利に使いこなしてください!