2022/05/03に更新

【GASで時短】全シートの行・列固定を解除する

スプレッドシート小技

全てのシートの行固定、列固定を解除するGoogle Apps Scriptです。ニーズはあんまりなさそうですが、思いつきで作ってみました。

こんな悩みを解決します


  • どのシートも行が固定されていて、気に入らないので全部削除してやる・・・!

用意するもの


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

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


  • 全てのシートの「固定された行」と「固定された列」を解除します。
  • 解除するまえに確認画面が表示されるため、誤って実行することを防げます。

使い方


1.スクリプトの実行

サンプルとして5行と2列を固定したシートを作成しました。

上のメニューにある「スクリプト実行」から「全シートの固定された行・列を解除する」を実行します。

2.実行の確認

「全てのシートの固定された行・列を解除します。よろしいですか?」というメッセージが表示されます。
実行してもよければ「OK」を押します。キャンセルを押した場合はスクリプトの実行が終了します。

3.実行結果の確認

しばらく待つとシートの固定設定が解除されるはずです。

スクリプト


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

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

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

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

  // メニューに追加するボタン
  menu.addItem('全シートの固定された行・列を解除する', 'unset_all_frozen');

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


function unset_all_frozen() {

  // アクティブなスプレッドシートを開く
  const ss = SpreadsheetApp.getActiveSpreadsheet();

  // すべてのシートを取得する
  const sheets = ss.getSheets();

  // 確認メッセージを表示するため、UIを取得
  const ui = SpreadsheetApp.getUi();

  // 実行してもよいか確認メッセージを表示する
  const response = ui.alert('全てのシートの固定された行・列を解除します。\nよろしいですか?', ui.ButtonSet.OK_CANCEL);

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

  // シートを1つずつ処理していく
  for (let i = 0; i < sheets.length; i++) {

    // 行方向の固定を0(解除)にする
    sheets[i].setFrozenRows(0);

    // 列方向の固定を0(解除)にする
    sheets[i].setFrozenColumns(0);
  }
}

関連するアプリ


タグ一覧

最新のアプリ

人気のアプリ

myfunc.jp