見出し画像

【生成AI×GAS】違うシートに値をコピーする

オレンジピーチのトシです。
今回は、シートを飛び越えて、値をコピーする方法を紹介します。

 データをコピーするときには、違うシートや、違うファイルにコピーすることが多いですよね。
 GAS(Google Apps Script)でスプレッドシートを操作して、別のシートに値をコピーする方法を、生成AIを利用して作っていきます。

完成イメージ:やりたいこと

 今回、実施したいことは、下の図のようなスプレッドシートで、「転記元」というシートから、「転記先」というシートに、値をコピーする。
 コピーするのは、「A2~D2」セルの値を、「A8~D8」セルにコピーすることとする。
(今回も、単純な操作ですが、GASの動きを理解するために、分かりやすい例にしました。)

生成AIを使ってGASを作り、実行する。

今回も、生成AIとして、Microsoft Bing Copilot を利用しました。

 Copilot には、いくつかの種類があります。この記事で使用しているのは、Webブラウザがあれば無料で利用できるる「Microsoft Copilot」です。
 Copilotは、下記にも取り上げれらていますね。

 ここからは、今回実施した内容を説明します。
生成AIは、同じ質問をしても、異なる回答が返ってくることが多いので、もしこの記事をご覧になって、同じように質問しても、違う回答となるかもしれません。しかし、簡単なプログラムなので、概ね動くものにはなるかとおもいます。
(生成AIの安全性については、様々な議論が行われているため、会社で使う場合は、自社の利用規定などを確認してから使用してください。
 また、個人情報などは入力しないか、生成AIごとの推奨に基づいた形での利用をお薦めします。)

生成AIに、次の指示を出しました。

スプレッドシートのシート名「転記元」のA1セルからD3セルに値が入力されています。 この中のA2セル~D2セルにある値を、シート名「転記先」のA8セル~D8セルにコピーしたいです。 この操作が出来るGASを作成してください。

Bing Copilot への指示

生成AIからの回答が届く。

指示を入力すると、すぐに回答が表れます。
内容を読むと、指示を理解した上で、GASを作成してくれているようです。

Bing Copilot からの回答

 次の手順や、「トリガー」についての提案などもしてくれています。
(トリガーについては、このnoteでも何記事か後に紹介したいと思います)
コピーできるように、コードも貼っておきます。

function copyValues() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = ss.getSheetByName("転記元");
  var targetSheet = ss.getSheetByName("転記先");
  
  // 転記元の範囲
  var sourceRange = sourceSheet.getRange("A2:D2");
  // 転記先の開始セル
  var targetCell = targetSheet.getRange("A8");
  
  // 値をコピー
  sourceRange.copyTo(targetCell);
}

 余談ですが、生成AIの使い方が分かってきたら、その人は、この記事を読む必要もなくなるのだろうと思います。
 日進月歩で生成AIは進化していますし、賢くなっています。
ソフトバンクの孫正義さんも、近い将来、人類の誰よりも賢いAIが誕生すると語っていますし、実際に、そのようなAIが生まれてくると思います。
 そんな時代に期待しつつ、少しずつでも生成AIに興味を持って、触れてみる人が増えていけば、世界はもっと良くなるのではないかと思います。

スプレッドシートにGASを組み込む。

 スプレッドシートにGASを貼り付けます。
(詳細な操作方法は、過去の記事をご覧ください。)

 貼り付けが出来たら、さっそく実行します。
実行結果として、「転記先」シートに値をコピーすることが出来ました。

GASのコードを少し解説

 今回のポイントは、下記のように、「転記元」シートと、「転記先」シートを、それぞれ変数として定義することです。
 それにより、それぞれのシートに対してgetRangeメソッドが使用できます。

var sourceSheet = ss.getSheetByName("転記元");
var targetSheet = ss.getSheetByName("転記先");

 もう一つのポイントとしては、新たな関数として、CopyToメソッドが使用されています。

sourceRange.copyTo(targetCell);

 GASでCopyToメソッドを利用すると、今回のように、別シートにコピーををすることが出来ます。
 他にも、範囲をコピーして、値のみ貼り付けをしたり、書式を貼り付けたりと、スプレッドシートを手作業で操作するときの、様々なコピペと同じ操作が可能になります。
 もちろん、過去の記事で紹介したように、getValuesメソッドと、setValuesメソッドを組み合わせて、コピーをすることも可能です。

まとめ

 今回は、スプレッドシートの違うシートに値をコピーする方法をご紹介しました。
 簡単な操作ではありますが、生成AIとGASを使うことで、スプレッドシートを操作する感覚がつかめたらHappyです!

今回は、ここまで。
最後まで読んで頂き、ありがとうございます。

この記事が少しでもお役に立てたのなら、サポートいただけると嬉しいです。頂いたご支援は、今後の活動費やコンテンツの質向上に使わせていただきます。