Amazonで商品を見るセール会場へ

Googleスプレッドシート│IMPORTRANGE関数を別シートに自動挿入する方法

複数のGoogleスプレッドシートを運用していると、特定シートのデータを別のスプレッドシートに同期したい場面があります。

この用途で活用されるのがIMPORTRANGE関数です。

しかし、毎回手作業で関数を貼り付けたり、複数シートへの設定を個別に行ったりすると管理負担が増えます。

そこで本記事では、GAS(Google Apps Script)を用いてIMPORTRANGE関数を別シートへ自動挿入する手順を解説します。

実行結果の例

GASを実行して対象セルにIMPORTRANGE関数が自動挿入され、別シートのデータが読み込まれた実行結果の例。

スクリプトを実行すると、対象セルにIMPORTRANGE関数が自動入力され、別シートのデータが読み込まれます。

GASで数式の入力を自動化できます。

ただしセルの保護は行わないため、後から数式を削除・変更する操作を防ぐ機能はありません。

スクリプトコード

以下のスクリプトを、スプレッドシートのメニュー「拡張機能」>「Apps Script」のエディタへ貼り付けて保存してください。

IMPORTRANGE関数の基本仕様や構文は以下の記事で解説しています。

function myFunction() {
  // 書き込み先(記載したいシート)
  var write_id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
  var write_sheet_name = "シート1";

  // 参照元(読み込みたいシート)
  var source_id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
  var source_sheet_name = "シート1";

  // スプレッドシートの取得
  var write_ss = SpreadsheetApp.openById(write_id);
  var write_sheet = write_ss.getSheetByName(write_sheet_name);

  // IMPORTRANGE関数を生成
  var formula = '=IMPORTRANGE("https://docs.google.com/spreadsheets/d/' + source_id + '","' + source_sheet_name + '!A:Z")';

  // 記載先のシートのA1に書き込み
  write_sheet.getRange("A1").setValue(formula);
}

設定と実行手順

  1. スクリプト内の write_id に 連携先スプレッドシートのID を入力
  2. write_sheet_nameに書き込み先のシート名、source_idに参照元ファイルのID、source_sheet_nameに参照元シート名を指定します。旧説明の sheet_name という変数は掲載コードに存在しません。
  3. スクリプトを実行すると、連携先シートのセルA1に IMPORTRANGE 関数が自動で設定されます

※ 初回実行時または初回連携時は、セル上に「アクセスを許可」ボタンが表示される場合があります。

連携先の編集者が参照元のデータを取り込める状態になるため、共有相手と取り込み対象を確認してから許可してください。

GASの実行承認とIMPORTRANGEの接続許可は別です。

応用のヒント

  • シート一覧をループ処理して複数シートへ一括設定
  • 参照範囲を変数化して動的に切り替え
  • 数式入力と連動させた集計表やグラフ更新の自動化

この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。

スプレッドシートの関数を使った記事は、ほかにもあります。

まとめ

  • IMPORTRANGE関数の設定を自動化できる
  • 複数シートの連携管理にかかる工数を削減できる
  • 数式を再入力する手間を減らせるが、誤削除を防止するセル保護は別途必要

シート間のデータ連携を頻繁に行う業務では、関数の自動挿入によって保守性を高められます。

特定の条件に合致するデータのみを抽出したい場合や対象シートを絞り込みたい場合など、要件に応じたカスタマイズも検討できます。

このコードはA1の既存の値や数式を上書きします。

空の検証用シートで実行し、取り込む範囲にも他のデータを置かないでください。

掲載コードは「シート1」のような単純なシート名を想定しています。

空白や記号を含む名前は範囲文字列での引用・エスケープが必要になるため、そのまま流用しないでください。

書き込み先のシート名が存在しない場合もエラーになります。

A:Zは全行を対象とするため、大量データではA1:Z1000など実際に必要な範囲に絞ってください。

更新の反映には待ち時間があり、リアルタイムの双方向同期ではありません。

ループや条件抽出は応用案で、掲載コードには含まれません。

実行後はA1の数式、接続許可、取り込み結果を確認してください。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

スプレッドシート・GASのおすすめ書籍

作業環境の作り方

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次