ディクショナリ作成部品
/** * 指定されたスプレッドシートのシートから設定データを読み込む * * @function loadConfig * @param {string} sheetName - 設定データが格納されているシート名(デフォルト: '設定') * @param {string} range - データを取得するセル範囲(デフォルト: 'A:B') * @returns {Object} 設定データのオブジェクト(キー:設定項目名、値:設定値) * @description 指定されたシートとセル範囲から設定データを読み取る。 * 範囲の1列目に設定項目名、2列目に設定値が格納されている前提 * @example * // デフォルトの「設定」シートのA:B列から設定を読み込む * const config = loadConfig(); * console.log(config['設定項目名']); * * @example * // 「マスタ」シートのC1:D100範囲から設定を読み込む * const config = loadConfig('マスタ', 'C1:D100'); * console.log(config['設定項目名']); */ function loadConfig(sheetName = '設定', range = 'A:B') { // 設定データを格納するオブジェクトを初期化 const config = {}; // アクティブなスプレッドシートから指定されたシートを取得 const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName); // 指定された範囲のすべての値を取得 const values = sheet.getRange(range).getValues(); // 各行をループして設定データをオブジェクトに格納 for (let i = 0; i < values.length; i++) { const key = values[i][0]; // 範囲の1列目から設定項目名を取得 const value = values[i][1]; // 範囲の2列目から設定値を取得 // キーが空でない場合のみオブジェクトに追加 if (key !== '') { config[key] = value; } } // 設定オブジェクトを返す return config; }
キーをもとにした値の取得方法
/** * 設定オブジェクトから指定されたキーの値を取得する * * @function getValue * @param {string} key - 取得したい設定項目名 * @param {Object} config - loadConfig() で取得した設定オブジェクト * @returns {*} 設定値(見つからない場合やエラーの場合は null) * @description 設定オブジェクトから指定されたキーの値を安全に取得する * @example * // 設定を読み込んでから値を取得 * const config = loadConfig(); * const apiKey = getValue('APIキー', config); * if (apiKey) { * console.log(`API Key: ${apiKey}`); * } * * @example * // 存在しないキーの場合 * const config = loadConfig(); * const unknownValue = getValue('存在しないキー', config); * console.log(unknownValue); // null */ function getValue(key, config) { try { // configオブジェクトが null/undefined でないかチェック if (!config) { console.log(`設定オブジェクトが無効です`); return null; } // 指定されたキーの値を返す(存在しない場合は null) return config[key] || null; } catch (e) { console.log(`設定取得エラー: ${key} - ${e.message}`); return null; } }
ディクショナリをデバッグ
/** * 設定オブジェクトの全項目をログに出力する * デバッグやトラブルシューティング時に設定内容を確認するために使用 * @param {Object} config - 設定オブジェクト(キー:値のペア) */ function printAllConfig(config) { // 設定オブジェクトの全キーを順次処理 for (let key in config) { // 各設定項目をキー => 値の形式でログ出力 Logger.log(`${key} => ${config[key]}`); } }
呼び出し例
function testDic(){ const config_Dic = loadConfig() //Logger.log(config_Dic["最終行取得列"]); //Logger.log(config_Dic["メールアドレス"]); //Logger.log(config_Dic["シート名"]); printAllConfig(config_Dic) console.log('完了') }