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

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

GASで書き込み先のA1へIMPORTRANGE関数を入れ、別ファイルのデータを取り込む手順です。

GASはGoogleサービスを操作するスクリプトで、この作例では数式の入力を自動化します。

必要なのは書き込み先の編集権限と参照元へのアクセス権です。

A1を上書きするため空の練習用シートから始め、初回の接続許可と取り込み結果を確認します。

数式を1回設定するコードで、双方向同期やセル保護、複数シートへの一括設定は行いません。

目次

IMPORTRANGEを挿入する前の準備

参照元と書き込み先を取り違えないよう、別々の練習用スプレッドシートを用意してください。

  • 参照元:機密情報を含まない見本データを入れ、シート名を「シート1」にします。
  • 書き込み先:空の「シート1」を用意し、取り込み結果を表示する領域も空けておきます。
  • 両ファイル:URL内の/d/と/editの間にあるファイルIDを控えます。

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

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

書き込み先の編集者は接続許可後、指定範囲以外の参照元データも取り込めるようになります。

必要な範囲だけを指定してもアクセス制限にはならないため、参照元全体の共有可否を先に確かめましょう。

スポンサーリンク

GASコードと4つの設定値

書き込み先の「拡張機能」から「Apps Script」を開き、次のコードを保存します。

既存のプロジェクトを使う場合は、既存コードや同名のmyFunctionを上書きしないようにしてください。

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);
}
  • write_id:書き込み先ファイルのID。
  • write_sheet_name:数式を入れる書き込み先のシート名。
  • source_id:データを読み込む参照元ファイルのID。
  • source_sheet_name:参照元ファイル内のシート名。

各値の引用符を残し、ID部分にはURL全体や末尾のgidを入れません。

コードのA:Zは全行を対象にするため、見本のデータ量に合わせてA1:Z10などへ絞ってください。

例えばA1:Z1000を指定した場合、1001行目以降は取り込まれません。

必要な範囲は運用する表に合わせて決め、行が増えたときにも見直します。

数式の構文と手動での設定を先に確認したい場合は、次の記事を参照してください。

実行して数式と取り込み結果を確認する

  1. コードを保存し、実行する関数としてmyFunctionを選びます。
  2. 実行時にGASの承認画面が出たら、コードの処理と要求権限を確認して承認します。
  3. 書き込み先のA1を選び、数式バーの参照元ID・シート名・範囲を確認してください。
  4. 接続を求める#REF!が表示された場合は、共有対象を確認して「アクセスを許可」を選びます。
  5. 読み込み後に見出しと数件の値を参照元と照合し、目的の範囲が表示されたか確かめます。

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

スクリプトの実行が終わっていても、接続許可や数式の計算が済んでいなければデータは表示されません。

下の画像は既存の実行結果例で、今回の見直し時に実行・撮影したものではありません。

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

2026年10月25日にPCブラウザ版Googleスプレッドシート向けの本文と公式資料を照合しました。

実ファイル間の接続、現在の画面表示、更新の待ち時間は今回実測していません。

エラーが出る・更新されないとき

  • A1に数式がない:GASのエラーを読み、書き込み先ID・編集権限・存在するシート名を確認します。
  • 参照元を開けない:参照元の所有者にアクセスを依頼し、許可後に接続を試してください。
  • 接続を求めるエラー:A1の内容を読み、「アクセスを許可」が必要か確かめます。
  • 結果を展開できないエラー:表示先に値がないか確認し、必要なデータは退避してから試します。
  • 更新が遅い:取り込み範囲を絞り、複数ファイルを連鎖して参照する構成を見直してください。

参照元の更新には反映待ちがあり、GASを何度も実行しても即時更新の保証にはなりません。

原因を確認せず再実行するとA1を再び上書きするため、先にセルや実行画面のエラーを読みましょう。

構文、接続許可、更新の遅れはGoogle公式のIMPORTRANGEヘルプで確認できます。

コードで使うsetValueの仕様はApps ScriptのRangeリファレンスに掲載されています。

スポンサーリンク

取り込みをやめるときと応用の範囲

練習用シートで取り込みをやめるときは、書き込み先A1の数式を削除します。

既存データを上書きしてしまった場合は、実行前に保存したコピーと照合して戻してください。

数式の削除は接続許可の取り消しとは別なので、機密情報の共有解除手段にはしないでください。

このコードはセルを保護しないため、後から数式が削除・変更されることも防げません。

複数シートへのループ処理、条件抽出、集計やグラフとの連動は追加実装する応用案です。

まず1つの練習用シートで数式と結果を確認し、必要な処理だけを追加してください。

コードの保管先はMOTOKI-LLC/cg-method-codeですが、掲載版との一致は今回再検証していません。

スプレッドシートの関数を使った関連記事も参照できます。

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

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

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

作業環境の作り方

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