【非エンジニア】 IT業界の事務職に異世界転生した初心者ワイが伝えたいスプレッドシート活用術(事務職向け)

【非エンジニア】 IT業界の事務職に異世界転生した初心者ワイが伝えたいスプレッドシート活用術(事務職向け)

IT業界に転生した事務職の私が、毎月増えるスプレッドシートのリンクを自動更新する方法を試してみました。Apps Scriptを使った意外とシンプルな解決策をご紹介します。
2026.06.04

IT業界に転生した初心者ワイが伝えたいスプレッドシート活用術(事務職向け)

THE有形商材の事業会社の事務職にいた私が、偶然とご縁に拾われてクラスメソッドに入ってからはや四か月。
クラスメソッドはIT企業。
わかっていた。わかっていたけど、外国、いや異世界だった。だからもう異世界の事務職に転生した気持ち。
たまに直面する「そんな風にできたらいいのになー」を、ド初心者の私でも理解できたことばでご紹介します。

【超超初心者向け】

Googleスプレッドシートで「毎月増えるシート」に自動リンクする方法

スプレッドシートを2種類使っていて、同じキーワードを起点に片方から片方へリンクを貼りたいと思ったことはありませんか?

毎月シートが増えていく場合、キーワードに紐づいたリンクは、勝手に最新版になりません。

もう一度言います。

リンクは勝手に 最 新 版 に は な り ま せ ん 。

その都度リンクを貼り直すのは大変です。
複数件にわたる場合、考えるだけで泣いちゃいます。

今回はそんな悩みを解決した方法をご紹介します。

まず理解しておくべきこと:2種類のシートの運用方法

今回登場するスプレッドシートは2種類(シートAとシートB)です。
それぞれ運用方法がまったく違います。


①スプシA(動的):月ごとにシート上で管理するもの。

毎月管理するシートがタブで左に追加されていく

このシートは、毎月新しいシートが追加されていきます。
一番左は表紙(動かない)、その隣に「2026年5月」「2026年6月」…というように、
最新のシートが常に左から2番目(表紙の隣)にある構造です。

ポイント:最新のシートが毎月変わります。左から2番目のシートが最新です。

②スプシB(静的):シートは増えず、行が増えていく

こちらはシートの数は変わりません。
要件が増えるたびに下に行が追加されていく形式です。

このシートにある__共通の番号__をキーにして、
スプシB(静的)→スプシA(動的)の 最新シートの特定セルに飛べるようにしたい!というのが今回の目的です。


課題:毎月変わる「最新シートのURL」をどう自動化するか

GoogleスプレッドシートのURLには「#gid=XXXXX」という__シートID__が含まれています。

このIDは各シートに固有のもので、毎月新しいシートを追加するたびに変わります。
つまり、特定のセルのリンクを貼っても最新版にはなりません。

そこで「常に最新シートのIDを取得して、リンクに自動反映させる」仕組みを作る必要があります。


解決策:Apps Script × IMPORTRANGE × HYPERLINKの組み合わせ
仕組みは書きません。エンジニアじゃないから!

やることだけ書きます。

ステップ1

スプシA(動的)の上のほうにあるタブの「拡張機能」を探してください。
そこからApps Script(カラフルなロゴのやつ)を選択。

一番ITができないと自負している私ですが、Apps Scriptを開いた瞬間にヒェー!となりました。なりましたけど、だいじょうぶ。
ここでやるのは2つだけ。

①既存のコードが空欄(function myFunction(){}だけ)だったら、それを消して、
②下記をコピペするだけ。

function updateLatestSheetGID() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheets = ss.getSheets(); const latestSheet = sheets[1]; // 左から2番目=最新 sheets[0].getRange('Z1').setValue(latestSheet.getSheetId()); sheets[0].getRange('Y1').setValue(latestSheet.getName());}function onOpen() { updateLatestSheetGID();}

これをこのまま貼り付けてください。

貼り付けて保存したら、▶実行ボタンを押して手動でも実行します。

つまずきポイント①:Apps Scriptの画面に「再生ボタン」が見当たらず困りました。
正解は画面上部の「▶ 実行」というボタンです。

スプシA(動的)の表紙シート(一番左)のY1セルに「(スプシAの)つなげたい最新版のシートの名前」、Z1セルに「GIDの数字」が入れば成功です。GIDの数字ってなんぞやと思ったら、なんか数字が入ったってことがわかればOKです。


ステップ2

スプシBのZ1セルに以下を入れます。

=IMPORTRANGE("スプシAのID","表紙!Y1")

注意: 「スプシAのID」は、スプシAのURLの中に含まれています。
このままコピペしないでください。
ご自身の動的側のシートのURL を開いて、下記式にあてはめてください。
https://docs.google.com/spreadsheets/d/のあとに続く文字列が ID です。
一度設定すれば毎月変わりません。

初回はアクセス許可のポップアップが出るので「許可」を押してください。


ステップ3

紐づけしたいキーワードのセルに以下の式を入れます。

=HYPERLINK("https://docs.google.com/spreadsheets/d/【*スプシAID*】/edit#gid="
&IMPORTRANGE("【スプシAID】","表紙!Z1")
&"&range=A"
&MATCH("キーワード",IMPORTRANGE("【スプシAID】",$Z$1&"!A:A"),0),
"キーワード")

注意:

  1. スプシAID はステップ2で参照した文字列です。

  2. キーワード」の部分を実際のリンクしたい番号・キーワードに変えて使ってください。

この式は「最新シートのA列から一致するキーワードを探して、そのセルに飛ぶリンクを作る」という動きをします。

つまずきポイント②:
式の中の「キーワード」の部分には、セル番号(例:B9)で
はなく、リンクしたいキーワードそのもの(例:"001")を直接書いてください
式の中の「キーワード」の部分に、入力先と同じセル番号をいれると循環参照エラーになります。

つまずきポイント③:#REF!エラーが出る場合は、シート名のスペースや全角・半角の違いが原因のことが多いです。
まず式の中のシート名を直接書いてテストし、動作確認してから差し替えるのが確実です。

まとめ:毎月の作業はこれだけ

一度設定してしまえば、毎月の作業は以下のみです:
 ① 月次シートに新しいシートを追加する
 ② 月次シートを一度開き直す(onOpenスクリプトが走り、Y1・Z1が自動更新される)
 ③ マスターシートのリンクが自動的に新しいシートを指す

手動でのリンク貼り直しは不要です。難しい設定ではありません。
ぜひ試してみてください。

この記事をシェアする

関連記事