技術ノート ウェブ スクリプト エディタで Google Apps を強化する方法

スクリプト エディタで Google Apps を強化する方法

スクリプト エディタで Google Apps を強化する方法

Google Apps を使用している場合、その機能を最大限に活用していない可能性があります。 Google Apps Script を使用すると、カスタム メニューやダイアログを追加したり、カスタム関数やマクロを作成したり、Google ドキュメント、スプレッドシート、スライドを拡張するアドオンを構築したりできます。

Google Apps Scriptとは何ですか?

スクリプト エディタで Google Apps を強化する方法

Google Apps Script は、カスタムの軽量 Web アプリケーションを作成するためのクラウドベースの開発プラットフォームです。 Google 製品と簡単に統合できるスケーラブルなアプリケーションをブラウザ内で直接構築できます。

スクリプト エディタで Google Apps を強化する方法

Apps Script は JavaScript 言語を使用し、使い慣れたウェブ開発と Google 製品を 1 か所にまとめて、ビジネスや組織に合わせてアプリをカスタマイズしたり、日常的なタスクを自動化したりするのに最適なツールとします。

スクリプト エディタで Google Apps を強化する方法

Google Apps Script では 2 種類のスクリプトを作成できます。

  • スタンドアロン: これらのスクリプトは、Google ドキュメント、スプレッドシート、スライドなどのサービスにバインドされません。これらは、マクロのような、システム全体の機能を実行できます。これらを使用するにはコードをコピーして貼り付ける必要があるため、幅広いユーザーと共有するのには理想的ではありません。例としては、ドライブ内で特定の名前のファイルを検索したり、ドライブ内の共有ファイルや共有フォルダに誰がアクセスできるかを確認したりできます。
  • バインド: これらは、Google ドキュメント、スプレッドシート、フォーム、またはスライド ファイルにリンクされています。バインドされたスクリプトはファイルの機能を拡張し、その特定のファイル内でのみアクションを実行します。例としては、シート内の特定のセルが変更されるたびに通知を電子メールで送信するサービスやスクリプトに、カスタム メニュー、ダイアログ ボックス、サイドバーを追加することが含まれます。

JavaScript についてあまり詳しくない場合、またはこれまで聞いたことがない場合でも、怖がらずに独自のスクリプトを開発してください。 Apps Script には、自分でテストできる 豊富なドキュメントと例が 用意されているため、使い始めるのは非常に簡単です。以下に、それらがどのように機能するかを理解するのに役立つ簡単な例をいくつか示します。

スクリプト エディタで Google Apps を強化する方法

スタンドアロン スクリプトを作成する方法

それらが何であるかがわかったので、最初のスタンドアロン スクリプトを作成してみましょう。開始に役立つように Google のコード サンプルを使用します。また、GoogleScript や JavaScript に慣れていない場合は、コード行の説明を提供します。

Google Apps Script に進みます。左上隅にあるハンバーガー アイコンをクリックし、[新しいスクリプト] をクリックします。

新しい無題のプロジェクトが開き、内部に空の関数が含まれていますが、Google のサンプル コードを使用しているため、ファイル内のすべてのテキストを削除しても問題ありません。

注: このスクリプトが機能するには、Google アカウントにサインインする必要があります。

ファイルにプリロードされているコードを削除した後、次のコードを貼り付けます。

 //関数を初期化します

関数 createADocument() {

// 「Hello, world!」という名前の新しい Google ドキュメントを作成します。

var doc = DocumentApp.create(‘Hello, world!’);

// ドキュメントの本文にアクセスし、段落を追加します。

doc.getBody().appendParagraph(‘このドキュメントは Google Apps Script で作成されました。’);

}

コードを実行する前に、スクリプトを保存する必要があります。 「ファイル」をクリックし、「保存」をクリックします。

プロジェクトの名前をスクリプトの動作を覚えやすい名前に変更し、[OK] をクリックします。

コードを実行するには、ツールバーにある再生アイコンをクリックします。

初めて [実行] をクリックした後、ポップアップ ウィンドウを介して Google アカウントにアクセスするためのいくつかの権限をスクリプトに付与する必要があります。 「権限の確認」をクリックして、アクセスする必要があるものを確認します。

これは Google 認証アプリではないため、別の警告が表示されます。基本的には、開発者 (私たち) を知らない限り、信頼できる場合にのみ続行する、ということです。 [詳細] をクリックし、[CreateNewDoc に移動] (またはこのスクリプトに付けた任意の名前) をクリックします。

スクリプトに必要な権限を確認し、[許可] をクリックします。

素晴らしい!さて、ドライブに行き、すべてがうまくいけば、「He​​llo, World!」が表示されます。ファイルがあるはずです。ダブルクリックして開きます。

ファイルを開くと、コードのテキスト行がドキュメントに追加されていることがわかります。

ドキュメントの作成時に電子メール通知を受け取りたい場合は、さらに数行のコードを追加して、Google アカウントに電子メール通知を自動的に送信できます。 doc.getBody().appendParagraph('This document was created by Google Apps Script.'); の後に次のコード行を追加します。ただし、最後の中括弧 } :

 // ドキュメントの URL を取得します。

var url = doc.getUrl();

// アクティブなユーザー、つまりあなた自身の電子メール アドレスを取得します。

var email = Session.getActiveUser().getEmail();

// 電子メールの件名として使用するドキュメントの名前を取得します。

var subject = doc.getName();

// メール本文として使用する新しい文字列を「url」変数に追加します。

var body = ‘ドキュメントへのリンク: ‘ + URL;

// ドキュメントへのリンクを記載した電子メールを自分に送信します。

GmailApp.sendEmail(電子メール、件名、本文);

「実行」アイコンをクリックします。

追加の権限を必要とする余分な行をいくつか追加したため、以前と同じプロセスを実行する必要があります。 「権限の確認」をクリックします。

[詳細設定] をクリックし、[CreateNewDoc に移動] をクリックします。

注: Google は未検証のアプリの起動について警告しているため、セキュリティ警告メールも受信します。 Google は、未検証のアプリケーションへのアクセスを許可したのがユーザーではない場合に備えてこれを行います。

スクリプトに必要な新しい権限セットを確認し、[許可] をクリックします。

ドキュメントが作成されると、Google ドライブ内のファイルへのリンクが記載されたメールが届きます。

リンクをクリックすると、Google ドライブ内にあるファイルに直接アクセスできます。

スクリプト エディタで Google Apps を強化する方法

バインドされたスクリプトを作成する方法

次の例では、既存のシートを解析して行内の重複エントリを削除する、Google スプレッドシート用のバインドされたスクリプトを作成してみましょう。

先ほどのことを覚えていると思いますが、バインドされたスクリプトは特定のファイルに対するアドオンのように機能するため、スクリプトを作成するには、少なくとも 1 つの重複データ ポイントを含む既存の Google スプレッドシート スプレッドシートを開きます。

「ツール」をクリックし、「スクリプトエディタ」をクリックします。

Google Apps Script が新しいタブで開き、空のスクリプトが表示されます。ただし、今回はスクリプトが開かれるシートにバインドされます。

前と同様に、空の関数を削除し、次のコードを貼り付けます。

 //現在のシートから重複した行を削除します。

関数removeDuplicates() {

// 現在アクティブなスプレッドシートを取得します

varsheet = SpreadsheetApp.getActiveSheet();

// スプレッドシートの行からすべての値を取得します

var data =sheet.getDataRange().getValues();

//非重複の配列を作成する

var newData = [];

// 行のセルを反復処理します

for (データ内の変数 i) {

var 行 = データ[i];

var 重複 = false;

for (newData の var j) {

if (row.join() == newData[j].join()) {

重複 = true;

}

}

// 重複していない場合は newData 配列に入れる

if (!duplicate) {

newData.push(行);

}

}

//古いシートを削除し、新しいData配列を挿入します

シート.clearContents();

sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);

}

注: スクリプトで重複を削除するには、行内のすべてのセルが一致する必要があります。

スクリプトを保存して名前を変更し、「実行」アイコンをクリックします。

最後に作成したスクリプトで説明したように、スクリプトに必要な権限を確認し、スプレッドシートへのアクセスを許可する必要があります。 「権限の確認」をクリックして、このスクリプトが必要とするアクセスを確認します。

プロンプトを受け入れ、「許可」をクリックしてスクリプトを承認します。

実行が終了したらシートに戻ると、まるで魔法のように、重複したエントリがすべてファイルから消えます。

残念ながら、上記の例のように、データがテーブル内にある場合、このスクリプトはテーブル内のエントリ数に合わせてテーブルのサイズを変更しません。


これら 2 つは Apps Script の使用方法を示す非常に簡単な例ですが、オプションはほぼ無限にあり、すべてはこれらのリソースを使って何を想像できるかによって決まります。ただし、それまでの間、 GSuite Devs Github ページ または Digital Inference にアクセスして、独自のサービス内にデプロイできるサンプル スクリプトのスタックを確認して、Apps Script が実際に何ができるかをよりよく理解してください。

「スクリプト エディタで Google Apps を強化する方法」に関するベスト動画選定!

【完全攻略】ボタンからスクリプト実行する方法【Google Apps Script(GAS)】
【Google Apps Script(GAS)】複数ファイルのデータを1つにまとめる方法【業務効率化】