3DCG屋さんの活動記録

PROFILE ★★こんな人です

3DCGを活用した映像や没入体験コンテンツの制作をしています。テクノロジーの社会実装に興味があり。テクニカルディレクター。面白いこと新しいことにワクワクする気持ちに『素直』でいつづける。

ラベル GAS の投稿を表示しています。 すべての投稿を表示
ラベル GAS の投稿を表示しています。 すべての投稿を表示

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"); 

    

 }

}


2020年3月17日火曜日

SlackApp自作  Mac⇔Windowsのパス変換App作成



GoogleCloudPlatformのCloudFunctionが月200万回まで無料らしい。
けど、200万回って会社で使ったら、決して多くない。。
ということで安心して無料で使える方法を探す!

社内のすっごい先輩に相談・・・30分後、
GAS使えばいいんじゃね?ってなる。

先輩すごい!!!神!!!!
GASで完全無料なSlackAppを作る


やってみた。

できた!!


ただ、Slackインストール後に実行したら

http_client_error

って出てエラーが出た。使えなかった。


で、以下の設定変更。

したら解決した。

なんで??






ちなみに、全てGASで完結?する方法もあるみたい。
それには、GOogleScriptのライブラリにSlackAPIを追加。
今回はなくても大丈夫だど。
翻訳SlackAPpすごいなー。




あとは、MacとWinのパスを自動認識して変換する、のを
GOogleScriptで実装するだけ。


Javascriptでいろいろやればなるでしょ!


if文とか、正規表現使った置換とか!




2019年6月6日木曜日

Googleスプレッドシートに画像を一括で挿入(IMAGE関数)


ほぼこちらのスクリプトです!笑
https://www.katsushikatech.net/entry/create-file-list-with-google-apps-script


ありがとうございます!


そして、IMAGE関数に貼り付けるのはファイルIDなので、
URLではなくIDを取得する内容に変更します。

用参考
https://developers.google.com/apps-script/reference/drive/file


list.push([file.getName(), file.getUrl()]);//名前とURLを表示します

変更(ID取得)
list.push([file.getName(), file.getId()]);//名前とIDを表示します★

さらに変更(IMAGE関数に)
list.push([file.getName(), '=IMAGE("http://drive.google.com/uc?
export=view&id='+file.getId()+'")']);//名前とIMAGE関数式を表示します★


以上。

2019年3月28日木曜日