当サイトの記事にはプロモーションが含まれています。

初心者でもできる!Google Apps Scriptでスプレッドシートのデータを別のシートにコピーする方法

パソコンパソコン・スマホ教室
スポンサーリンク

スプレッドシートのデータを別のシートにコピーしたいけれど、どうすればいいのか分からないという方へ。今回は、Google Apps Script(GAS)を使って、初心者でも簡単にデータをコピーする方法をご紹介します。パソコンやスマホの操作に不安がある方でも安心して取り組める内容です。

スポンサーリンク

はじめになぜGASを使うのか?

Googleスプレッドシートのイメージ

Googleスプレッドシートのイメージ

普段、スプレッドシートでデータを入力したり編集したりしていると、「このデータを別のシートにも反映させたい」と思うことがありませんか?手動でコピー&ペーストを繰り返すのは手間がかかりますし、ミスが起こりやすいですよね。そこで登場するのが、Google Apps Script(GAS)です。GASを使えば、スプレッドシートの操作を自動化できるので、時間と手間を大幅に削減できます。

GASを使ったデータコピーの基本

GASを使ってデータをコピーする方法には、主に以下の2つがあります。

`copyTo()` メソッドを使う方法

この方法では、コピー元のシートをそのままコピー先のスプレッドシートに複製します。書式やデータ、シートの構成など、すべてをそのままコピーできます。

以下は、`copyTo()` メソッドを使ったサンプルコードです

function copySheet() {
  var sourceSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = sourceSpreadsheet.getSheetByName("テンプレート");
  var targetSpreadsheet = SpreadsheetApp.openById("コピー先のスプレッドシートID");
  var copiedSheet = sourceSheet.copyTo(targetSpreadsheet);
  copiedSheet.setName("新しいシート名");
}

このコードを実行すると、「テンプレート」シートが指定したコピー先のスプレッドシートに「新しいシート名」としてコピーされます。

`getValues()` と `setValues()` を使う方法

この方法では、コピー元のシートからデータを取得し、コピー先のシートにそのデータを貼り付けます。書式やシート構成はコピーされませんが、データの転記には適しています。

以下は、`getValues()` と `setValues()` を使ったサンプルコードです

function copyData() {
  var sourceSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = sourceSpreadsheet.getSheetByName("データ元");
  var targetSheet = sourceSpreadsheet.getSheetByName("データ先");
  var data = sourceSheet.getRange("C10").getValues();
  targetSheet.getRange("C10").setValues(data);
}

このコードを実行すると、「データ元」シートのからC10までのデータが、「データ先」シートの同じ範囲にコピーされます。

実際にやってみよう!ステップバイステップガイド

それでは、実際にGoogle Apps Scriptを使ってデータをコピーしてみましょう。

ステップ1スクリプトエディタを開く

  1. コピー元のスプレッドシートを開きます。
  2. メニューバーの「拡張機能」から「Apps Script」を選択します。
  3. 新しいタブでスクリプトエディタが開きます。

ステップ2コードを入力する

1. スクリプトエディタに、上記で紹介したサンプルコードをコピー&ペーストします。
2. 必要に応じて、シート名やスプレッドシートIDを自分の環境に合わせて変更します。

ステップ3コードを実行する

1. スクリプトエディタの上部にある「実行」ボタン(▶️)をクリックします。
2. 初めて実行する場合は、Googleアカウントへのアクセス許可を求められますので、指示に従って許可します。

これで、指定したシートや範囲のデータがコピーされるはずです。

よくある質問や疑問

質問1`copyTo()` メソッドと `getValues()` と `setValues()` の違いは何ですか?

`copyTo()` メソッドは、シート全体をそのままコピーするのに対し、`getValues()` と `setValues()` は、指定した範囲のデータのみをコピーします。前者は書式やシート構成も含めてコピーしたい場合に適しており、後者はデータのみを転記したい場合に適しています。

質問2コピー先のシートが存在しない場合、どうすればいいですか?

コピー先のシートが存在しない場合は、`getSheetByName()` で取得した際に `null` が返されます。その場合は、`insertSheet()` メソッドを使って新しいシートを作成することができます。

var targetSheet = targetSpreadsheet.getSheetByName("データ先");
if (!targetSheet) {
  targetSheet = targetSpreadsheet.insertSheet("データ先");
}

質問3特定の条件に合ったデータだけをコピーしたい場合、どうすればいいですか?

特定の条件に合ったデータだけをコピーするには、`getValues()` で取得したデータをJavaScriptの配列操作でフィルタリングし、その結果を `setValues()` で貼り付ける方法があります。

例えば、A列が「完了」となっている行だけをコピーする場合

var data = sourceSheet.getRange("C10").getValues();
var filteredData = data.filter(function(row) {
  return row === "完了";
});
targetSheet.getRange(1, 1, filteredData.length, filteredData.length).setValues(filteredData);

まとめ

今回は、Google Apps Scriptを使ってスプレッドシートのデータを別のシートにコピーする方法をご紹介しました。手動での作業を減らし、効率的にデータを管理するために、ぜひGASを活用してみてください。

他にも疑問やお悩み事があれば、お気軽にLINEからお声掛けください。

この記事を書いた人
この記事を書いた人

企業の情報システム部門で10年以上、PC・アカウント・社内ネットワーク・Microsoft 365/Google Workspace運用を担当。年間数百件の問い合わせ対応(PC不調、メール送受信、Excel/Word資料、Teams会議、スマホ連携など)を通じて、初心者がつまずくポイントを「再現→原因切り分け→最短解決」の手順に落とし込んできました

現場や身近で実際に起きたトラブルをベースに、手順だけでなく「なぜそうなるか」「失敗しやすい落とし穴」「安全な設定(セキュリティ)」まで含めて解説します。

相談窓口(問い合わせ/LINE等)を設け、記事で解決しないケースも個別にサポートしていますので「パソコンが急に動かなくなった」「スマホの設定がわからない」などの悩みは一人で抱え込まず、お気軽にご相談ください。

【お問い合わせは下記URLから】
https://m32006400n.xsrv.jp/inquiry-form/

【公式LINEは下記URLから】
https://lin.ee/t8TDjcj

uri uriをフォローする
スポンサーリンク
よかったらシェアしてね! /
uri uriをフォローする

コメント

タイトルとURLをコピーしました