今回はGASで別のスプレッドシートを開いたり書き込んだり、コピーしたりする方法っていうのをやっていきたいと思う。GAS使いこなせればスプレッドシートやGmailなどGoogle系のサービスもっと使いこなすことができていいですもんね。まあ今回はスプレッドシートのちょっとしたこと、やっていこう。
GASで別のスプレッドシートを開く方法
GASで別のスプレッドシートを開く方法なんだけど、この別ってなんだろう?今開いているのとは別のスプレッドシートを開きたいっていうことだろうか。GASではいくつかの方法でスプレッドシートを開く方法があると思う。
- アクティブなスプレッドシートを開く・・・getActiveSpreadSheet()
- URLを指定してスプレッドシートを開く・・・openByUrl()
- idを指定してスプレッドシートを開く・・・openById()
今開いているスプレッドシートはgetActiveSpreadで取得できるけど、今開いているものとは別のスプレッドシートを開きたい場合・・・他の2つの方法でそのスプレッドシートをしゅとくするといい。URLを指定して開くかidを指定して開くかですね。
URLを指定してスプレッドシートを開く
URLを指定してスプレッドシートを取得する際に使うのは、openByUrl()を使おう。
var spreadSheet = SpreadsheetApp.openByUrl('スプレッドシートのURL');
URLっていうのは普通にスプレッドシートのURLっていう部分ですね。
ちょろっと書いて実行してみると、取得できていますね。
idを指定してスプレッドシートを開く
idを指定して開く関数はopenById()。idを引数として指定することでそのスプレッドシートを取得することができる。
var spreadSheet = SpreadsheetApp.openById(id);
idってどこだよ?って感じだけど、URLのこの選択している部分。
実行してみても取得できていますね。
getActiveSpreadSheet()でアクティブなスプレッドシートを開く以外には、URLやidを指定して良い感じに開いてやりましょう。
別のスプレッドシートに書き込みする方法
これはアクティブなスプレッドシートでもURLやidを指定して取得したスプレッドシートでも変わらないですよね。書き込むスプレッドシートが変わるだけ。取得したらsetValueなんかで書き込めば書き込める。
var spreadSheet = SpreadsheetApp.openById('1qufbEkCV9GdUZ9ffb6xBtF4lfvG_QEJIcgX_XLaPwZ4');
spreadSheet.getRange("A1").setValue("書き込んだよおおおおおおおおおおおおおおおおおおおおおおおお");
別のスプレッドシートにコピーする方法
人るのスプレッドシートの内容を別のスプレッドシートにコピーする方法。copyTo()っていう関数があるからそれを使おう。まずはコピー元のスプレッドシートとコピー先のスプレッドシートを用意。今回はTodoのスプレッドシートを別のスプレッドシートにコピーしたい。
実際にコードを書いて実行してみる。
function myFunction() {
// コピー元のスプレッドシートを取得
var s1 = SpreadsheetApp.openById('1m4yGPDs4YQVVC7voXTHiDsPTbQ6cW8NJXCFVxfMcOQ8');
// そのスプレッドシートにある最初のシートを取得
var sheet = s1.getSheets()[0];
// コピー先のスプレッドシートを取得
var s2 = SpreadsheetApp.openById('1yJtVmq5U1obSnRUq8ORaiwk02qXMpUGLMHzFj5-bFBg');
// 上記で取得したシートを、そのスプレッドシートにコピー
sheet.copyTo(s2);
}
これを実行すると、コピー先のスプレッドシートにコピー元のスプレッドシートのシートがコピーされる。コピーしたいシートは指定する必要があるけどね。
GASをより学ぶ
アクティブなもの以外の別のスプレッドシートを開く方法や書き込む方法・コピー方法なんかをちょっとやってみたけど、いろいろ関数用意されているから便利でGASいいですね。
- アクティブなスプレッドシートを開く・・・getActiveSpreadSheet()
- URLを指定してスプレッドシートを開く・・・openByUrl()
- idを指定してスプレッドシートを開く・・・openById()
- コピーする・・・copyTo()
- ・・・
面倒なスプレッドシートの作業もGASでプログラム作ってしまえば、どんどん楽になっていくからやってしまおう。
GASで作業自動化・効率化をしたかったら
今回GASを使ってスプレッドシートの操作を自動化するようなことをしたけど、自分でやるのは面倒だったりよくわからなかったりします。そういう場合はスキルを持っている人にやってもらうのも一つの手です。ココナラの作業自動化・効率化カテゴリなんて見てみるといろんな自動化をやってくれそうですよね。
GASを学べるプログラミングスクールもある
本格的にGASを使えるようになりたかったらプログラミングスクールで学んでみるのもいいでしょう。あまりGASを扱っているスクールはないけどあります。