Google Apps Script (GAS) でコードを書く時、あなたは1つのファイルに全てのコードを詰め込んでいませんか?
GASでは、複数の.gsファイルを連携させて、より効率的に開発を進めることができます。
.gsファイル: 並列処理の鍵!
GASのプロジェクトでは、複数の.gsファイルをまるで別々のプログラムのように独立して動作させることができます。
例えば、こんな風に役割を分担してみましょう。
- data.gs: スプレッドシートからデータを取得する専門家
- process.gs: 取得したデータを加工する職人
- send_email.gs: 加工されたデータを元にメールを送信するメッセンジャー
それぞれの.gsファイルは、他のファイル内の関数を利用することも可能です。 send_email.gs のメッセンジャーは、 data.gs の専門家からデータを受け取り、 process.gs の職人に加工を依頼する、といった連携が可能です。
サンプルコードで見てみよう!
data.gs – データ取得の専門家
// スプレッドシートからデータを取得する関数
function getSpreadsheetData() {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spreadsheet.getSheetByName('シート名'); // シート名を変更
const data = sheet.getDataRange().getValues();
return data;
}
process.gs – データ加工の職人
// データを加工する関数
function processData(data) {
// ここにデータ加工の処理を記述
// 例: 各行のデータから必要な情報だけを抽出する
const processedData = data.map(row => {
return {
name: row[0], // 名前
email: row[1] // メールアドレス
};
});
return processedData;
}
send_email.gs – メール送信のメッセンジャー
// メールを送信する関数
function sendEmail() {
const data = getSpreadsheetData(); // data.gs の関数を利用
const processedData = processData(data); // process.gs の関数を利用
for (const row of processedData) {
MailApp.sendEmail({
to: row.email,
subject: 'お知らせ',
body: `こんにちは ${row.name} さん\n\n本文`,
});
}
}
メリットたくさん! 並列処理の利点
.gsファイルを分割して並列処理を行うことで、多くのメリットが生まれます。
- コードが見やすく、管理も楽々!
機能ごとにファイルを分けることで、コードの可読性が向上し、バグの発見や修正も容易になります。 - 再利用しやすい!
独立した機能を持つ.gsファイルは、他のプロジェクトでも再利用しやすいため、開発効率が向上します。 - チーム開発をスムーズに!
ファイルごとに担当を分けることで、複数人で同時に開発を進めることが可能になります。
注意点: グローバル変数の取り扱いにはご注意を!
便利な.gsファイルですが、注意点が1つ。それはグローバル変数の扱いです。 グローバル変数は全ての.gsファイルで共有されるため、意図せず値を変更してしまう可能性があります。
グローバル変数の使用は最小限に抑え、関数に引数として渡すなど、安全な方法を心がけましょう。
GASの.gsファイルを効果的に活用して、スマートな開発を実現しましょう!