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行目以降は取り込まれません。
必要な範囲は運用する表に合わせて決め、行が増えたときにも見直します。
数式の構文と手動での設定を先に確認したい場合は、次の記事を参照してください。

実行して数式と取り込み結果を確認する
- コードを保存し、実行する関数として
myFunctionを選びます。 - 実行時にGASの承認画面が出たら、コードの処理と要求権限を確認して承認します。
- 書き込み先のA1を選び、数式バーの参照元ID・シート名・範囲を確認してください。
- 接続を求める
#REF!が表示された場合は、共有対象を確認して「アクセスを許可」を選びます。 - 読み込み後に見出しと数件の値を参照元と照合し、目的の範囲が表示されたか確かめます。
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ですが、掲載版との一致は今回再検証していません。
スプレッドシートの関数を使った関連記事も参照できます。




