【勉強する】GAS開発するよ~!!【練習問題22-26】
Excel神髄さんのサイトに掲載されているVBA練習問題をGASで解いてみました🙆♀️頭の体操になるので是非参考にしてください~!
◎動画はこちら
◎練習問題22
function sample22() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("練習22");
var rows = sheet.getLastRow()-1;
var columns = sheet.getLastColumn();
var datas = sheet.getRange(2,1,rows,columns).getValues();
var values = [];
datas.forEach(function(data,ind){
var num = data[0];
for(var i=1; i<columns; i=i+3){
var product = datas[ind][i];
var amount = datas[ind][i+1];
var price = datas[ind][i+2];
if(product.length>0){
values.push([num,product,amount,price]);
}
}
});
var lastRow = sheet.getLastRow()+2
var range = sheet.getRange(lastRow,1,values.length,4);
range.setValues(values);
sheet.getRange(1,1,1,4).copyTo(range,{formatOnly:true});
}
◎練習問題25
function sample25() {
//"VBA"を"vba"に変換
var str = "Excelマクロ(VBA)練習";
var result = str.replace("VBA","vba");
//括弧()内の文字のみ取り出す
var str = "Excelマクロ(VBA)練習";
var result = str.match(/\(.+\)/)[0].replace("(","").replace(")","");
//拡張子を取り出す
var str = "マクロ.セミナー.xls";
var result = str.match(/\.\w+/)[0].replace(".","");
//全て小文字に変換
var str = "ExcelVba";
var result = str.toLocaleLowerCase();
//日付データに変換
var str = "20130410";
var year = str.slice(0,4)
var month = str.slice(4,6)
var day = str.slice(6,8);
var date = new Date(year,month-1,day);
date = Utilities.formatDate(date,"Asia/Tokyo","yyyy/MM/dd");
//曜日を求める
var str = "2013/4/10";
var result = new Date(str).getDay();
//10日後の日付を求める
var str = "2013/4/28";
var date = new Date(str);
date.setDate(date.getDate()+10)
date = Utilities.formatDate(date,"Asia/Tokyo","yyyy/MM/dd");
//月末日を求める
var str = "2013/4/10";
var date = new Date(str);
var newDate = new Date(date.getFullYear(),date.getMonth()+1,0)
newDate = Utilities.formatDate(newDate,"Asia/Tokyo","yyyy/MM/dd");
//先頭の数値を取り出す
var str = "350ML";
var result = str.match(/\d{1,}/)[0];
//整数にする
var num = 352.5;
var result = Math.floor(num); //小数点以下切り捨て
var result = Math.ceil(num); //小数点以下切り上げ
var result = Math.round(num); //四捨五入
//小数以下1桁に四捨五入する
var num = 352.45;
var result = Math.round(num*10)/10;
//ピリオド(.)の数を数える
var str = "192.168.101.255";
var result = str.match(/\./g).length;
//前後の余分な空白を取り除く
var str = " V B A ";
var result = str.trim();
}
◎練習問題26
function sample26() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var url = ss.getUrl();
var sheets = ss.getSheets();
var values = [["シート名"]];
sheets.forEach(function(sheet){
var id = sheet.getSheetId();
var sheetUrl = url + "#gid=" + id;
var name = sheet.getName();
var formula = `=HYPERLINK("${sheetUrl}","${name}")`;
values.push([formula]);
});
var newSheet = ss.insertSheet("シート一覧",0);
var range = newSheet.getRange(1,1,values.length,1);
range.setValues(values);
range.setBorder(true,true,true,true,true,true,"#000000",SpreadsheetApp.BorderStyle.SOLID);
range.setHorizontalAlignment("center");
var columnRange = newSheet.getRange(1,1);
columnRange.setBackground("#4a86e8");
columnRange.setFontColor("#ffffff");
newSheet.setHiddenGridlines(true);
}
GASの基礎学習にはUdemyがおすすめです!(徹底解説してます!)
この記事が気に入ったらサポートをしてみませんか?