2022/05/11に更新

【GASで時短】シート内の数式だけを削除する

スプレッドシート小技

セルに入力されている数式をすべて消し去るGoogle Apps Scriptです。数式を多用してデータを作ったが、再計算することはないので数値が直接入力されている状態にしたい時・・・などに。

こんな悩みを解決します


  • 数式を使って資料を作ったけど、もう更新することはないから計算式ではなく数値として保存したい
  • お客様に提出するシートなので、数式は消しておきたいけどめんどくさい

用意するもの


特にありません。今お使いのスプレッドシートに組み込めます。

このスクリプトで出来ること


  • セルに入力されている数式をすべて消すことができます。
  • 数式によって計算された値は残ります。

使い方


1.スクリプトの実行

サンプルデータを用意しました。
合計得点は数式によって計算されています。

上のメニューにある「スクリプト実行」から「入力されている数式を消去する」を実行します。

2.実行の確認

実行してもよいのか、確認画面が表示されます。このスクリプトはアクティブな(今開いている)シートだけ処理します。
キャンセルが押された場合はスクリプトが終了します。

3.結果の確認

少し待つと数式だけが消去されます。見えていた値はそのままです。
E10セルはSUM()で計算されていましたが、実行後は値が直接入力されています。

スクリプト


/**
 * このスクリプトの説明、使い方はこちら。
 * https://myfunc.jp/items/00083/index.html
 */

function onOpen() {
  // スプレッドシートを開いたときに実行される関数

  // UIの取得
  const ui = SpreadsheetApp.getUi()

  // メニューの表示名
  const menu = ui.createMenu('スクリプト実行');

  // メニューに追加するボタン
  menu.addItem('入力されている数式を消去する', 'delete_all_formulas');

  // メニューを画面に追加する
  menu.addToUi();
}

function delete_all_formulas() {

  // アラートを表示するためにUIを取得
  const ui = SpreadsheetApp.getUi();

  // 実行してもよいか確認する
  const response = ui.alert('今開いているシートに入力されている数式を全て削除します。\nよろしいですか?', ui.ButtonSet.OK_CANCEL);

  // キャンセルが押されたらスクリプトを終了する
  if (response == ui.Button.CANCEL) {
    return;
  }

  // 開いているスプレッドシートオブジェクトを取得
  const ss = SpreadsheetApp.getActiveSpreadsheet();

  // 開いているアクティブシートのオブジェクトを取得
  const sheet = ss.getActiveSheet();

  // データが存在する範囲を取得
  let range = sheet.getRange(1, 1, sheet.getLastRow(), sheet.getLastColumn());

  // 数式(formula)として空白を適用するため、rangeと同じ行・列の配列を作成する
  const empty_array = new Array(sheet.getLastRow()); // 行方向

  for (let i = 0; i < empty_array.length; i++) {
    empty_array[i] = new Array(sheet.getLastColumn()); // 列方向
  }

  // 現在入力されている値(見えている計算済みの値)を取得する
  const values = range.getValues();

  // 数式として空白を適用し、削除する
  range.setFormulas(empty_array);

  // 事前に取得しておいた値をセットする
  range.setValues(values);

}

関連するアプリ


【GASで便利に】シート内のすべての数式を表示する

シートに入力されている全ての数式を、別シートに出力するGoogle Apps Scriptです。数式のセル参照が連鎖していて、確認が大変だったので作ってみました。

【GASで時短】数式エラーが出ているセルを通知する

数式でエラーが出ているセルを探してくれるGoogle Apps Scriptです。巨大なシートだとエラーに気づかないこともある・・・?ということで作ってみました。

【GASで便利に】数式が入っているセルに色を付ける

シート内の数式が入っているセルを探して、色を付けてくれるGoogle Apps Scriptです。他の人から引き継いだシートだと、数式がどこにあるのかわかりにくいので作ってみました。

【GASで時短】2つのシートの差分をチェックする

2つのシートを比較して、値や数式に差分があるかどうか教えてくれるGoogle Apps Scriptです。スプレッドシートでもdiffがしたい!という時にどうぞ。

【GASで時短】同じ背景色のセルを選択状態にする

選択したセルと同じ背景色のセルを選択状態にするGoogle Apps Scriptです。細かく色分けされたセルの色を変えたくなったときにどうぞ。

【GASで時短】同じ文字色のセルを選択状態にする

文字色が同じセルを選択状態にしてくれるGoogle Apps Scriptです。特定の文字色をまとめて変えたくなったときにどうぞ。

【GASで時短】同じフォントサイズのセルを選択状態にする

同じフォントサイズのセルを選択状態にしてくれるGoogle Apps Scriptです。一部のフォントサイズをまとめて変えたくなったときなどにどうぞ。

【GASで時短】選択されているセルの数をカウントする

スプレッドシートで選択している範囲の「選択中のセルの数」「値が入っているセル」「数式が入っているセル」をカウントするGoogle Apps Scriptです。

【GASで時短】セルの編集内容をすべてのシートに反映させる

シートに対する変更内容(値の変更)を、同じファイルのすべてのシートに反映(同期)させるGoogle Apps Scriptです。

タグ一覧

最新のアプリ

人気のアプリ

ページトップに戻る
myfunc.jp