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
Yusuke S.
June 29, 2019
Technology
1
470
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
1k
[page2020] スクリプトで未然に防ぐInDesignの不具合と作業ミス
uskes
1
2.1k
品質を担保するInDesignスクリプト
uskes
0
320
Other Decks in Technology
See All in Technology
初めてのAzure FunctionsをClaude Codeで作ってみた / My first Azure Functions using Claude Code
hideakiaoyagi
1
190
キャディでのApache Iceberg, Trino採用事例 -Apache Iceberg and Trino Usecase in CADDi--
caddi_eng
0
180
【TiDB GAME DAY 2025】Shadowverse: Worlds Beyond にみる TiDB 活用術
cygames
0
910
25分で解説する「最小権限の原則」を実現するための AWS「ポリシー」大全 / 20250625-aws-summit-aws-policy
opelab
8
860
“社内”だけで完結していた私が、AWS Community Builder になるまで
nagisa53
1
250
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
1
410
LinkX_GitHubを基点にした_AI時代のプロジェクトマネジメント.pdf
iotcomjpadmin
0
160
本当に使える?AutoUpgrade の新機能を実践検証してみた
oracle4engineer
PRO
1
130
菸酒生在 LINE Taiwan 的後端雙刀流
line_developers_tw
PRO
0
1.1k
~宇宙最速~2025年AWS Summit レポート
satodesu
1
1.5k
IIWレポートからみるID業界で話題のMCP
fujie
0
740
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
2
220
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
71
4.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
490
BBQ
matthewcrist
89
9.7k
Building an army of robots
kneath
306
45k
Balancing Empowerment & Direction
lara
1
350
Speed Design
sergeychernyshev
31
1k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Thoughts on Productivity
jonyablonski
69
4.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.5k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.4k
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を利用していれば業務効率化の効果大