0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめてのGoogle Apps Script!スプレッドシート操作の自動化に挑戦しよう

Posted at

はじめに

GoogleスプレッドシートとGoogle Apps Scriptを使うと、データの入力や編集を自動化できて非常に便利です!この記事では、まずスプレッドシートを使い始めるところから、簡単なプログラムを作って実行する手順を紹介します。プログラム初心者の方も気軽にチャレンジできる内容です。

スクリーンショット 2024-10-09 19.28.20.png

1. Googleスプレッドシートを作成する

ステップ1: スプレッドシートにアクセス

Googleドライブにアクセスして、新しいスプレッドシートを作成します。

  • Googleドライブにアクセス
  • 左上の「新規」をクリックし、「Googleスプレッドシート」を選択します

ステップ2: スプレッドシートを設定

  • スプレッドシートが開いたら、任意の名前を付けます(例: データ管理シート)。
  • URLの一部にあるスプレッドシートIDを後で使用するので、メモしておきます。
    例: https://docs.google.com/spreadsheets/d/スプレッドシートID/edit

2. Google Apps Scriptを使ってみよう

ステップ1: Apps Scriptエディタを開く

  1. スプレッドシートのメニューから「拡張機能」→「Apps Script」を選択します。
  2. 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: プログラムを実行する

  1. コードを入力したら、左上の「保存」ボタンを押します。任意のプロジェクト名(例: スプレッドシート操作プログラム)を付けて保存します。
  2. 「関数を選択」のドロップダウンから「addRowToSheet」を選び、「▶」ボタンをクリックして実行します。
  3. 初めての実行では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に、更新するデータをnewDataBnewDataCに指定します。

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スプレッドシートをさらに便利に使いこなしてください!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?