📚
Google Apps Scriptの基礎と使用方法
基礎知識
Google Apps Scriptの概要
- Google Apps Scriptは、Google Workspace(旧G Suite)の各種サービス(Googleドキュメント、スプレッドシート、カレンダー、Gmailなど)を操作するためのスクリプトです。
- JavaScriptに基づいており、初心者にも親しみやすい言語です。
スクリプトエディタのアクセス方法
- Googleドライブにアクセスし、任意のGoogleドキュメント、スプレッドシート、または新しいプロジェクトを開きます。
- 上部メニューの「拡張機能」 > 「Apps Script」を選択します。
スクリプトエディタの基本構造
- スクリプトエディタには、コードを記述するためのエディタ、ログ、実行履歴、トリガーなどのタブがあります。
- プロジェクトには複数のスクリプトファイル(
.gs
ファイル)とHTMLファイル(Webアプリケーション用)を含めることができます。
Google Apps Scriptリファレンス
- 詳細なリファレンスはGoogle Apps Scriptの公式ドキュメントを参照してください。このドキュメントには、各種サービスの操作方法やAPIの詳細な説明が記載されています。
基本的なスクリプトの例
1. Hello World
最も基本的なスクリプトで、ログに「Hello, World!」と表示します。
function helloWorld() {
Logger.log('Hello, World!');
}
2. Googleスプレッドシートの操作
スプレッドシートのデータを読み取る
function readSpreadsheet() {
var sheet = SpreadsheetApp.openById('YOUR_SPREADSHEET_ID').getActiveSheet();
var data = sheet.getRange('A1:B2').getValues();
Logger.log(data);
}
スプレッドシートにデータを書き込む
function writeSpreadsheet() {
var sheet = SpreadsheetApp.openById('YOUR_SPREADSHEET_ID').getActiveSheet();
sheet.getRange('A1').setValue('Hello, World!');
}
3. Googleドキュメントの操作
ドキュメントにテキストを追加する
function addTextToDocument() {
var doc = DocumentApp.openById('YOUR_DOCUMENT_ID');
var body = doc.getBody();
body.appendParagraph('Hello, World!');
}
4. Gmailの操作
メールを送信する
function sendEmail() {
var recipient = 'example@example.com';
var subject = 'Test Email';
var body = 'Hello, this is a test email!';
MailApp.sendEmail(recipient, subject, body);
}
5. トリガーの設定
時間ベースのトリガーを設定する例
function createTimeDrivenTrigger() {
ScriptApp.newTrigger('myScheduledFunction')
.timeBased()
.everyDays(1)
.atHour(9)
.create();
}
function myScheduledFunction() {
Logger.log('This function runs every day at 9 AM');
}
6. エラーハンドリング
function createTimeDrivenTrigger() {
ScriptApp.newTrigger('myScheduledFunction')
.timeBased()
.everyDays(1)
.atHour(9)
.create();
}
function myScheduledFunction() {
Logger.log('This function runs every day at 9 AM');
}
7. デバッグとログ
function debugExample() {
var value = 42;
Logger.log('The value is: ' + value);
}
8. プロパティサービスの使用例
ユーザープロパティの設定と取得
function setUserProperty() {
var userProperties = PropertiesService.getUserProperties();
userProperties.setProperty('favoriteColor', 'blue');
}
function getUserProperty() {
var userProperties = PropertiesService.getUserProperties();
var favoriteColor = userProperties.getProperty('favoriteColor');
Logger.log('Favorite color: ' + favoriteColor);
}
9. カスタム関数の定義と使用例
スプレッドシートで使用するカスタム関数
function DOUBLE(value) {
return value * 2;
}
10. メニューのカスタマイズ
カスタムメニューの追加
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('カスタムメニュー')
.addItem('スクリプトを実行', 'myFunction')
.addToUi();
}
function myFunction() {
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('A1').setValue('Hello, World!');
}
11. フォーム操作
フォームの作成
function createForm() {
var form = FormApp.create('New Form');
form.setTitle('Sample Form')
.setDescription('This is a sample form created by Google Apps Script.')
.setConfirmationMessage('Thank you for your response.');
var item = form.addMultipleChoiceItem();
item.setTitle('Do you like Google Apps Script?')
.setChoices([
item.createChoice('Yes'),
item.createChoice('No')
]);
Logger.log('Form URL: ' + form.getPublishedUrl());
}
12. Webアプリケーション
簡単なWebアプリケーション
function doGet() {
return HtmlService.createHtmlOutput('Hello, world!');
}
13. 外部APIとの連携
外部APIからデータを取得
function fetchExternalData() {
var response = UrlFetchApp.fetch('https://api.example.com/data');
var data = JSON.parse(response.getContentText());
Logger.log(data);
}
14. トリガーの管理
トリガーの一覧を取得
function listTriggers() {
var triggers = ScriptApp.getProjectTriggers();
for (var i = 0; i < triggers.length; i++) {
var trigger = triggers[i];
var handlerFunction = trigger.getHandlerFunction();
Logger.log('Trigger ' + (i + 1) + ': ' + handlerFunction);
}
if (triggers.length === 0) {
Logger.log('No triggers found.');
}
}
15. ファイル操作
ファイルの作成と削除
function createAndDeleteFile() {
var folder = DriveApp.getRootFolder();
var file = folder.createFile('Sample File', 'This is a sample file.');
Logger.log('File ID: ' + file.getId());
file.setTrashed(true);
}
まとめ
Google Apps Scriptを使用してGoogle Workspaceアプリケーションを自動化するための重要な概念と機能を説明しました。これらのサンプルコードを参考にしながら、実際にスクリプトを作成して試してみてください。まずは簡単なスクリプトから始め、徐々に複雑なスクリプトに挑戦することで、Google Apps Scriptの幅広い機能を効果的に活用できるようになります。
Discussion