スプレッドシートの全てのシートのデータを、1つのシートに集約するGoogle Apps Scriptです。各シートで列が揃っていないと使いにくいですが、思いつきで作ってみました。
特にありません。今お使いのスプレッドシートに組み込めます。
サンプルとして、A1からE10にデータが入ったシートを6シート作りました。
上のメニューにある「スクリプト実行」から「全てのシートの値を1シートにまとめる」を実行します。
「集約シート」が生成され、データがどんどん追記されていきます。見ていてちょっと楽しいかも。
もともとどのシートに存在したデータなのかわかるように、A列にシート名が追加されます。
/**
* このスクリプトの説明、使い方はこちら。
* https://myfunc.jp/items/00070/index.html
*/
function onOpen() {
// スプレッドシートを開いたときに実行される関数
// UIの取得
const ui = SpreadsheetApp.getUi()
// メニューの表示名
const menu = ui.createMenu('スクリプト実行');
// メニューに追加するボタン
menu.addItem('全てのシートの値を1シートにまとめる', 'put_together_all_data');
// メニューを画面に追加する
menu.addToUi();
}
function put_together_all_data() {
// スプレッドシートを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
// データを集約するための新しいシートを作る
const new_sheet = ss.insertSheet();
// 作ったシートの名前を変更する
new_sheet.setName('集約シート');
// 先頭(左端)にシートを移動するためにアクティブなシートにする
new_sheet.activate();
// シートを先頭に移動する
ss.moveActiveSheet(1);
// 既存のシートを全て取得する
const sheets = ss.getSheets();
// 1シートずつ処理していく。左端は集約用のシートなので飛ばす(1スタート)。
for (let i = 1; i < sheets.length; i++) {
// シート名を取得する(どのシートのデータがわかるようにするため、シート名をA列に追記する)
let sheet_name = sheets[i].getName();
// 既存のシートに存在するデータを全て取得する
let values = sheets[i].getRange(1, 1, sheets[i].getLastRow(), sheets[i].getLastColumn()).getValues();
// 取得した既存データのA列にシート名を追加する
for (let j = 0; j < values.length; j++) {
values[j].unshift(sheet_name);
}
// 集約シートに書き込むため、既存データに応じたrangeオブジェクトを取得する
let range = new_sheet.getRange(new_sheet.getLastRow() + 1, 1, values.length, values[0].length);
// 集約シートに書き込みを実行する
range.setValues(values);
}
}
検索キーワードを全シートから探して、ヒットしたセル番地をまとめて表示するGoogle Apps Scriptです。標準の検索機能ではヒットしたセルが1個ずつ分かりますが、まとめて知りたくなったので作成しました。
すべてのシートに条件付き書式を適用してくれるGoogle Apps Scriptです。条件付き書式は便利ですが手動で設定するのは面倒なんですよね。
すべてのシートのすべての条件付き書式を削除するGoogle Apps Scriptです。条件付き書式はシート単位で操作する必要があり、面倒なので作成しました。
いま開いているシート以外のすべてのシートを非表示にするGoogle Apps Scriptです。あまり見られたくない作業用シートがたくさんあるときにどうぞ。
全てのシートの行固定、列固定を解除するGoogle Apps Scriptです。ニーズはあんまりなさそうですが、思いつきで作ってみました。
指定したフォルダにあるスプレッドシートをすべて連結するGoogle Apps Scriptです。生徒・受講者の課題をチェックするときに1ファイルずつ開くのは面倒で、1つのスプレッドシート(ブック)にまとめたくなったので作りました。
スプレッドシートの全てのシートを「保護」するGoogle Apps Scriptです。一時的にすべてのシートの更新を止めたい時などにどうぞ。
スプレッドシートに存在する全シートの目次(リンク付き)を生成するGoogle Apps Scriptです。シートが増えすぎて移動が大変なときにどうぞ。
シートの行もしくは列を固定するGoogle Apps Scriptです。ブック内のすべてのシートに対して動作します。