指定したフォルダにあるスプレッドシートをすべて連結するGoogle Apps Scriptです。生徒・受講者の課題をチェックするときに1ファイルずつ開くのは面倒で、1つのスプレッドシート(ブック)にまとめたくなったので作りました。
特にありません。今お使いのスプレッドシートに組み込めます。
スプレッドシートを用意します。このスプレッドシートにフォルダ内の全てのシートが集まってきます。
現在はシート1しか存在しません。
上のメニューにある「スクリプト実行」から「指定フォルダのスプレッドシートをすべて連結する」を実行します。
結合したいファイルが保存されているGoogleドライブのURLを入力します。
シートがどんどん追加されていきます。
「シート1のコピー」のように中身がわかりづらくなってしまいますが、課題の提出であれば学生の名前をシート名にしておいてもらうなど、事前にユニークになるように案内することで回避できそうです。
/**
* このスクリプトの説明、使い方はこちら。
* https://myfunc.jp/items/00085/index.html
*/
function onOpen() {
// スプレッドシートを開いたときに実行される関数
// UIの取得
const ui = SpreadsheetApp.getUi()
// メニューの表示名
const menu = ui.createMenu('スクリプト実行');
// メニューに追加するボタン
menu.addItem('指定フォルダのスプレッドシートをすべて連結する', 'concatenate_all_sheets_in_folder');
// メニューを画面に追加する
menu.addToUi();
}
function concatenate_all_sheets_in_folder() {
// UIの取得
const ui = SpreadsheetApp.getUi()
// 開いている(アクティブな)スプレッドシートオブジェクトを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
// 結合したいファイルが入っているGoogleドライブのURLを入力してもらう
const input = ui.prompt('GoogleドライブフォルダのURLを入力してください', ui.ButtonSet.OK_CANCEL);
// キャンセルが押されたらスクリプトを終了する
if (input.getSelectedButton() == ui.Button.CANCEL) {
return;
}
// 入力されたURLを取り出す
const url = input.getResponseText();
// フォルダURLからID部分を取得する
const folder_id = url.replace(/^https:.*folders\//, '');
// フォルダ内のファイルを取得する
const files = DriveApp.getFolderById(folder_id).getFiles();
// ファイルが存在する限り、処理を繰り返す
for (let i = 0; files.hasNext(); i++) {
let file = files.next(); //ファイルを取得
// ファイルがスプレッドシートかどうか判断するために、mimetypeを取得
let mimetype = file.getMimeType();
// スプレッドシートのmimetypeは「application/vnd.google-apps.spreadsheet」
if (mimetype.match(/spreadsheet/)) {
// コピー対象のスプレッドシートを取得
let ss_copy = SpreadsheetApp.openById(file.getId());
// スプレッドシート内の全シートを取得
let sheets_copy = ss_copy.getSheets();
// シートの数だけ、今開いているスプレッドシートにコピーする
for (let j = 0; j < sheets_copy.length; j++) {
sheets_copy[j].copyTo(ss);
}
}
}
}
検索キーワードを全シートから探して、ヒットしたセル番地をまとめて表示するGoogle Apps Scriptです。標準の検索機能ではヒットしたセルが1個ずつ分かりますが、まとめて知りたくなったので作成しました。
すべてのシートに条件付き書式を適用してくれるGoogle Apps Scriptです。条件付き書式は便利ですが手動で設定するのは面倒なんですよね。
すべてのシートのすべての条件付き書式を削除するGoogle Apps Scriptです。条件付き書式はシート単位で操作する必要があり、面倒なので作成しました。
現在開いているシート以外の全てのシートを削除するGoogle Apps Scriptです。自動的にシートを大量生成したけどやり直したいときなどに。
スプレッドシートの全てのシートのデータを、1つのシートに集約するGoogle Apps Scriptです。各シートで列が揃っていないと使いにくいですが、思いつきで作ってみました。
いま開いているシート以外のすべてのシートを非表示にするGoogle Apps Scriptです。あまり見られたくない作業用シートがたくさんあるときにどうぞ。
全てのシートの行固定、列固定を解除するGoogle Apps Scriptです。ニーズはあんまりなさそうですが、思いつきで作ってみました。
スプレッドシートの全てのシートを「保護」するGoogle Apps Scriptです。一時的にすべてのシートの更新を止めたい時などにどうぞ。
指定フォルダに入っているすべてのスライドを連結するGoogle Apps Scriptです。課題などをアップロードしてもらった後、1ファイルにまとめたい時などにどうぞ。
Googleドライブ上でファイル名が重複しているものを探すGoogle Apps Scriptです。同じ名前のファイルに苦しめられている方、いかがですか?