プチ講座

[GAS]スプレッドシート データのコピー

プチ講座 投稿者画像  

前回GoogleAppsScript[GAS]の導入について書いた小林です。

あれから1月、皆さんの生活に変化はあったでしょうか?私は・・・散髪しました。

スプレッドシートのデータのコピー

今回はスプレッドシートのデータのコピーについて書いていきます。

スプレッドシートやExcelを自動化していく中で一度は使いたい場面が出てくると思います。

例えば、ファイルAのデータをファイルBへコピーしたい

そんな時にはこんな方法はどうでしょうか。

以下の様にファイルAとファイルB、2つのファイルがある場合。

シートA画像

ファイルA

シートB画像

ファイルB

 

 

 

 

 

ファイルBのセル[B5]と[C5]にそれぞれファイルAのセル[A2]と[B2]の値をコピーする方法を説明していきます。

スクリプトエディタの起動や、コードの入力画面等については前回やりましたので、今回はいきなりコードの紹介から。

ではいきましょう!!

コードを入力!!・・・

まずは今回入力していただくコードを見て下さい。

コード

意外と短い

あら、意外と短いですね。

では何がしたいのか概要を

function getSheetA(){

var file = DriveApp.getFilesByName(“シートA“);

var sheetA = SpreadsheetApp.open(file.next());

SpreadsheetApp.getActiveSheet().getRange(“B5“).setValue(sheetA.getRange(“A2“).getValue());

SpreadsheetApp.getActiveSheet().getRange(“C5“).setValue(sheetA.getRange(“B2“).getValue());

}

このコードについて順番に説明していきましょう。

1行目・・・var file = DriveApp.getFilesByName(“シートA“);

この部分では、データを取り出したいファイルを指定します。

[シートA]の部分に呼び出したいファイル名を記入します。

※同じ名前のファイルが複数ある場合、思い通りのファイルを取るためにはもうひと手間必要ですが、

今回は割愛します。

2行目・・・var sheetA = SpreadsheetApp.open(file.next());

この部分で指定したファイルを開いています。

3行目・・・SpreadsheetApp.getActiveSheet().getRange(“B5“).setValue(sheetA.getRange(“A2“).getValue());

そしてこの部分でファイルAのセル[B5]のデータをコピーし、ファイルBのセル[A2]へ貼り付けしています。

[B5]の部分にコピーしたいセル番号を記入し、[A2]の部分に貼り付けしたいセル番号を記入します。

4行目・・・SpreadsheetApp.getActiveSheet().getRange(“C5“).setValue(sheetA.getRange(“B2“).getValue());

先程と同じ処理をしています。今度はファイルAのセル[C5]をコピーしファイルBのセル[B2]へ貼り付けしています。

 

ここまで記入できれば実際にコードを実行し、動作を確認してみます。

コードを実行!!

ここでスクリプトエディタ画面を見ると画面の中に[実行]というボタンがあります。

このボタンをクリックし、更に実行したい処理を選んでクリックします。

この時に表示されるのは、コード入力時に最初に入力する、function getSheetA(){・・・の[getSheetA]の部分が表示されます。

※この部分を関数名と呼びます。関数についてはここで説明しています。

実行ボタン画像

ここから実行します

 

 

 

 

 

 

ちなみに、最初に実行する時には、[承認]画面が2度表示されます。

いずれも認証、または続行ボタンを押します。

承認画面1

この画面と

承認画面2

この画面

 

 

 

 

 

後はしばらく待ってファイルBのスプレッドシートを確認すると・・・

 

シートB画面

これが

シートB画面2

こうなる

 

 

 

 

無事にデータをコピーすることが出来ました。

これで別のファイルにデータをコピーすることが出来ました。

今回はここまで、次回はコピーするデータが多い場合に有効な方法について説明します。

それではまた次回!!