はじめに
本シリーズでは、GASの始め方や便利な使い方、ビジネス活用まで幅広く解説します。シリーズをひと通り読んでいただければ、あなたもきっとGASマスターになれるはずです。
シリーズの対象者
- そもそもGASってなんだかわからない方
- GASを学びたいけど何から始めればいいかわからない方
- GASはわかり始めたけど、もっと活用ができないかと模索している方
- とにかくGoogleが好き! という方
前回記事
GASからサービスを操作する
では早速始めていきましょう。【0からGASを学ぶ】シリーズの第2回は「GASからGoogleの各種サービスにアクセスしてみよう」です。
GASからアクセス
前回はGASエディタを開くまでやりました。今回はそのエディタ上にプログラムを記述して、Googleの各種サービスを操作してみましょう。とは言ってもちょっと操作するくらいです、複雑なことはまた次回以降に!
なお、単純にアクセスするだけならばコンテナバインド型の方が簡単ですが、あえてスタンドアロン型でやってみましょう。複数サービスを同一のGASから操作する場合は、自ずとスタンドアロン型の記述が必要となります。
スタンドアロン型とコンテナバインド型の違いはこちらから
事前準備
今回は、Googleスプレッドシート
、Googleドキュメント
、Googleスライド
、Googleフォーム
それぞれにアクセスしますので、以下のような状態を作ってください。
スタンドアロン型でアクセスする場合は、各種サービスとGASが紐づいていないため、予め各種サービスを作成しておく必要があります。
※すでにアクセスしたいファイルが決まっている場合は新規に作成する必要はありません。
各ファイルのIDを取得
Googleスプレッドシート
、Googleドキュメント
、Googleスライド
、Googleフォーム
にはそれぞれに一意なID(文字、数字、ハイフン、アンダースコアから成る一意の値)が割り振られています。この一意のIDはファイルのURLから確認できますので、それを取得(コピー) しておいてください。
※この例でいうと、四角で囲った1xjdjN2uJefWlyN87SScPsnahWJ_NEVEuHiDxxBElPdU
がIDとなります。
GASエディタを開く
繰り返しになりますが、今回はスタンドアロン型で開きますので、こちらを参考にGASエディタを起動してください。では、どんどんいきますよ、ついてきてください。
Googleスプレッドシート編
function Qiita002_SpreadSheet() {
// スプレッドシートクラスを用いて、IDを指定してファイルにアクセスする
let wSpread = SpreadsheetApp.openById('1xjdjN2uJefWlyN87SScPsnahWJ_NEVEuHiDxxBElPdU');
// 対象スプレッドシートの1番目のシートにアクセスする
let wSheet = wSpread.getSheets()[0];
// "シート1"にアクセスする場合など名称確定の場合は、以下でもOK
// let wSheet = wSpread.getSheetByName('シート1');
// 試しにC2セル(2行3列目)にQiitaと入力する
wSheet.getRange(2, 3).setValue('Qiita');
}
上記のプログラムを実行すると、対象のスプレッドシートのC2セルにQiitaと出力されます。
Googleドキュメント編
function Qiita002_Document() {
// ドキュメントクラスを用いて、IDを指定してファイルにアクセスする
let wDocument = DocumentApp.openById('1cb8sBXasR2WFmx_o5FvCNJJ48fP8Gm-tU7gk7-RUGnE');
// 試しに、対象ドキュメントに段落を追加してQiitaと入力する
wDocument.getBody().appendParagraph('Qiita');
}
上記のプログラムを実行すると、対象ドキュメントにQiitaと出力されます。
Googleスライド編
function Qiita002_Slide() {
// スライドクラスを用いて、IDを指定してファイルにアクセスする
let wSlides = SlidesApp.openById('1y0GdnbOrb6emJTm1bT-uCT-mqUyQobNu_HC189MH-LQ');
// スライドの1ページ目を取得する
let wSlide = wSlides.getSlides()[0];
// 試しに1ページ目に設定されているテキストボックスや図形オブジェクトの数を取得する
console.log(wSlide.getShapes().length);
// 1ページ目の1つ目のオブジェクトにQiitaと設定する
wSlide.getShapes()[0].getText().setText('Qiita');
}
上記のプログラムを実行すると、対象スライドの1スライド目のタイトルにQiitaと出力されます。
Googleフォーム編
function Qiita002_Form() {
// フォームクラスを用いて、IDを指定してファイルにアクセスする
let wForm = FormApp.openById('15cpfIgLpqWnE2tK7gNlCAarNPFYnePNOXFPfsWlhKLU');
// フォームに'Qiitaについてどう思うか'の質問文を追加する
wForm.addParagraphTextItem().setTitle('Qiitaについてどう思いますか')
.setRequired(true)
.setHelpText('できるだけ詳しく記載して下さい');
}
上記のプログラムを実行すると、対象フォームに質問「Qiitaについてどう思いますか」がテキスト形式の必須回答項目として追加されます。
これらをコンテナバインド型で記述すると?
以下は各種サービスからGASエディタを開いたと仮定した場合の記述になります。そのため、例えばQiita002_BindingSpreadSheet
メソッドを、Googleドキュメントから開いたGASで実行しても実行エラーが発生します。
function Qiita002_BindingSpreadSheet() {
// バインディングしているスプレッドシートを取得する
let wSpread = SpreadsheetApp.getActiveSpreadsheet();
// 対象スプレッドシートの1番目のシートにアクセスする
let wSheet = wSpread.getSheets()[0];
// "シート1"にアクセスする場合など名称確定の場合は、以下でもOK
// let wSheet = wSpread.getSheetByName('シート1');
// 試しにC2セル(2行3列目)にQiitaと入力する
wSheet.getRange(2, 3).setValue('Qiita');
}
function Qiita002_BindingDocument() {
// バインディングしているドキュメントを取得する
let wDocument = DocumentApp.getActiveDocument();
// 試しに、対象ドキュメントに段落を追加してQiitaと入力する
wDocument.getBody().appendParagraph('Qiita');
}
function Qiita002_BindingSlide() {
// バインディングしているスライドを取得する
let wSlides = SlidesApp.getActivePresentation();
// スライドの1ページ目を取得する
let wSlide = wSlides.getSlides()[0];
// 試しに1ページ目に設定されているテキストボックスや図形オブジェクトの数を取得する
console.log(wSlide.getShapes().length);
// 1ページ目の1つ目のオブジェクトにQiitaと設定する
wSlide.getShapes()[0].getText().setText('Qiita');
}
function Qiita002_BindingForm() {
// バインディングしているフォームを取得する
let wForm = FormApp.getActiveForm();
// フォームに'Qiitaについてどう思うか'の質問文を追加する
wForm.addParagraphTextItem().setTitle('Qiitaについてどう思いますか')
.setRequired(true)
.setHelpText('できるだけ詳しく記載して下さい');
}
各クラスのリファレンス
今回アクセスしたGoogleスプレッドシート
、Googleドキュメント
、Googleスライド
、Googleフォーム
について、簡単な操作方法を示しました。次回以降では各クラス(特によく使われるGoogleスプレッドシートとGoogleフォームを重点的)の詳細な活用方法をどんどん記載していきますが、少しでも予習しておきたい方は以下から各クラスのリファレンスを学んでみてください。
SpreadsheetApp
DocumentApp
SlidesApp
FormApp
安心してください。こーゆーリファレンスが苦手な人でも本シリーズを読み続けていただければ、必ずGASマスターに近づけます。
コンテナバインドの存在しないサービス
GASでプログラムを書いていると頻繁に使用するものの、コンテナバインド型が存在しないサービスもいくつかあります。代表的なものでいうとGoogleカレンダー
、Googleドライブ
、Gmail
の3つです。これらの簡単な使い方は次回にしましょう。
おわりに
お疲れ様でした。
第2回は「GASからGoogleの各種サービスにアクセスしてみよう」ということで、少しだけですがGASに触れることができたのではないでしょうか。まだまだ序盤なので、長い道のりに感じるかもしれません。しかしながらすべてはここからです。まずはGASで各種サービスにアクセスをする、そしてデータを取得したり、編集したり、データに応じて別サービスを動かしたりなど、やりたいことを想像しながら学んでいきましょう。
記事を読んで、「良いな」や「今後に期待できる!」と感じて頂けたらいいねやフォロー、コメントいただけると幸いです。それではまた次回をお楽しみに!