![ママリ](https://cdn-mamari.imgix.net/static/mamariQ/img/common/default_icon.1b2bca45.png?auto=compress,format&lossless=0&q=90)
Google Apps Script (GAS)について詳しい方にお助けいただきたいです。GSSでの業務が多く、importrange関数のエラーに悩んでいます。GASでのデータ処理方法が知りたいです。
Google Apps Script (GAS)に詳しい方教えてください😣
5年以上ぶりに働き始めた職場は全ての業務がGSSでした。
データ収集に時間がかかっており、同じデータを使って違うシートで集計することも多いのですがデータが多すぎてimportrange関数はエラーが出るので、2〜3列毎に数式を入れていかなければなりません…
データが重くなるので関数は残しておきたくないのですが、毎日複数列に入力するのも手間でそのままにしているので固まることもあります😣
かと言って全てのシートにインポートするのも手間です💦
ExcelVBAはできるのですが、GASもJava Scriptも門外漢です。
今日GASの本を立ち読みしてみたら概念は理解できるのですがVBAと違いすぎてどこから手を付けたら良いのかもわかりません😭
VBAだとファイル名とシート名を指定して、範囲を指定して、.copyからの.pasteでコピペできるのですが、GASだとどうなるのでしょうか??
openByUrlでファイル指定して、getSheetByNameでシート指定するまでは何となくわかったのですが、それで合ってますか??
そしてその後にどうやったら指定範囲をコピーして特定のシートにペーストできるのでしょうか??
データ範囲はシート全てでも大丈夫です😣🙏
- ママリ
コメント
![はじめてのママリ🔰](https://cdn-mamari.imgix.net/static/mamariQ/img/common/default_icon.1b2bca45.png?auto=compress,format&lossless=0&q=90)
はじめてのママリ🔰
公式リファレンス読むのが一番良いですよ😄
getSheetByNameで返ってくるのは、Sheet型なので、その型がどんなメソッドを提供しているのか見れば良いです👀
Sheet型にgetRange(row, column) のメソッドがあるので、それを使って範囲を取得ができます
返ってくるのは、Range型なので、Range型が提供するメソッドを確認します
copyTo(destination)というメソッドがあるので、それ使ってコピーができます
リファレンスのcopyToのところに記載されているサンプル貼っておきますね
var sheet = SpreadsheetApp.getActiveSheet();
var rangeToCopy = sheet.getRange(1, 1, sheet.getMaxRows(), 5);
rangeToCopy.copyTo(sheet.getRange(1, 6));
サンプルでは、アクティブシートになっていますが、ここはgetSheetByNameにかえて良いです
rangeToCopy.copyTo(sheet.getRange(1, 6));
このsheetの部分は、コピー先のsheetにかえる必要があります
あとは適宜範囲の場所をかえれば良いと思います!
ママリ
とってもわかりやすく教えていただきありがとうございます😍
今日早速やってみます!!