質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

参照

参照は、プログラミングにおいて変数や関数といったメモリ空間上での所在を指示するデータのことを指します。その中にはデータ自体は含まれず、他の場所にある情報を間接的に指示するプログラムです。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

コピー

元のオブジェクトを破壊することなく、オブジェクトの複製を生成することをコピーと呼びます。

Q&A

1回答

1063閲覧

GASを用いてスプレッドシートのコピー&ペーストをしたい。

RaProg

総合スコア0

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

参照

参照は、プログラミングにおいて変数や関数といったメモリ空間上での所在を指示するデータのことを指します。その中にはデータ自体は含まれず、他の場所にある情報を間接的に指示するプログラムです。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

コピー

元のオブジェクトを破壊することなく、オブジェクトの複製を生成することをコピーと呼びます。

0グッド

2クリップ

投稿2021/10/28 15:13

編集2021/10/28 15:17

前提・実現したいこと

・スプレッドシート(参照先)からスプレッドシート(マスターデータ)にGASのコードを用いたコピー&ペーストしたい。また、参照先のデータは適宜更新があるため、その際には適宜コピーペーストをしたい。
・参照先のA列データには個人情報を入れるため、コピーペースト後はセルの情報を削除したい。
・マスターデータには個人情報を保存しておきたいため、A列上でマスターデータに記入のある列には上書きでコピーペーストはしたくない。

発生している問題・エラーメッセージ

コピーペーストを行うことには成功したが、「A列上でマスターデータに記入のある列には上書きでコピーペースト」してしまうため、 参照先で空欄になっているセルも含めてそのまま更新されてしまう。 スプシのイメージ ![スプシのイメージ](b15c6181e96c3d2d9cd8fb2082a9e542.png)

該当のソースコード

GoogleAppsScript

1 function getList() { 2 var ss_copyFrom = SpreadsheetApp.openById('スプレッドシートのアクセスコードキー'); //コピー元のマスターデータのあるスプレッドシート 3 var ss_copyTo = SpreadsheetApp.getActiveSpreadsheet(); 4 5 6 const ss = SpreadsheetApp.openById('スプレッドシートのアクセスコードキー'); 7 var sheet_find = ss.getSheetByName('タブ名'); 8 9 for(let i = 2; i < 5 ;i++ ) { 10 var find_name = sheet_find.getRange(i+1000,2).getValues(); 11 12 if(find_name !== '') { 13 console.log(i) ; 14 15 16 } 17 18 19 20 var sheet_copyFrom = ss_copyFrom.getSheetByName('タブ名'); //コピー元のスプレッドシートの値を抜き出したいシート名 21 var sheet_copyTo = ss_copyTo.getSheetByName('タブ名'); //ペーストする自分のスプレッドシートのシート名 22 23 var lastRow = ss_copyFrom.getLastRow(); //最終行を取得 24 var lastColumn = ss_copyFrom.getLastColumn(); //最終列を取得 25 26 console.log(i) ; 27 28 var copyValue = sheet_copyFrom.getRange(i,1,lastRow,lastColumn).getValues(); //コピー元のシートから値の入っている全範囲をコピー 29 console.log(i) 30 sheet_copyTo.getRange(i,1,lastRow,lastColumn).setValues(copyValue); //自分のシートにコピーした値を全範囲をペースト 31 } 32 }

試したこと

for文以下でセルの空欄を見つけ、空欄のないところからコピー&ペーストするようにプログラムを組もうとしたが、上記の通り狙っていた結果が得られなかった。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

461

2021/11/09 00:05

スプシのイメージ ![スプシのイメージ](b15c6181e96c3d2d9cd8fb2082a9e542.png) を見えるようしていただけないでしょうか
guest

回答1

0

1)
Google Apps Scriptで2つのスプレッドシートの差分を取り出してみる – ???? officeの杜 ????
[https://officeforest.org/wp/2021/01/30/google-apps-script%E3%81%A72%E3%81%A4%E3%81%AE%E3%82%B9%E3%83%97%E3%83%AC%E3%83%83%E3%83%89%E3%82%B7%E3%83%BC%E3%83%88%E3%81%AE%E5%B7%AE%E5%88%86%E3%82%92%E5%8F%96%E3%82%8A%E5%87%BA%E3%81%97%E3%81%A6/]
を参考にされるのがよいとおもいます。

2)このようなケースでは、データベースを利用した方が楽だと思います。kintoneなど。

投稿2021/11/09 00:22

編集2021/11/09 00:42
461

総合スコア76

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問