【勉強する】GAS開発するよ~!!【練習問題16-18】
Excel神髄さんのサイトに掲載されているVBA練習問題をGASで解いてみました🙆♀️頭の体操になるので是非参考にしてください~!
◎動画はこちら
◎練習問題16
function sample16() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("練習16_マスタ");
var rows = sheet.getLastRow()-1;
var datas = sheet.getRange(2,1,rows,3).getValues();
var products = {};
var prices = {};
for(var i=0; i<datas.length; i++){
var key = datas[i][0];
var value = datas[i][1];
products[key] = value;
}
for(var i=0; i<datas.length; i++){
var key = datas[i][0];
var value = datas[i][2];
prices[key] = value;
}
var outputSheet = ss.getSheetByName("練習16");
var outputRows = outputSheet.getLastRow()-2;
var outputColumns = outputSheet.getLastColumn();
var outputDatas = outputSheet.getRange(2,1,outputRows,outputColumns).getValues();
var sum = 0;
var values = [];
outputDatas.forEach(function(data){
var num = data[1];
var product = products[num];
var price = prices[num];
var count = data[4];
if(product == null){
var total = 0;
} else {
var total = price * count;
}
sum = sum + total;
values.push([product,price,count,total]);
});
outputSheet.getRange(2,3,values.length,4).setValues(values);
outputSheet.getRange(12,6).setValue(sum);
}
◎練習問題17
function sample17() {
var folder = DriveApp.getFolderById("★フォルダIDを記載");
var files = folder.getFiles();
var values = [];
while(files.hasNext()){
var file = files.next();
var name = file.getName();
var id = file.getId();
var ss = SpreadsheetApp.openById(id);
var sheets = ss.getSheets();
sheets.forEach(function(sheet,ind){
var sheetName = sheet.getName();
if(ind == 0){
values.push([name,sheetName]);
} else {
values.push(["",sheetName]);
}
});
}
var outputSS = SpreadsheetApp.getActiveSpreadsheet();
var outputSheet = outputSS.getSheetByName("練習17");
var range = outputSheet.getRange(2,1,values.length,2);
range.setValues(values);
range.setBorder(true,true,true,true,true,true,"#000000",SpreadsheetApp.BorderStyle.SOLID);
}
◎練習問題18
function sample18() {
var folder = DriveApp.getFolderById("★フォルダIDを記載");
var files = folder.getFiles();
var values = [];
var outputSS = SpreadsheetApp.getActiveSpreadsheet();
var outputSheet = outputSS.getSheetByName("練習18");
while(files.hasNext()){
var file = files.next();
var name = file.getName();
var id = file.getId();
var ss = SpreadsheetApp.openById(id);
var sheets = ss.getSheets();
sheets.forEach(function(sheet,ind){
var sheetName = sheet.getName();
if(ind == 0){
values.push([name,sheetName]);
} else {
values[0].push(sheetName)
}
});
var lastRow = outputSheet.getLastRow()+1;
var range = outputSheet.getRange(lastRow,1,values.length,values[0].length);
range.setValues(values);
range.setBorder(true,true,true,true,true,true,"#000000",SpreadsheetApp.BorderStyle.SOLID)
values = [];
}
var rows = outputSheet.getLastRow()-1;
var columns = outputSheet.getLastColumn();
outputSheet.getRange(2,1,rows,columns).setBorder(true,true,true,true,true,true,"#000000",SpreadsheetApp.BorderStyle.SOLID);
}
GASの基礎学習にはUdemyがおすすめです!(徹底解説してます!)
この記事が気に入ったらサポートをしてみませんか?