Google スプレッドシートの拡張

Google Apps Script を使用すると、Google スプレッドシートを使って斬新かつ効果的な処理を行うことができます。Google Chat では Apps Script を使用してカスタム メニューを追加する ダイアログ、サイドバーを Google スプレッドシートに追加できます。また、 以下に対応するカスタム関数を記述し、 他の Google サービスとスプレッドシートを Google サービス: カレンダー、ドライブ、 Gmail。

Google スプレッドシート用に設計されたスクリプトのほとんどは、配列を操作して スプレッドシート内のセル、行、列の操作。Google Workspace の Codecademy が提供する 配列向けの優れたトレーニング モジュールをご覧ください。 (このコースは Google によって開発されたものでも、Google との関連でもありません)。

Google スプレッドシートで Apps Script を使用する方法については、 5 分間のクイックスタート ガイド マクロ、メニュー、カスタム関数

始める

Apps Script には特別な API があり、これを使用してプログラムで 編集する方法を学びましたApps Script は、Google スプレッドシートと大きく 2 つの方法でやり取りできます。スクリプトのユーザーがスプレッドシートに対する適切な権限を持っている場合、任意のスクリプトでスプレッドシートを作成または変更できます。また、スクリプトをスプレッドシートにバインドすることもできます。これにより、スクリプトでユーザー インターフェースを変更したり、スプレッドシートを開いたときに応答したりできます。バインドされたスクリプトを作成するには、 内から [拡張機能] > [Apps Script] を選択します。 Google スプレッドシート。

スプレッドシート サービスでは、Google 2 次元配列を操作する、グリッドとして表示するスプレッドシート。データを取得するには そのデータが保存されているスプレッドシートに データを含むスプレッドシートの範囲を取得し、 セルの値。Apps Script は、スプレッドシート内の構造化データを読み取り、それらの JavaScript オブジェクトを作成することで、データへのアクセスを容易にします。

データの読み取り

下の図に示すように、スプレッドシートに商品名と商品番号のリストがあるとします。

以下の例は、商品名と商品を取得して記録する方法を示しています。 あります。

function logProductInfo() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  for (var i = 0; i < data.length; i++) {
    Logger.log('Product name: ' + data[i][0]);
    Logger.log('Product number: ' + data[i][1]);
  }
}

ログを表示

ログに記録されたデータを表示するには、スクリプト エディタの上部にある 実行ログ

データの書き込み

新しい製品名や番号などのデータを スクリプトの末尾に次のコードを追加します。

function addProduct() {
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow(['Cotton Sweatshirt XL', 'css004']);
}

上記のコードは、指定された値とともにスプレッドシートの一番下に新しい行を追加します。この関数を実行すると、 表示されます。

カスタム メニューとユーザー インターフェース

Google スプレッドシートにカスタムのメニュー、ダイアログ ボックス、 追加できますメニュー作成の基本については、 メニュー ガイドをご覧ください。Google Chat の設定のカスタマイズや ダイアログ ボックスの内容については、 HTML サービスに関するガイドをご覧ください。

画像や図形描画にスクリプト関数をアタッチすることもできます。 スプレッドシートユーザーが画像をクリックするとき、 描画します。詳しくは、Google スプレッドシートの画像と図形描画をご覧ください。

カスタム インターフェースをアドオンの一部として公開する場合は、スタイルガイドに沿って、Google スプレッドシート エディタのスタイルとレイアウトと整合性を持たせてください。

Google フォームへの接続

Apps Script を使用すると、Google フォームと Google スプレッドシートを接続できます。 フォームスプレッドシート サービス。この機能 スプレッドシートのデータに基づいて Google フォームを自動的に作成できます。 Apps Script では、次のようなトリガーを使用することもできます。 onFormSubmit: ユーザーがフォームに回答した後に特定のアクションを実行します。 Google スプレッドシートを Google フォームに接続する方法については、 Google フォームの回答に関する 5 分間のクイックスタート ガイドです。

書式設定

Range クラスには、次のようなメソッドがあります。 setBackground(color) セルまたはセル範囲の形式にアクセスしたり、セルの範囲を変更したりできます。次の例は、範囲のフォント スタイルを設定する方法を示しています。

function formatMySpreadsheet() {
  // Set the font style of the cells in the range of B2:C2 to be italic.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var cell = sheet.getRange('B2:C2');
  cell.setFontStyle('italic');
}

データの検証

Apps Script では、Google スプレッドシート内の既存のデータ検証ルールにアクセスできます 新しいルールを作成できます。たとえば、次のサンプルは、 セルに 1 ~ 100 の数値のみを許可するデータ検証ルール。

function validateMySpreadsheet() {
  // Set a rule for the cell B4 to be a number between 1 and 100.
  var cell = SpreadsheetApp.getActive().getRange('B4');
  var rule = SpreadsheetApp.newDataValidation()
     .requireNumberBetween(1, 100)
     .setAllowInvalid(false)
     .setHelpText('Number must be between 1 and 100.')
     .build();
  cell.setDataValidation(rule);
}

データ検証ルールの使用について詳しくは、このモジュールの SpreadsheetApp.newDataValidation() DataValidationBuilder, および Range.setDataValidation(rule)

グラフ

Apps Script を使用すると、スプレッドシート内のデータを表すグラフをスプレッドシートに埋め込むことができます。 指定します。次の例では、埋め込み棒グラフが生成されます。 セル A1:B15 にグラフ可能なデータがあります。

function newChart() {
  // Generate a chart representing the data in the range of A1:B15.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var chart = sheet.newChart()
     .setChartType(Charts.ChartType.BAR)
     .addRange(sheet.getRange('A1:B15'))
     .setPosition(5, 5, 0, 0)
     .build();

  sheet.insertChart(chart);
}

スプレッドシートにグラフを埋め込む方法について詳しくは、 EmbeddedChart と グラフを作成できます。たとえば、 EmbeddedPieChartBuilder

Google スプレッドシートのカスタム関数

カスタム関数は、=SUM(A1:A5) などのスプレッドシートの組み込み関数に似ていますが、関数の動作を Apps Script で定義します。たとえば、カスタム スペースを作成して 関数 in2mm() はインチからミリメートルの値を変換し、 数式を変換するには、[=in2mm(A1)] または [=in2mm(10)] を 選択します。

カスタム関数の詳細については、メニューとカスタム関数の 5 分間のクイックスタートを試すか、カスタム関数のガイドをご覧ください。

マクロ

マクロを使用すると、Google スプレッドシートの UI から Apps Script コードを実行できます。 カスタム関数とは異なり、キーボード ショートカットまたは Google スプレッドシートのメニューです詳細については、次をご覧ください: Google スプレッドシートのマクロ

Google スプレッドシート向けアドオン

アドオンは、Google スプレッドシート内で実行され、Google スプレッドシートのアドオン ストアからインストールできる、特別にパッケージ化された Apps Script プロジェクトです。Google スプレッドシート用に作成したスクリプトを他のユーザーと共有する場合は、Apps Script でスクリプトをアドオンとして公開して、他のユーザーがアドオン ストアからインストールできるようにします。

トリガー

Google スプレッドシート ファイルにバインドされているスクリプト 関数のような単純なトリガーonOpen()onEdit() で、編集権限を持つユーザーが アクセス権を付与すると、スプレッドシートを開いたり編集したりできるようになります。

シンプルなトリガーと同様に、インストール可能なトリガーを使用すると、特定のイベントが発生したときに Google スプレッドシートが関数を自動的に実行します。ただし、インストール可能なトリガーは、シンプルなトリガーよりも柔軟性が高く、開く、編集、変更、フォーム送信、時間ドリブン(時計)のイベントをサポートしています。