2022/02/11に更新

【GASで時短】連番を自動で振る(縦、横)

スプレッドシート小技

選択しているセルを起点に自動で連番を振ってくれるGoogle Apps Scriptです。縦(行)方向、横(列)方向どちらにも対応しています。振る数は指定できます。

こんな悩みを解決します


  • シートに大量の連番を振りたいが、ドラッグしたり関数を入れるのは面倒。

用意するもの


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

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


  • 選択されているセルを起点に、連番を書き込むことが出来ます。
  • 縦(行)方向、横(列)方向どちらにも対応しています。連番が書き込まれる範囲は数字で上書きされてしまうのでご注意ください。

使い方


1.スクリプトの実行

連番を書き込む起点のセルを選択します。

縦方向に連番を入れてみます。メニューから「連番を挿入する(縦)」を実行します。

2.数字の指定

連番をいくつまで振るのか指定します。数字を入力したらOKを押してください。

3.結果の確認

縦方向に連番が書き込まれました。

横方向も同じように連番を振ることが可能です。

スクリプト


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

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

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

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

  // メニューに追加するボタン
  menu.addItem('連番を挿入する(縦)', 'insert_sequence_number_row');
  menu.addItem('連番を挿入する(横)', 'insert_sequence_number_col');

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

// menu.addItemで呼び出す関数には引数を渡せないので、引数を設定するためだけの関数を作成
function insert_sequence_number_row() {
  insert_sequence_number('row'); //縦方向
}

function insert_sequence_number_col() {
  insert_sequence_number('col'); //横方向
}


function insert_sequence_number(direction) {

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

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

  // アクティブセルを取得
  let active_cell = sheet.getActiveCell();

  // 連番の必要数をユーザに確認する
  let response = ui.prompt('連番はいくつまで必要ですか?', ui.ButtonSet.OK_CANCEL);

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

  // 連番を格納する配列
  let result = [];

  if (direction == 'row') { //縦(行方向)の場合の処理

    for (let i = 1; i <= response.getResponseText(); i++) {
      result.push([i])
    }

  } else if (direction == 'col') { //横(列方向)の場合の処理
    for (let i = 1; i <= response.getResponseText(); i++) {
      result.push(i)
    }

    result = [result]; //setValuesするために2次元配列にする
  }

  // セルへの書き込み処理
  let range = sheet.getRange(active_cell.getRow(), active_cell.getColumn(), 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で時短】1行ごとに空白行を挿入する

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

タグ一覧

最新のアプリ

人気のアプリ

myfunc.jp