2026年2月4日
Google スプレッドシート
Google Spreadsheetにシート昇降順を追加!
Google Spreadsheetにシート昇降順を追加!
DXが進む中、「営業や作業者個々がExcelなどで月次管理していた情報をクラウド化したいね」という意見が当然あがりますよね。
Office365という選択しもあれば、Google スプレッドシートは?など様々な方法が検討されるかと思います。
私たちも同様の状況にあり、Google スプレッドシートであれば、Googleアカウントを有していれば誰でも無料で利用できるメリットもあり、テスト的にExcelのデータをインポートして運用テストを実施したりもしています。
今回は、そのような過程で起きた「困りごと」についての解決案を紹介します。

上の画像は、とあるExcelをGoogleスプレッドシートにインポートした結果。そろそろMISで管理されている企業様ばかりだと思いますが…(もち弊社もMISで管理されています)
毎月蓄積された数年分のシートが、1つの「Excelドキュメント」に集約されています。
見て分かるように…古いシート(左)から新しいシート(右)の順にインポートされています。
ここで課題になったのが、スプレッドシートにアクセスすると、毎回、最も左のシートが最初に表示てしまいます。デフォルト機能なの?
そこで、プルダウン機能で変更したいシートに移動して入力、という流れになるのですが、この場合、最も新しいシートを左になるよう一括でシートの並び順を替えられると便利。
しかし、そのような機能は用意されていません。
そこで、「そのような機能は自分で追加してしまえ!」となる訳です。
どうやって?…AIです。皆さんAIをただの検索君として使っていませんか?それでは少し勿体ない。
Googleスプレッドシートには、スクリプトを追加する機能がありますし、ExcelにもVisual Basic Editorが用意されている。コードが書ければ業務効率が図れる訳です。
そこで、コードはAIに書かせましょう。
並び替えのロジックはこんな感じ。
並び替えの共通ロジック(昇順 / 降順を引数で切替)
function sortSheetsByDateName(order = 'desc') {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheets = ss.getSheets();
const parsed = sheets.map(sheet => {
const name = sheet.getName();
// 例: "2025年12月", "2023年03月 [正式]" もOK
const match = name.match(/(\d{4})年(\d{1,2})月/);
if (!match) return null;
const year = Number(match[1]);
const month = Number(match[2]) - 1; // JSは0始まり
const date = new Date(year, month, 1);
return { sheet, date };
}).filter(Boolean);
if (parsed.length === 0) {
ss.toast('対象となる年月シートがありません', '📅 シート整理', 3);
return;
}
// 並び順制御
if (order === 'asc') {
// 古い → 新しい
parsed.sort((a, b) => a.date - b.date);
} else {
// 新しい → 古い
parsed.sort((a, b) => b.date - a.date);
}
parsed.forEach((item, index) => {
ss.setActiveSheet(item.sheet);
ss.moveActiveSheet(index + 1);
});
ss.toast(
order === 'asc'
? '古い順 → 新しい順に並び替えました'
: '新しい順 → 古い順に並び替えました',
'📅 シート整理',
3
);
}
メニューから呼ぶ専用関数(中身は1行)
function sortSheetsNewestFirst() {
sortSheetsByDateName('desc'); // 新しい順
}
function sortSheetsOldestFirst() {
sortSheetsByDateName('asc'); // 古い順
}
メニュー追加(onOpen)
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('📅 シート整理')
.addItem('新しい月 → 古い月', 'sortSheetsNewestFirst')
.addItem('古い月 → 新しい月', 'sortSheetsOldestFirst')
.addSeparator()
.addItem('(再読み込み)', 'onOpen')
.addToUi();
}
このコード、どのように使う?
使い方は簡単。
スプレッドシートにも当然「Google Apps Script」が利用できます。
手順は以下の様に…
手順
- スプレッドシートを開く
- メニュー
拡張機能 → Apps Script - 下記コードを貼り付け
- 保存 → 実行
以上。
簡単ですよね。メニューにもシートの昇降順を変更する機能が追加されています。
AIコード生成、バイブコーディングが一般的になるとフロント、バックエンドの垣根が希薄になりますよね。
とっても便利。
あとは、コードを見ながら「どのコードが、どのような指示を出しているか」を学習し理解を深めれば完璧。
皆さんも、コード生成で業務改善を!

