2022/01/25に更新

【GASで時短】1行ごとに空白行を挿入する

スプレッドシート小技

1行ごとに任意の空白行を挿入してくれるGoogle Apps Scriptです。データを整理中に「今ある行の間に1行ずつ足したい・・・」ということが稀によくあるので作成しました。追加する行数はプロンプトで指定が可能です。

こんな悩みを解決します


  • スプレッドシートに入力中、追加するデータが出てきたので各行の間に行を挿入したいが手動でやるのは辛い。

用意するもの


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

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


  • シート内の各行に対し、空白行を挿入します。
  • 挿入する行数は指定が可能です。

使い方


1.スクリプトの実行

簡単なサンプルを用意しました。各行の間に空白はありませんが、ここに行を追加することになったら・・・。

スクリプトを実行します。メニューから「1行ごとに空白行を挿入する」を実行します。

2.行数の指定

挿入したい空白行の行数を指定します。1以上の整数のみ受け付けます。

3.結果の確認

少し待つと、もとあった行の間に指定された数だけの空白行が追加されます。

スクリプト


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

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

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

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

  // メニューに追加するボタン
  menu.addItem('1行ごとに空白行を挿入する', 'insert_blank_lines');

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


function insert_blank_lines() {

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

  // アクティブなスプレッドシート、シートを取得
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  // シート内でデータが入力されている範囲を取得
  let range = sheet.getRange(1,1,sheet.getLastRow(), sheet.getLastColumn());

  // セルの値を取得
  const values = range.getValues();

  // 空白行の挿入行数をユーザに指定させる
  const response = ui.prompt('挿入する行数を指定してください', ui.ButtonSet.OK_CANCEL);

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

  // 行数を数値型に
  const lines = parseInt(response.getResponseText());

  // 異常値が入力されたらスクリプトを終了する
  if(!lines > 0){
    ui.alert('行数は1以上の整数で指定してください');
    return;
  }

  // 出力用の配列を準備
  let result = [];

  // 取得した全セルのデータをループして文字が入っているかどうか確認する
  for(let i = 0; i < values.length; i++){

    // 既存の行はそのまま入れる
    result.push(values[i]);

    // 指定された値の数だけ、空白行を入れる
    for(let j = 0; j < lines; j++){

      // 空白行の列数を定義する変数
      let array = [];
      
      // 既存の行の列だけ、配列に空の値を入れる
      for(let k = 0; k < values[i].length; k++){
        array.push('');
      }

      // 空白行を出力用配列に追加
      result.push(array);
    }

  }

  // 今書きこまれている値を削除する
  range.clear();

  // 空白行を追加した二次元配列を書き込む準備。書き込み範囲を設定する
  range = sheet.getRange(1,1,result.length, result[0].length);

  // セルへ値の書き込み
  range.setValues(result);

}

関連するアプリ


【GASで便利に】2つのセルの値を入れ替える

選択した2つのセル(範囲)の値を、入れ替えるGoogle Apps Scriptです。行や列の入れ替えもできます。

【GASで便利に】セルの順番を逆にする(行)

選択した行範囲の順番を逆にするGoogle Apps Scriptです。ソートではなく、単純に順番を逆にします。関数の組み合わせでも実現できますが、GASを登録してしまったほうが早いかもしれません。

【GASで便利に】セルの順番を逆にする(列)

選択した列範囲の順番を逆にするGoogle Apps Scriptです。行バージョンを作ったので、列バージョンも。ニーズはあるのでしょうか。

【GASで便利に】セルの順番を逆にする(行と列)

選択した行および列範囲の順番を逆にするGoogle Apps Scriptです。これは本当に使い所があるのかわかりませんが、作ってみたので公開します。

【GASで便利に】指定した文字数でセルに分割する(行方向)

1つのセルに入力されている文字列を、指定した文字数で分割するGoogle Apps Scriptです。区切りに使用する文字が無くても大丈夫です。行方向に分割します。

【GASで便利に】指定した文字数でセルに分割する(列方向)

1つのセルに入力されている文字列を、指定した文字数で分割するGoogle Apps Scriptです。区切りに使用する文字が無くても大丈夫です。列方向に分割します。

【GASで時短】結合されたセルを検索&解除する

選択範囲に存在する結合されたセルを検索し、解除することもできるGoogle Apps Scriptです。予想外の結合によって困ったことがある方は多いと思います。このアプリが転ばぬ先の杖になれば幸いです。結合を解除するかどうかはダイアログで選択できます。

【GASで便利に】キーワードを含むセル番地を一覧表示する

検索キーワードを全シートから探して、ヒットしたセル番地をまとめて表示するGoogle Apps Scriptです。標準の検索機能ではヒットしたセルが1個ずつ分かりますが、まとめて知りたくなったので作成しました。

【GASで時短】選択範囲に存在する「改行」を検索&削除する

選択範囲に改行が含まれているセルを検索し、削除することもできるGoogle Apps Scriptです。想定外の改行によって困ることが稀によくありますので作ってみました。改行を削除するかどうかはダイアログで選択できます。

【GASで時短】データ・文字が入っていない行を削除する

シート内の「何も書き込まれていない行」を削除してくれるGoogle Apps Scriptです。スプレッドシートをメモ帳代わりにしていると、特に意味のない空白行がたくさんあったりして、消すのが面倒だったので作成してみました。すべての列に何も文字が入っていない行を消し去ります。

【GASで時短】シートの不要な行を削除する

スプレッドシートの不要な行を削除するGoogle Apps Scriptです。行がいつの間にか数万行に増えてしまっている・・・よくありますよね。

タグ一覧

最新のアプリ

人気のアプリ

myfunc.jp