どういうときに使う?
シート数が多い状態で手作業ですべてのシートで昇順にするをクリックしたくないときに使ってみてください。
筆者は検索エンジンでcountを取得したとき、id基準ではなく件数基準の順番で表示されてしまったのをそのままスプレッドシートに移してしまったため、この作業が発生しました。
件数が多く300シートあったため手作業が嫌になり片手間で作りました。
せっかくだから共有しておこうと思いこの記事を書きました。
ソースコードと説明(コメントアウト参照)
function sortRowsInAllSheetsAsc() {
var rng
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var all_sheet_list = spreadsheet.getSheets();
var sort_info = {
'sheet_list':{},
'sheet_name_list':[]
};
try {
// 下の記述でforを回せるように各シートの情報を配列sort_infoに格納
for (var count = 0; count < all_sheet_list.length; count++) {
var sheet_name = all_sheet_list[count].getName();
sort_info['sheet_list'][sheet_name] = all_sheet_list[count];
sort_info['sheet_name_list'].push(sheet_name);
}
for (var sheet_count = 0; sheet_count < sort_info['sheet_name_list'].length; sheet_count++) {
// 準備したシートを順次呼び出す
var sheet_name = sort_info['sheet_name_list'][sheet_count];
var active_sheet = sort_info['sheet_list'][sheet_name];
Logger.log(sheet_name)
active_sheet.activate();
//sort範囲を指定
rng = active_sheet.getRange("A:B");
//1列目(A列)を昇順になるようにrngの範囲を整順
rng.sort([{column:1,ascending:true}]);
}
// 成功したらspreadsheetの画面で報告
Browser.msgBox('正常終了。ページを更新してください。');
} catch(e) {
// エラーが発生した場合は、spreadsheetの画面でその旨を表示してから処理中断
Browser.msgBox(e.lineNumber + ':' + e);
}
}
使い方
Google App Sheetを使えるようにして(この説明は割愛します)、コピーペーストして実行していただければすぐに使えます。
A列が嫌な場合はrng.sort([{column:1,ascending:true}]);
のcolumn:1を好きな数字に変更すると他の列を基準とした昇順になります。
余談(着想の元になった記事)
記事の着想のもととなり、かつまるまる使わせてもらった内容として下記のものがあったため、こちらを紹介してこちらの記事は締めとさせていただきます。