1つのファイルの中にある複数シートをそれぞれのファイルに転記、
さらに、転記したファイルのシート名を転記した日に変更するところまでは
出来たのですが、例えば1つのファイルの中にある、あるシートが無い場合、転記する時はスキップさせる方法を教えてください
<例>
Wファイルの中にAシート、Bシート、Cシート Dシートが入っている
⇓
AシートをOフォルダにあるAファイルに転記し、そのシート名を転記日に変更
BシートをOフォルダにあるBファイルに転記し、そのシート名を転記日に変更
CシートをOフォルダにあるCファイルに転記し、そのシート名を転記日に変更
DシートをOフォルダにあるDファイルに転記し、そのシート名を転記日に変更
例えば・・
Wファイルの中にAシート、Bシート、Dシートが入っている(Cシートは無い)
⇓
AシートをOフォルダにあるAファイルに転記し、そのシート名を転記日に変更
BシートをOフォルダにあるBファイルに転記し、そのシート名を転記日に変更
Cシートは存在していないためスキップ
DシートをOフォルダにあるDファイルに転記し、そのシート名を転記日に変更
■ やったこと
1ファイルの中でシート一覧を取得し(関数:PutLinks)、そのシートだけで処理する構築を作成してみたのですが、
スキップ方法が分かりません。どなたかご教示ください。
============
◎ シート一覧取得
function PutLinks(){
// スプレッドシート内の全シートとスプレッドシートのID
var sheet = SpreadsheetApp.openById('1QaIr8E1s5Yp6LcX8DejCGGkcoIcKZxXqE2Pyyw6WreI').getSheetByName("一覧");
var sheets = SpreadsheetApp.getActive().getSheets();
var ssId = SpreadsheetApp.getActive().getId();
// ハイパーリンク文字列の配列
var linkList = [[]];
for(var i=0; i<sheets.length; i++) {
// シートのIDと名前
var sheetId = sheets[i].getSheetId();
var sheetName = sheets[i].getSheetName();
// シートのURLからハイパーリンク文字列を組み立て var url = "https://docs.google.com/spreadsheets/d/" + ssId + "/edit#gid=" + sheetId; var link = [ '=HYPERLINK("' + url + '","' + "リンク" + '")' ]; // ハイパーリンク文字列を配列に格納 linkList[i] = link; // ハイパーリンク文字列を入れる sheet.getRange(i + 2, 1).setValue(sheetName); sheet.getRange(i + 2, 2).setValue(link);
}
}
============
◎ コピー作業
// 1つのスプレットシートを各シートにセル単位で貼り付け
function SheetCopySample1() {
//Aファイル
var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var objDestSpreadsheet = SpreadsheetApp.openById("1Qp3VevQQoLgT_nk9dn_MaZlRSb7bG7WGte5dAwNFO40");
var objSheet = objSpreadsheet.getSheetByName("Aシート");
//シートをコピーしてシート名を今日の日付に変更
newSheet = objSheet.copyTo(objDestSpreadsheet).setName(Utilities.formatDate(new Date(), "Asia/Tokyo", "MM-dd"));;
//作成シートにカーソルをフォーカス
objDestSpreadsheet.setActiveSheet(newSheet);
//カーソルフォーカスされた作成シートを左から2番目に移動
objDestSpreadsheet.moveActiveSheet(2);
//Bファイル
var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var objDestSpreadsheet = SpreadsheetApp.openById("1CX2RfNIDhLCgt4VUNmdwHhlPcZ2g8HYcMgSudNrQUUg");
var objSheet = objSpreadsheet.getSheetByName("Bシート");
//シートをコピーしてシート名を今日の日付に変更
newSheet = objSheet.copyTo(objDestSpreadsheet).setName(Utilities.formatDate(new Date(), "Asia/Tokyo", "MM-dd"));;
//作成シートにカーソルをフォーカス
objDestSpreadsheet.setActiveSheet(newSheet);
//カーソルフォーカスされた作成シートを左から2番目に移動
objDestSpreadsheet.moveActiveSheet(2);
//Cファイル
var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var objDestSpreadsheet = SpreadsheetApp.openById("d/1xNr52XjhSRgQSG1-EJH_LqnN-Gd81N6iLiED1OLNDIw");
var objSheet = objSpreadsheet.getSheetByName("Cシート");
//シートをコピーしてシート名を今日の日付に変更
newSheet = objSheet.copyTo(objDestSpreadsheet).setName(Utilities.formatDate(new Date(), "Asia/Tokyo", "MM-dd"));;
//作成シートにカーソルをフォーカス
objDestSpreadsheet.setActiveSheet(newSheet);
//カーソルフォーカスされた作成シートを左から2番目に移動
objDestSpreadsheet.moveActiveSheet(2);
//Dファイル
var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var objDestSpreadsheet = SpreadsheetApp.openById("1GefKKvK29yBCbBuBPU9WfYsTb8rm_do0l9QL2qpzzPo");
var objSheet = objSpreadsheet.getSheetByName("Dシート");
//シートをコピーしてシート名を今日の日付に変更
newSheet = objSheet.copyTo(objDestSpreadsheet).setName(Utilities.formatDate(new Date(), "Asia/Tokyo", "MM-dd"));;
//作成シートにカーソルをフォーカス
objDestSpreadsheet.setActiveSheet(newSheet);
//カーソルフォーカスされた作成シートを左から2番目に移動
objDestSpreadsheet.moveActiveSheet(2);
}
============
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
ソースコード
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/30 00:26