各種目次 - ray88’s diary
GAS 目次 - ray88’s diary
GAS ライブラリの作成方法 - ray88’s diary
ライブラリ用スクリプト(Utils.gs)
/** * 指定シートの指定範囲から2次元配列でデータを取得する * @param {string} sheetName - シート名 * @param {string} rangeA1 - A1形式の範囲(例: "A1:C10") * @return {Array} データの2次元配列 */ function getSheetData(sheetName, rangeA1) { const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName); return sheet.getRange(rangeA1).getValues(); } /** * 指定したログ内容をApps Scriptログとスプレッドシートに記録する * @param {string} logSheetName - 記録用シート名 * @param {string} message - ログに記録するメッセージ */ function logMessage(logSheetName, message) { const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(logSheetName); sheet.appendRow([new Date(), message]); Logger.log(`[LOG] ${message}`); } /** * 日付を指定のフォーマットで文字列に変換する(例: YYYY/MM/DD HH:mm) * @param {Date} date - 日付オブジェクト * @param {string} format - 書式(例: "yyyy/MM/dd HH:mm") * @return {string} フォーマット済み文字列 */ function formatDate(date, format) { return Utilities.formatDate(date, Session.getScriptTimeZone(), format); } /** * 配列の重複を除去して返す(例: ["A", "B", "A"] → ["A", "B"]) * @param {Array} arr - 配列 * @return {Array} 重複除去済みの配列 */ function uniqueArray(arr) { return [...new Set(arr)]; }
呼び出し用スクリプト(TestLibrary.gs)
function testLibrary() { const data = Utils.getSheetData("データ", "A2:C10"); Utils.logMessage("ログ", "データ取得成功!"); const nowStr = Utils.formatDate(new Date(), "yyyy/MM/dd HH:mm"); Logger.log(nowStr); const uniqueList = Utils.uniqueArray(["A", "B", "A", "C"]); Logger.log(uniqueList); // ["A", "B", "C"] }