Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GAS for DTPer -- はじめの一歩
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yusuke S.
June 29, 2019
Technology
1
480
GAS for DTPer -- はじめの一歩
DTP Scripterに向けたGoogle Apps Scriptのはじめの一歩です
Yusuke S.
June 29, 2019
Tweet
Share
More Decks by Yusuke S.
See All by Yusuke S.
InDesignのスクリプトを使い倒そう!
uskes
0
1.1k
[page2020] スクリプトで未然に防ぐInDesignの不具合と作業ミス
uskes
1
2.2k
品質を担保するInDesignスクリプト
uskes
0
350
Other Decks in Technology
See All in Technology
小さく始めるBCP ― 多プロダクト環境で始める最初の一歩
kekke_n
1
510
Webhook best practices for rock solid and resilient deployments
glaforge
2
300
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
830
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.6k
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
480
SchooでVue.js/Nuxtを技術選定している理由
yamanoku
3
160
AI駆動開発を事業のコアに置く
tasukuonizawa
1
340
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
210
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.4k
クレジットカード決済基盤を支えるSRE - 厳格な監査とSRE運用の両立 (SRE Kaigi 2026)
capytan
6
2.8k
AzureでのIaC - Bicep? Terraform? それ早く言ってよ会議
torumakabe
1
590
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
390
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.2k
How to Talk to Developers About Accessibility
jct
2
130
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.6k
We Are The Robots
honzajavorek
0
170
Designing for Timeless Needs
cassininazir
0
130
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
290
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
110
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
170
Game over? The fight for quality and originality in the time of robots
wayneb77
1
120
Transcript
DTPerのスクリプトもくもく会 #13 Uske_S GAS for DTPer はじめの一歩
Uske_S DTPerのスクリプトもくもく会 #13 • GASの概要 • GASでできること • GAS周辺情報 目次
― GAS for DTPer • まずは動かしてみる • オブジェクトモデルの比較 • GASでの値の出し入れ • まとめ
Google Appsとは、 Google が提供するオンラインアプリケーションパック。 Calendar、Gmail、Docs、Drive、Sheets、そしてSlidesなどがあります。 Google Apps Scriptとは、それらAppsを操作するクラウド上の JavaScriptプラットフォームで す。
GAS(Google Apps Script)の概要
今日の目標 1 GASでどんなことができる のか? を知ってもらう 2 スクリプトエディタを 操作できるようになる 3 簡単なスクリプトを
書けるようになるための情 報を整理する
GASでできること • スプレッドシートの内容からメールを作成して送信する • カレンダーの予定をスプレッドシートに記入 • メールの内容を検索してスプレッドシートに一覧表示 • スプレッドシートで使えるオリジナル関数を定義する
GASでできること • スプレッドシートの内容からツイート • connpassのイベントを特定のキーワードで検索して自分宛に定期的にメー ル送信 • ツイートを検索しSlackに内容を投稿
GASの周辺情報 • 公式ドキュメント https://developers.google.com/apps-script/reference/ • コミュニティフォーラム https://groups.google.com/forum/#!forum/google-apps-api-japan • GCPUG(ユーザーグループ) https://gcpug.jp/
GASの周辺情報 • G Suite Developer Hub(Apps Script) https://script.google.com/home ここで開発したスクリプトの一括管理が可能。 新規スクリプト作成もここからできる。
まずは作成してみよう。
まずは動かしてみる 新規スクリプトボタンを押すとスクリプトエディタが起動します。 この myFunction() { } の間にスクリプトを書いていく形になります。
続いてGoogle Driveに新規スプレッドシートを作成します。 開いたスプレッドシートのアドレスからID部分をコピーしましょう。
function setContents() { var ssObj = SpreadsheetApp.openById("[シートID]"); var sheetObj =
ssObj.getActiveSheet(); var rangeObj = sheetObj.getRange("A1"); rangeObj.setValue("Hello, World!"); }; このコードをスクリプトエディタに入力して実行してみましょう。 [シートID] に先ほど作成したスプレッドシートのIDを入力します。
A:保存ボタン(⌘+S) B:トリガーボタン C:実行ボタン D:デバッグボタン E:実行する関数 コンソールログを利用した 場合(後述)は、 ⌘+Enter でログを表示できる
実行すると以下のようなダイアログが出るはずです。 「許可を確認」ボタンを押してください。
以下の流れでスクリプトを承認します。
以下の流れでスクリプトを承認します。
以下の流れでスクリプトを承認します。
以下の流れでスクリプトを承認します。
これで、指定したスプレッドシートの A1セルに値をセットできました。
ログとして何か記録したい場合( ExtendScriptでいうところの$.writeln())は、 Logger.log() メソッドを利用します。
デバッグ中にスクリプトを止めて 変数の値などを確認する場合 は、スクリプトの任意の場所に ブレークポイントを設定してお き、デバッグボタンを使ってデ バッグします。
ExtendScript Application -Document -TextFrame -Contents ExtendScriptとのオブジェクトモデルの比較 Google Sheet SpreadsheetApp -Sheet
-Range -Value
GASでの値(Value)の出し入れ ExtendScriptでは値を代入する、という形で実装しますが、 e. g.) app.activeDocument.textFrames[0].contents = “hoge”; GASではgetter/setterというメソッドの引数に値を渡してセットします。 e. g.)
SpreadsheetApp.getActiveSheet().getDataRange().setValues(hoge); 具体的なメソッドの種類や使い方は公式ドキュメントを参照して下さい。
まとめ • まずはやってみよう! サンプルはネットにゴロゴロ転がっている • オブジェクトモデルが何となく掴めればかんたん • 業務にGoogle Appsを利用していれば業務効率化の効果大