入力されている数式を再度セットしなおすGoogle Apps Scriptです。数式に誤りがないのに何らかの原因で動かない・・・というときに。
特にありません。今お使いのスプレッドシートに組み込めます。
上のメニューにある「スクリプト実行」から「全シートの数式を再セットする」を実行します。
完了すると「数式の再セットが完了しました!」と表示されます。
エラーを再現するのが面倒だったので、説明のスクリーンショットは少なめです。ごめんなさい。
「数式が正しいのにエラー」は、他シートへの参照を含むシートをcopyToした時に発生するようです。毎回起きるわけではないのですが・・・。
1セルずつダブルクリックするのが面倒なので作成しました。
/**
* このスクリプトの説明、使い方はこちら。
* https://myfunc.jp/items/00096/index.html
*/
function onOpen() {
// スプレッドシートを開いたときに実行される関数
// UIの取得
const ui = SpreadsheetApp.getUi()
// メニューの表示名
const menu = ui.createMenu('スクリプト実行');
// メニューに追加するボタン
menu.addItem('全シートの数式を再セットする', 'reset_formulas');
// メニューを画面に追加する
menu.addToUi();
}
function reset_formulas() {
// アラートを表示するためにUIを取得
const ui = SpreadsheetApp.getUi();
// 開いているスプレッドシートオブジェクトを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
// すべてのシートオブジェクトを取得する
const sheets = ss.getSheets();
// 1シートずつループする
for (let i = 0; i < sheets.length; i++) {
// シートにデータがない場合はスキップする
if(sheets[i].getLastRow() == 0){
continue;
}
// シート内のデータが存在する範囲を取得
let range = sheets[i].getRange(1, 1, sheets[i].getLastRow(), sheets[i].getLastColumn());
// 範囲内の数式を取得
let formulas = range.getFormulas();
// 1セルずつ数式を再セットしていく
// setFormulasでまとめてセットすると数式エラーが出た場合に該当セルがわからないので1セルずつセットする
for (let j = 0; j < formulas.length; j++) { // 行のループ
for (let k = 0; k < formulas[j].length; k++) { // 列のループ
if (formulas[j][k] != '') { // 数式としてなにか文字列が入っていれば
range = sheets[i].getRange(j + 1, k + 1); // 該当セルの範囲オブジェクトを取得
range.setFormula(formulas[j][k]); // 数式をセットする
}
}
}
}
// 完了時にメッセージを表示する
ui.alert('数式の再セットが完了しました!');
}
スプレッドシートを開いたときにメッセージを表示するGoogle Apps Scriptです。更新履歴などのお知らせ、業務の引き継ぎ、注意事項などを表示するのに使えます。ユーザーによるスクリプトの動作承認は不要です。
スライドを開いたときにメッセージを表示するGoogle Apps Scriptです。更新履歴などのお知らせ、業務の引き継ぎ、注意事項などを表示するのに使えます。ユーザーによるスクリプトの動作承認は不要です。
ドキュメントを開いたときにメッセージを表示するGoogle Apps Scriptです。更新履歴などのお知らせ、業務の引き継ぎ、注意事項などを表示するのに使えます。ユーザーによるスクリプトの動作承認は不要です。
特定のセルが編集されたときにメッセージを表示するGoogle Apps Scriptです。編集をさせたくないときは保護してしまえばよいのですが、編集後に「本当にその内容で大丈夫?」と振り返って欲しいときに使えるかもしれません。ユーザによるスクリプトの動作承認は不要です。
特定のセルが編集されたときにメールを送信するGoogle Apps Scriptです。大事な部分が更新された時にすぐに知りたいときに使えるかもしれません。
一定の文字数以上で構成された数式が入っているセルを探し、そのセルにメモが入っているかどうかをチェックするGoogle Apps Scriptです。長い数式はわかりにくいので説明を書いてもらうために作りました。
スプレッドシートに書き込まれた全てのコメントを削除するGoogle Apps Scriptです。コメントの応酬を消し去りたいときにどうぞ。