スプレッドシートコピー
Apps Scriptを起動
実行
権限を確認
アカウントを選ぶ
詳細
rakuten-pref-musen(安全ではないページ)に移動
許可
トリガー
画面の通りトリガーを追加
GAS
function fetch_musen() { // シート名 const name = "data"; // 都道府県名 const ken = "岡山県"; // ※IT=X Xの部分を変更 // X は 所轄総合通信局の項目値 下記参照 // https://www.tele.soumu.go.jp/resource/j/musen/webapi/mw_code.pdf const url = "https://www.tele.soumu.go.jp/musen/list?ST=1&DA=1&SC=1&DC=1&OF=2&OW=FB_H&IT=F&NA=%8Ay%93V%83%82%83o%83C%83%8B"; let response = UrlFetchApp.fetch(url).getContentText(); let json = JSON.parse(response); let update = json["musenInformation"]["lastUpdateDate"]; let note = json["musen"][0]["detailInfo"]["note"]; let data = note.split("\\n\\n").slice(1).join(" ").replace(/\\n/g, " ").split(/\s+/); // console.log(data); let ary = data.map(extract); let result = ary.filter(value => value[0] == ken); // console.log(ary); // シート指定 let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(name); sheet.getRange(1, 3).setValue(update); // 範囲指定 let startRow = 2; let startCol = 1; let numOfRow = result.length; let numOfCol = result[0].length; let range = sheet.getRange(startRow, startCol, numOfRow, numOfCol); range.setValues(result); } let pref = "" function extract(s) { m = s.match(/^(.+)\(([0-9,]+)\)/); // console.log(m) if (m !== null) { if (/[都道府県]$/.test(m[1])) { pref = m[1]; }; let result = m.slice(1, 3); result.unshift(pref); return result; } } function cellCopy() { let copySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("musen"); // ※コピー範囲指定(変更) let copyRange = copySheet.getRange(1, 3, 32, 1); let pasteRange = copySheet.getRange(1, 4, 32, 1); copyRange.copyTo(pasteRange, { contentsOnly: true }); values = pasteRange.getValues().flat() let addSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("list"); addSheet.appendRow(values); }