シートに対する変更内容(値の変更)を、同じファイルのすべてのシートに反映(同期)させるGoogle Apps Scriptです。
特にありません。今お使いのスプレッドシートに組み込めます。
スクリプトをエディタに貼り付けて保存したら、トリガーを設定しましょう。
何も入力されていない4つのシートを用意しました。
シート1に文字を入力してみます。
シート2に移動してみると・・・反映されています!
シート4にも書いてみます。
シート3を見ると・・・同期されてます!
こうなるようにコードを書いたので当たり前なんですが、なんか不思議な感じがします。
このスクリプトを使う必要がなくなった場合は、かならず削除(もしくはトリガー削除)してください。
うっかりそのまま残しておくと、みんなが編集しはじめたときに大変なことになります・・・。
/**
* このスクリプトの説明、使い方はこちら。
* https://myfunc.jp/items/00135/index.html
*/
function edit_mirroring(e) {
// セルの値が変わったときに実行される関数
// 編集されたセルの値を取得
const value = e.range.getValue();
// 編集されたセルのアドレスを取得
const cell = e.range.getA1Notation();
// 開いているスプレッドシートのオブジェクトを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
// 編集したシートのオブジェクトを取得
const edited_sheet = ss.getActiveSheet();
// 編集したシートに対しては同期処理が不要、後で使うのでシートIDを取得しておく
const edited_sheet_id = edited_sheet.getSheetId();
// すべてのシートオブジェクトを取得
const sheets = ss.getSheets();
// シートの数だけループ
for (let i = 0; i < sheets.length; i++) {
// シートが変更元のシートの場合は何もしない
if(sheets[i].getSheetId() == edited_sheet_id){
continue;
}
// 値を書き込むため、編集したセル番地をもとに範囲オブジェクトを取得。
let range = sheets[i].getRange(cell);
// 値の書き込み
range.setValue(value);
}
}
シートに入力されている全ての数式を、別シートに出力するGoogle Apps Scriptです。数式のセル参照が連鎖していて、確認が大変だったので作ってみました。
数式でエラーが出ているセルを探してくれるGoogle Apps Scriptです。巨大なシートだとエラーに気づかないこともある・・・?ということで作ってみました。
シート内の数式が入っているセルを探して、色を付けてくれるGoogle Apps Scriptです。他の人から引き継いだシートだと、数式がどこにあるのかわかりにくいので作ってみました。
セルに入力されている数式をすべて消し去るGoogle Apps Scriptです。数式を多用してデータを作ったが、再計算することはないので数値が直接入力されている状態にしたい時・・・などに。
2つのシートを比較して、値や数式に差分があるかどうか教えてくれるGoogle Apps Scriptです。スプレッドシートでもdiffがしたい!という時にどうぞ。
2つのセル(日付・日時型)を選択すると、差分の日数や時間を計算してくれるGoogle Apps Scriptです。スプレッドシート関数でも出来ますが、任意のセルでちょっと計算したいときに。