Google Apps Scriptでスプレッドシートのセルをコピーする方法【初心者向け解説】

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

Googleスプレッドシートを使っていると、同じデータを別の場所にコピーしたい場面がよくありますよね。そんなときに便利なのが、Google Apps Script(GAS)を使った自動化です。今回は、GASを使ってスプレッドシートのセルをコピーする方法を、初心者の方にもわかりやすく解説します。

スポンサーリンク

セルをコピーする基本の方法

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

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

まずは、最も基本的な方法からご紹介します。

`getValue()` と `setValue()` を使う方法

この方法は、セルの値だけをコピーしたいときに使います。例えば、セルの値をB1セルにコピーする場合、以下のようなコードを書きます。

javascript
function copyCellValue() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const value = sheet.getRange('').getValue();
sheet.getRange('B1').setValue(value);
}

このコードでは、セルの値を取得し、それをB1セルに設定しています。値だけをコピーしたいときに便利です。

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

次に、セルの値だけでなく、書式や数式も含めてコピーしたい場合に使う方法です。例えば、セルの内容をB1セルにコピーする場合、以下のように書きます。

javascript
function copyCellWithFormatting() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange('').copyTo(sheet.getRange('B1'));
}

このコードでは、セルの内容をB1セルにコピーしています。`copyTo()` メソッドは、値だけでなく、書式や数式も含めてコピーすることができます。

値のみをコピーする方法

もし、セルの値だけをコピーしたい場合、`copyTo()` メソッドのオプションを使うことができます。例えば、セルの値をB1セルにコピーする場合、以下のように書きます。

javascript
function copyCellValueOnly() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange('').copyTo(sheet.getRange('B1'), {contentsOnly: true});
}

このコードでは、セルの値だけをB1セルにコピーしています。書式や数式はコピーされません。

複数のセルをコピーする方法

次に、複数のセルをコピーする方法をご紹介します。

範囲を指定してコピーする方法

例えば、\:B2の範囲をC1\:D2にコピーする場合、以下のように書きます。

javascript
function copyRange() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange('B2').copyTo(sheet.getRange('C1'));
}

このコードでは、\:B2の範囲をC1セルを起点にコピーしています。

値のみをコピーする方法

もし、範囲の値だけをコピーしたい場合、`copyTo()` メソッドのオプションを使うことができます。例えば、\:B2の範囲をC1\:D2に値のみコピーする場合、以下のように書きます。

javascript
function copyRangeValuesOnly() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange('B2').copyTo(sheet.getRange('C1'), {contentsOnly: true});
}

このコードでは、\:B2の範囲の値だけをC1セルを起点にコピーしています。書式や数式はコピーされません。

よくある質問や疑問

Q1: `getValue()` と `setValue()` と `copyTo()` の違いは何ですか?

セルの値をB1セルにコピーする場合、`getValue()` と `setValue()` は値だけをコピーしますが、`copyTo()` は値だけでなく、書式や数式も含めてコピーします。用途に応じて使い分けてください。

Q2: `copyTo()` メソッドのオプションにはどんなものがありますか?

`copyTo()` メソッドには、以下のようなオプションがあります。

ここがポイント!

  • contentsOnly: 値のみをコピーする場合に使用します。
  • formatOnly: 書式のみをコピーする場合に使用します。
  • formulaOnly: 数式のみをコピーする場合に使用します。
  • noBorders: 枠線を除いてコピーする場合に使用します。

用途に応じて、これらのオプションを組み合わせて使用することができます。

Q3: `copyTo()` メソッドで別のシートにコピーすることはできますか?

`copyTo()` メソッドは、同じスプレッドシート内のセル範囲をコピーすることができますが、別のスプレッドシートにコピーすることはできません。別のスプレッドシートにコピーする場合は、`getValue()` と `setValue()` を組み合わせて使用する方法があります。

今すぐ解決したい!どうしたらいい?

LINE公式

いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」

あなたはこんな経験はありませんか?

✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦

平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。

LINEでメッセージを送れば即時解決!

すでに多くの方が私の公式LINEからお悩みを解決しています。

最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。

誰でも無料で使えますので、安心して使えます。

問題は先のばしにするほど深刻化します。

小さなエラーがデータ消失重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。

あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。

相談しに行く

ぜひ、あなたの悩みを私に解決させてください。

まとめ

Google Apps Scriptを使うと、スプレッドシートのセルを簡単にコピーすることができます。基本的な方法をマスターすれば、業務の効率化や自動化に大いに役立つでしょう。ぜひ、今回ご紹介した方法を試してみてください。

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

コメント

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