はじめに

Google Apps Script (GAS) は、Google スプレッドシート、Google ドキュメント、Google フォームなどのさまざまな Google サービスに関連付けられたスクリプト開発プラットフォームです。タスクの自動化、カスタム機能の追加、Google サービスの統合を可能にします。

このメモでは、具体的な例を用いてGoogle Apps Scriptの主要な概念について探求します。変数、ループ、関数などの概念を取り上げ、それらをGASの特定のコンテキストに適応させます。

Google Apps Script の基本構造

始めに、Google Apps スクリプトの基本構造を見てみましょう。

/**
 * Structure de base en Google Apps Script
 */
function exempleStructureGAS() {
    // Votre code ici
    Logger.log("Hello, Google Apps Script!");
}

Google Apps Script の型と変数

Google Apps Script はプログラミング言語として JavaScript を使用します。データ型と変数は標準の JavaScript と同様に機能します。

/**
 * Types et Variables en Google Apps Script
 */
function exempleTypesVariablesGAS() {
    // Votre code ici
    var nombre = 42;
    var texte = "Bonjour, Google Apps Script!";
    Logger.log(nombre);
    Logger.log(texte);
}

Google Apps Script の演算と演算子

Google Apps Scriptにおける演算と演算子はJavaScriptと同じです。

/**
 * Opérations et Opérateurs en Google Apps Script
 */
function exempleOperationsGAS() {
    // Votre code ici
    var x = 10;
    var y = 5;
    var resultat = x + y;
    Logger.log(resultat);
}

Google Apps Scriptにおけるvar、let、const

GAS では、概念の`var`, let, et `const`は変数を宣言するために使用されます。ただし、それらの違いと影響を理解することが不可欠です。

/**
 * Var, Let et Const en Google Apps Script
 */
function exempleVarLetConstGAS() {
    // Votre code ici
    // Utilisation de var
    var x = 10;
    if (true) {
        var x = 20; // La variable x est modifiée globalement
    }
    Logger.log(x);

    // Utilisation de let
    let y = 30;
    if (true) {
        let y = 40; // La variable y est limitée au bloc if
    }
    Logger.log(y);

    // Utilisation de const
    const z = 50;
    // z = 60; // Impossible de réassigner une constante
    Logger.log(z);
}

Google Apps Script の制御構造

制御構造など`if`, else, while et `for`は、Google Apps Script で実行フローを管理するために使用されます。

/**
 * Structures de Contrôle en Google Apps Script
 */
function exempleStructuresControleGAS() {
    // Votre code ici
    var condition = true;

    if (condition) {
        Logger.log("La condition est vraie.");
    } else {
        Logger.log("La condition est fausse.");
    }

    var compteur = 0;
    while (compteur < 5) {
        Logger.log(compteur);
        compteur++;
    }

    for (var i = 0; i < 3; i++) {
        Logger.log(i);
    }
}

Google Apps Script の設定とスコープ

パラメータとスコープはGASスクリプト開発において重要な役割を果たします。その仕組みを理解して、予期しない動作を避けてください。

/**
 * Paramètres et Scopes en Google Apps Script
 */
function exempleParametresScopesGAS(parametre) {
    // Votre code ici
    var variableGlobale = "Je suis global";

    function afficherParametre() {
        Logger.log(parametre);
    }

    afficherParametre();
    Logger.log(variableGlobale);
}

Google Apps Script の定数、変数、および文字

違いを理解する`const`, var, et `let`これはGoogle Apps Scriptで変数を効果的に使用するために不可欠です。

/**
 * Constantes, Variables, et Lettres en Google Apps Script
 */
function exempleConstantesVariablesLettresGAS() {
    // Votre code ici
    const constante = "Je ne change pas";
    Logger.log(constante);

    var variable = "Je peux changer";
    Logger.log(variable);

    let lettre = "Je peux aussi changer, mais seulement dans mon bloc";
    Logger.log(lettre);
}

Google Apps Script でのループ

ループ、例えば`for` et while, 要素をイテレーションし、繰り返しの操作を行うために不可欠です。

/**
 * Boucles en Google Apps Script
 */
function exempleBouclesGAS() {
    // Votre code ici
    for (var i = 0; i < 3; i++) {
        Logger.log(i);
    }

    var condition = true;
    var compteur = 0;

    while (condition) {
        Logger.log("Tour de boucle");
        compteur++;
        if (compteur === 3) {
            condition = false;
        }
    }
}

Google Apps Script のオブジェクト

オブジェクトはデータを構造化するために使用されます。 GASでは、多数の組み込みオブジェクトがGoogleサービスとのやり取りを容易にします。

/**
 * Objets en Google Apps Script
 */
function exempleObjetsGAS() {
    // Votre code ici
    var feuille = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    var cellule = feuille.getRange("A1");
    cellule.setValue("Nouvelle valeur");
}

Google Apps Scriptにおける定数、変数、および文字

理解する違いの間`const`, var, et `let`Google Apps Script で変数を効果的に使用することは不可欠です。

/**
 * Constantes, Variables, et Lettres en Google Apps Script
 */
function exempleConstantesVariablesLettresGAS() {
    // Votre code ici
    const constante = "Je ne change pas";
    Logger.log(constante);

    var variable = "Je peux changer";
    Logger.log(variable);

    let lettre = "Je peux aussi changer, mais seulement dans mon bloc";
    Logger.log(lettre);
}

Google Apps Scriptの関数

関数はプログラミングにおける基本的な要素です。GASでは、関数をさまざまな方法で宣言および呼び出すことができます。

/**
 * Fonctions en Google Apps Script
 */
function exempleFonctionsGAS() {
    // Votre code ici
    function additionner(a, b) {
        return a + b;
    }

    var resultat = additionner(2, 3);
    Logger.log(resultat);

    // Fonction anonyme
    var multiplier = function (x, y) {
        return x * y;
    };

    Logger.log(multiplier(4, 5));
}

Google Apps Scriptのレスト演算子とスプレッド演算子

オペレーターの休憩(…​) と 伝播 の (…​)は、配列とオブジェクトを簡潔に操作するのに便利です。

/**
 * Opérateurs de Repos et de Propagation en Google Apps Script
 */
function exempleOperateursReposPropagationGAS() {
    // Votre code ici
    // Opérateur de repos (...) pour les tableaux
    var nombres = [1, 2, 3, 4, 5];
    var [...copieNombres] = nombres;
    Logger.log(copieNombres);

    // Opérateur de propagation (...) pour les objets
    var objOriginal = { x: 1, y: 2 };
    var objClone = { ...objOriginal, z: 3 };
    Logger.log(objClone);
}

Google Apps Script による分解による割り当て

分解代入は、オブジェクトや配列から値を簡潔に抽出できる強力な機能です。

/**
 * Affectation par Décomposition en Google Apps Script
 */
function exempleAffectationDecompositionGAS() {
    // Votre code ici
    var coordonnees = [3, 4];
    var [x, y] = coordonnees;
    Logger.log(x);
    Logger.log(y);

    var utilisateur = { nom: "John", age: 30 };
    var { nom, age } = utilisateur;
    Logger.log(nom);
    Logger.log(age);
}

Google Apps Scriptでのコレクションと宣言型プログラミング

Google Apps Script は、配列などのデータ構造をサポートし、関数型プログラミングおよび宣言的イテレーション(><impérative)、ような`map`, reduce et forEach。

/**
 * Collections et Programmation Déclarative en Google Apps Script
 */
function exempleCollectionsFonctionnelleGAS() {
    // Votre code ici
    // Exemple de tableau (collection)
    var nombres = [1, 2, 3, 4, 5];

    // Utilisation de forEach
    nombres.forEach(function (nombre) {
        Logger.log(nombre);
    });

    // Utilisation de map
    var carresNombres = nombres.map(function (nombre) {
        return nombre * nombre;
    });
    Logger.log(carresNombres);

    // Utilisation de reduce
    var somme = nombres.reduce(function (acc, nombre) {
        return acc + nombre;
    }, 0);
    Logger.log(somme);
}

結論

このメモは、具体的なコード例を使ってGoogle Apps Scriptの基本概念を説明しました。これらの知識を使って、日常のタスクを自動化し、ドキュメントをカスタマイズし、Google Apps Scriptの機能をフルに活用してください。

関連記事