実現したいこと
スプレッドシート上で、指定した範囲のみを別シートにコピーする方法を教えていただきたいです。
作成したい表は、1つのシートに全部署が載っていて
部署ごとにフィルタをかけ、その部署ごとの行に合わせて範囲を指定してシートのコピー作成
そして、PDF化したいと考えています。
(全部署の業務担当者が、このシートを閲覧できるようにしているので
普通のフィルタをかけてしまうと他の人もそのフィルタに引っ張られてしまうため、
フィルタ表示は個別のフィルタになると思いますが・・。)
部署ごとの範囲を指定してPDF化をしたかったのですが使用上ムリなようです。
現状
下記のコードで、シートのコピーは可能でした。
しかし、範囲が指定されていないので全てがそのままコピーされている状態です。
該当のソースコード
gs
1 2function shthukusei() { 3 //スプレッドシートAppを取得 4 var ss = SpreadsheetApp.getActiveSpreadsheet(); 5 // 現在開いているスプレッドシートのIDを取得 6 var ssid = ss.getId(); 7 // 現在開いているスプレッドシートのシートIDを取得 8 var sheetid = ss.getActiveSheet().getSheetId(); 9 // getActiveSheetの後の()を忘れると、TypeError: オブジェクト function getActiveSheet() {/* */} で関数 getSheetId が見つかりません。 10 11 var range = SpreadsheetApp.getActiveSheet().getDataRange(); 12 range.activate(); 13 14 //シートを複製 15 ss.duplicateActiveSheet(); 16 17} 18 19/*複製したシートに名前を指定する*/ 20function sheethukusei2(){ 21//スプレッドシートAppを取得 22var ss = SpreadsheetApp.getActiveSpreadsheet(); 23//シートの名前を新シート100に 24var sht = ss.renameActiveSheet('新シート100'); 25//複製したシートの名前を「新シート」に 26ss.duplicateActiveSheet().setName('部署'); 27} 28 29/*ドキュメントの名前を変更して複製する*/ 30function shtrenamehukusei(){ 31//スプレッドシートAppを取得 32 var ss = SpreadsheetApp.getActiveSpreadsheet(); 33 //新シートをshtnameに定義 34 var shtname = "新シート" 35 //shtnameをshtに格納 36 var sht = ss.getSheetByName(shtname); 37 38//既に同じシート名(sht)があったら削除// 39if(!sht){ 40Browser.msgBox('シートを複製してPDF用に命名します'); 41//複製したシートの名前を変更する 42ss.duplicateActiveSheet().setName('PDF用'); 43//そうでなかったら同じシートを削除する 44}else{ 45 46Browser.msgBox('新シートがあるから削除します'); 47ss.deleteSheet(sht);//shtを削除 48return; 49} 50} 51
解決したいこと
・指定した範囲のみコピーされた新しいシートを作成したい。
あわよくば・・
(・コピーされたシート名を自分で変更できたら・・)←無理そうですが・・
よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。