Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
最近のGASのアプデの話をしよう
Search
godan
June 24, 2020
Programming
630
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
最近のGASのアプデの話をしよう
godan
June 24, 2020
More Decks by godan
See All by godan
献立を支える技術
godan
1
130
僕の イベントスタッフ 装備の最適解
godan
2
180
YAPC::Hakodateの映像記録を支える技術
godan
5
690
ミシンと刺繍とOSS
godan
3
210
Nest Hubがある生活
godan
2
130
オンライン配信の始め方
godan
3
220
SOFT SKILLSは定期的に読み返したくな良書
godan
2
120
Discord Embede SDK入門…… してみたかった話
godan
1
590
今年どれだけ本読んだ?
godan
0
150
Other Decks in Programming
See All in Programming
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
370
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
golang-bob.pdf
iwatsukayura
0
130
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
4
4.8k
JRuby: Past, Present, and Future
headius
0
230
AWSに止められる覚悟してますか?
morizo_1984
2
530
mrbgem 三角測量 開発
ogom
0
240
ジョジョの世界をXRで再現する
mofurune
0
150
Are APIs Still Relevant in the AI Era?
soyuka
0
460
The Rails Doctrine Decade
koic
2
570
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
730
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
22
22k
Featured
See All Featured
A better future with KSS
kneath
240
18k
Docker and Python
trallard
47
4.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Large-scale JavaScript Application Architecture
addyosmani
516
110k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
560
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
520
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
300
Embracing the Ebb and Flow
colly
88
5.2k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
810
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
710
ラッコキーワード サービス紹介資料
rakko
1
5.3M
Transcript
最近のアプデの 話をしよう 株式会社ガイアックス ソーシャルメディア事業部 Godan.m
Godan.m Twitter: @godan09 株式会社ガイアックス ソーシャルメディアマーケティング事業部所属 肩書はエンジニア 最近は動画や配信業がメイン 技術ツイートより料理ツイートが 伸びるのが最近の悩み 去年はAppMakerとGASを会計業務周りで
半年以上やってました
最近同人誌を出しました グッドバイ アップメーカー booth.pm またはbookwakerで300円です! 自称AppMaker界隈最期の入門書です。 買っても良いことはないと思います。
さて
最近皆様 GASのアップデートは 追っていらっしゃいますか?
None
祝 V8正式対応
今日はこの話をしません
\気になる方はこちら/ いつも隣にITのお仕事 https://tonari-it.com/gas-v8-runtime/
今日はこっち
Simple Trigger: onSelectionChange(e)
この話をしたかったのですが…
この話をしたかったのですが…
Drawing Class
DrawingClass - 今年4/2に追加された スプレットシートサービスのクラス - スプレットシート上の図形を操作、削除できる
DrawingClass - 実装されているメゾット getContainerInfo() getHeight() getOnAction() getSheet() getWidth() getZIndex() remove()
setHeight(height) setOnAction(macroName) setPosition(RowPos, ColPos, x, y) setWidth(width) setZIndex(zIndex)
とりあえず使ってみる
本日のサンプルは 明日辺りに公開します
シート上の図形をログに書き出す function printDrawingClass() { const drawings =SpreadsheetApp.getActiveSheet().getDrawings(); Logger.log(drawings) }
シート上の図形をログに書き出す
図形のサイズなどを取得する function printDrawSize() { const drawings =SpreadsheetApp.getActiveSheet().getDrawings(); // 縦(pixels) Logger.log(drawings[0].getHeight())
// 横(pixels) Logger.log(drawings[0].getWidth()) // 重なり順(数字が大きいものほど手前になります ) Logger.log(drawings[0].getZIndex()) // 設置されてるシート名 Logger.log(drawings[0].getSheet()) }
図形のサイズなどを取得する
図形の位置を取得する function printDrawPosition() { const drawings =SpreadsheetApp.getActiveSheet().getDrawings(); // 設置されている列番号 Logger.log(drawings[0].getContainerInfo().getAnchorColumn())
// 設置されている行番号 Logger.log(drawings[0].getContainerInfo().getAnchorRow()) // 設置されているセルの左上からどれだけx軸で離れているか(pixcel) Logger.log(drawings[0].getContainerInfo().getOffsetX()) // 設置されているセルの左上からどれだyy軸で離れているか(pixcel) Logger.log(drawings[0].getContainerInfo().getOffsetY()) }
図形の位置を取得する
図形の位置を取得する function moveFigure() { const drawings =SpreadsheetApp.getActiveSheet().getDrawings(); // 高さと横幅変更[ drawings[0].setWidth(200)
drawings[0].setHeight(200) // 場所変更 drawings[0].setPosition(4, 4, 200, 200) }
図形の位置とサイズを変える
図形の位置とサイズを変える
図形の位置とサイズを変える
結構シンプルな作り
図形の追加や複製はできない (やり方を知ってる方いたら教えて下さい )
今後の追加を楽しみにしましょう
Drawing 活用法
正直活用しづらい…
作例1. 重い処理中データが触れないようにする
重い処理中データが触れないようにする function coverCell() { const drawings = SpreadsheetApp. getActiveSheet() .getDrawings();
// 高さと横幅変更[ drawings[0].setWidth(1920) drawings[0].setHeight(1080) // 場所変更 drawings[0].setPosition(1, 1, 0, 0) // … 処理後 … // 高さと横幅変更 drawings[0].setWidth(1) drawings[0].setHeight(1) // 場所変更 drawings[0].setPosition(1, 1, 0, 0) }
重い処理中データが触れないようにする
重い処理中データが触れないようにする
重い処理中データが触れないようにする
重い処理中データが触れないようにする function coverCell() { const drawings = SpreadsheetApp. getActiveSheet() .getDrawings();
// 高さと横幅変更[ drawings[0].setWidth(1920) drawings[0].setHeight(1080) // 場所変更 drawings[0].setPosition(1, 1, 0, 0) // … 処理後 … // 高さと横幅変更 drawings[0].setWidth(1) drawings[0].setHeight(1) // 場所変更 drawings[0].setPosition(1, 1, 0, 0) } ちなみに0を指定すると 450px x 325pxになる
作例2. 重い処理中データの進捗バー
プログレスバーを作る - 枠線を使う場合は想定される縦 横比を使う - 枠線使わなくていいなら使わな いほうが楽です
プログレスバーを作る function progressbar() { const spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); const width
= 500 const Height = 100 const drawings = spreadsheet.getSheetByName('進捗バー ').getDrawings() window = drawings[0] progress = drawings[1] // 初期化 window.setHeight(Height) window.setWidth(width) window.setPosition(1, 1, 0, 0) progress.setHeight(100) progress.setWidth(1) // \進捗ゼロ!/ progress.setPosition(1, 1, 0, 0) for(var i = 1; i <= 100; i++){ progress.setWidth((width/100) * i) } }
プログレスバーを作る
ループ内で描画を繰り返せば アニメーションになる…?
位置が取れて
処理に合わせて位置を変更できる
・
・・
・・・
ゲームが 作れるのでは?
None
デモ
・
・・
・・・
Unityを 使おう
Unityを 使おう