3DCG屋さんの活動記録

PROFILE ★★こんな人です

映像制作会社でクリエイティブの修行中。日ごろはMaya&AEを中心にいろんなCGソフトを触りながら、TD寄りの作業が好きで、インタラクティブな体験型空間演出をやりたいと模索中。面白いこと新しいこと大好きな『素直』でいつづける

2021年8月20日金曜日

GoogleSpreadSheetのお勉強 シートの複製やシートのURL一括取得


お勉強備忘録


①シートの複製

//シート複製

function dupSheetCustom(sourceSheetName,newName){

  //開いているスプレッドシートを選択

  var ss = SpreadsheetApp.getActiveSpreadsheet();

  //指定したシートをアクティブ化

  sourceSheet = ss.getSheetByName(sourceSheetName)

  ss.setActiveSheet(sourceSheet)

  //アクティブなシートを複製してリネーム

  ss.duplicateActiveSheet().setName(newName);

  //複製したシートを選択

  var sheet = SpreadsheetApp.getActiveSheet(); 

  //セルに値に入力

  sheet.getRange(2,1).setValue(newName) ;

  strformula = "=sheetname";

  Utilities.sleep(100);

}


②シートの削除

//シート削除

function delSheetCustom(sheetname){

  // 現在アクティブなスプレッドシートを取得

  var ss = SpreadsheetApp.getActive();

  // そのスプレッドシートにある シート名:テスト用シート のシートを取得 

  var sheet = ss.getSheetByName(sheetname);

  // そのシートを削除

  ss.deleteSheet(sheet);

}


③シートのURL取得と、セルの値参照式の作成

//シートのリンク取得

function genSheetUrl(sheetname){

  var ss = SpreadsheetApp.getActiveSpreadsheet();

  var ss_name = ss.getName(); //開いているスプレッドシート名を取得

  var sh_name = sheetname; //シート名

  var ss_url = ss.getUrl(); //スプレッドシートのURLを取得

  var sh_id = ss.getSheetByName(sheetname).getSheetId(); //指定したシートのIDを取得

  var sh_url = ss_url + "#gid=" + sh_id; //シートのURLを指定するために、スプレッドシートのURLとシートIDを"#gid="でくっつけます。

  var urlSet = [sheetname , sh_url]; //シート名、シートURL のペアを作る

  return urlSet;

}


◆①~③のバッチ化


④ソースシート名と、複製後のシート名(複数)を指定して、複製の一括処理


⑤シート名(複数)を指定して、削除の一括処理


⑥シート名(複数)を指定して、URL取得とセルの値参照式作成して、指定したシートに記録


//シートのリンク一括取得

function genSheetUrlBatch(){

 var nameList = ["mySheet1", "mySheet2", "mySheet3"];

 urlSheetName = "_urlList"; 

 //繰り返し処理

 var urlSet = [];

 for(var i=0; i<nameList.length; i++){

    urlSet = genSheetUrl(nameList[i]);

    latestFunc = "=IMPORTRANGE("+"\""+urlSet[1]+"\",\""+urlSet[0]+"!$B$1:$C$1\")" ; 

    SpreadsheetApp.getActive().getSheetByName(urlSheetName).getRange(i+2,1).setValue(urlSet[0]); //シート名を

    SpreadsheetApp.getActive().getSheetByName(urlSheetName).getRange(i+2,2).setValue(urlSet[1]); //URLを記入

    SpreadsheetApp.getActive().getSheetByName(urlSheetName).getRange(i+2,3).setValue(latestFunc); //最新バージョンを取得する関数


    SpreadsheetApp.getActive().getSheetByName(urlSheetName).getRange(1,1).setValue("Sheet Name");//一行目情報

    SpreadsheetApp.getActive().getSheetByName(urlSheetName).getRange(1,2).setValue("Sheet URL"); 

    SpreadsheetApp.getActive().getSheetByName(urlSheetName).getRange(1,3).setValue("Latest Info"); 

    

 }

}