SlideShare uma empresa Scribd logo
1 de 29
Copyright © Plannauts,Inc.
【エンジニア交流会】
Google Apps Script活用ミートアップ #3
サイドバー作りのススメ
~ノンプログラマー向けベストプラクティス~
株式会社プランノーツ 高橋 宣成
1
Copyright © Plannauts,Inc. 2
■高橋宣成(タカハシノリアキ)
・1976年5月5日生まれ(41歳)
・東京都板橋区在住
・株式会社プランノーツ代表
・ひとり社長
@ntakahashi0505
noriaki.takahashi.923
n_takahashi0505
自己紹介
Copyright © Plannauts,Inc. 3
ミッション
- Office・VBA
- G Suite・Google Apps Script
- チャットワーク
“日本の『働く』の価値を上げる“
⇒「ITリテラシーが高くない」中小企業・個人への支援
Copyright © Plannauts,Inc.Copyright © Plannauts,Inc. 4
ブログ
いつも隣にITのお仕事
 94万PV/月
 カテゴリ
- Excel・Word・VBA
- G Suite・GAS
- Vue.js・JavaScript
- IT・働き方
Copyright © Plannauts,Inc.Copyright © Plannauts,Inc. 5
著書執筆
ExcelVBAを実務で
使い倒す技術
5刷…そして12,000部突破!
詳解!GoogleAppsScript
完全入門
パーフェクトExcelVBA(仮)
祝!3刷
来春にむけて執筆中!
Copyright © Plannauts,Inc.Copyright © Plannauts,Inc. 6
コミュニティ
ノンプログラマーのための
スキルアップ研究会
~プログラミングを中心としたスキルを
身に着け続ける研究をするための場
■2017/12/01スタート
■メンバー数35名
■コンテンツ
- 月1回の定例会
- 月2会以上の勉強会
- オンラインサポート
- 未発表書籍・記事の共有
- 執筆・登壇・実務等の機会の提供
Copyright © Plannauts,Inc. 7
サイドバーを作ろう!
Copyright © Plannauts,Inc. 8
翻訳サイドバーを作ってみる
Copyright © Plannauts,Inc. 9
●HTMLサービスで作れるUI
●バインドしているSheets・Docs・
Slides・Forms
●開いている間もアプリケーション操作可
●アドオン化して配布
サイドバーとは
Copyright © Plannauts,Inc. 10
プロジェクトの構成
●main.gs …サーバー側
●index.html
●css.html …クライアント側
●js.html
Copyright © Plannauts,Inc. 11
コードの中身
index.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<!-- スタイルシート -->
</head>
<body>
<!-- 表示部分のHTML -->
<!-- フロント側のJavaScript -->
</body>
</html>
main.gs
function showSidebar(){
//サイドバーを表示
}
function onOpen(){
//カスタムメニューを構築・反映
}
function hogeHoge(){
//GASのスクリプト
}
ブラウザで動作 サーバーで動作
Copyright © Plannauts,Inc. 12
表示部分を作る
●main.gs
●index.html
●css.html
●js.html
Copyright © Plannauts,Inc. 13
こちらを拝借していらないところ削る
スタイル用のclassも設定されててありがたい
https://developers.google.com/gsuite/add-ons/guides/css
●スタイル
●ラベル
●テキストエリア
●チェックボックス
●ボタン
●フッター的な
Copyright © Plannauts,Inc. 14
cssとjsはindexに埋め込む
index.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<!-- スタイルシート css.htmlの埋め込み -->
</head>
<body>
<!-- 表示部分のHTML -->
<!-- フロント側のJavaScript js.htmlの埋め込み -->
</body>
</html>
css.html
<link rel="stylesheet" href="https://~">
js.html
<script src="https://cdn~"></script>
<script>
//フロント側の処理
</script>
Copyright © Plannauts,Inc. 15
強制出力スクリプトレットタグ
index.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<?!= HtmlService.createHtmlOutputFromFile('css').getContent(); ?>
</head>
<body>
<!-- 表示部分のHTML -->
<?!= HtmlService.createHtmlOutputFromFile('js').getContent(); ?>
</body>
</html>
Copyright © Plannauts,Inc. 16
ノンプログラマーの敵
●main.gs
●index.html
●css.html
●js.html
Copyright © Plannauts,Inc. 17
スタイル…なきゃないでいいんですが
Copyright © Plannauts,Inc. 18
サイドバー用のスタイルシートあるよ
<link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">
https://developers.google.com/gsuite/add-ons/guides/css
Copyright © Plannauts,Inc. 19
Copyright © Plannauts,Inc. 20
やったことないフロント側
●main.gs
●index.html
●css.html
●js.html
Copyright © Plannauts,Inc.Copyright © Plannauts,Inc. 21
・イベント発生をキャッチ
・DOM要素取得して
・サーバー側に渡して
・サーバー側から受け取って
・DOM要素取得して反映
…なんかめんどい
Copyright © Plannauts,Inc. 22
気になる存在
Copyright © Plannauts,Inc. 23
話すと長くなっちゃうので割愛…!
Copyright © Plannauts,Inc. 24
忘れちゃいけないサーバー側
●main.gs
●index.html
●css.html
●js.html
Copyright © Plannauts,Inc. 25
サイドバーの表示
main.gs
/**
* サイドバーを表示する
*/
function showSidebar(){
var ui = HtmlService.createTemplateFromFile('index').evaluate().setTitle('翻訳サイドバー');
DocumentApp.getUi().showSidebar(ui);
}
Copyright © Plannauts,Inc. 26
動作を見てみましょう
Copyright © Plannauts,Inc. 27
●独自の便利ツール
●アドオンとして配布も可
●フロント側のJSも身につく
サイドバー作りのいいとこ
Copyright © Plannauts,Inc. 28
サイドバー作ってみよう!
Copyright © Plannauts,Inc.
ご清聴ありがとうございました
29

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

20201126GAS活#7「【祝】詳解! Google Apps Script完全入門第2版」
20201126GAS活#7「【祝】詳解! Google Apps Script完全入門第2版」20201126GAS活#7「【祝】詳解! Google Apps Script完全入門第2版」
20201126GAS活#7「【祝】詳解! Google Apps Script完全入門第2版」
 
20170916ブログを強力な武器としてビジネスにインストールすることで独立を成功させた話
20170916ブログを強力な武器としてビジネスにインストールすることで独立を成功させた話20170916ブログを強力な武器としてビジネスにインストールすることで独立を成功させた話
20170916ブログを強力な武器としてビジネスにインストールすることで独立を成功させた話
 
たのしいアノテーション
たのしいアノテーションたのしいアノテーション
たのしいアノテーション
 
5年前の自分たちに伝えておきたいこと モニタリング
5年前の自分たちに伝えておきたいこと   モニタリング 5年前の自分たちに伝えておきたいこと   モニタリング
5年前の自分たちに伝えておきたいこと モニタリング
 
Playcanvas Japan 2019 Activity Report
Playcanvas Japan 2019 Activity ReportPlaycanvas Japan 2019 Activity Report
Playcanvas Japan 2019 Activity Report
 
App Makerってなんぞ
App MakerってなんぞApp Makerってなんぞ
App Makerってなんぞ
 
WordPressのリッチコンテンツを簡単に作れるPlayCanvasセミナー
WordPressのリッチコンテンツを簡単に作れるPlayCanvasセミナーWordPressのリッチコンテンツを簡単に作れるPlayCanvasセミナー
WordPressのリッチコンテンツを簡単に作れるPlayCanvasセミナー
 
App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価
App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価
App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価
 
ビザスクを支える技術 2017
ビザスクを支える技術 2017ビザスクを支える技術 2017
ビザスクを支える技術 2017
 
Google Apps Scriptとは? Add-onとは?
Google Apps Scriptとは? Add-onとは?Google Apps Scriptとは? Add-onとは?
Google Apps Scriptとは? Add-onとは?
 
そのアプリ開発 PowerAppsでやるか否かの指針?(※個人的見解)
そのアプリ開発PowerAppsでやるか否かの指針?(※個人的見解)そのアプリ開発PowerAppsでやるか否かの指針?(※個人的見解)
そのアプリ開発 PowerAppsでやるか否かの指針?(※個人的見解)
 
エンジニア 新年の抱負 超Lt会 vol_5_平山
エンジニア 新年の抱負 超Lt会 vol_5_平山エンジニア 新年の抱負 超Lt会 vol_5_平山
エンジニア 新年の抱負 超Lt会 vol_5_平山
 
画像収集を捗らせたい話
画像収集を捗らせたい話画像収集を捗らせたい話
画像収集を捗らせたい話
 
(株)農業情報設計社の取り組みついて
(株)農業情報設計社の取り組みついて(株)農業情報設計社の取り組みついて
(株)農業情報設計社の取り組みついて
 
国産業務PaaSを担いで稼ぐ方法 ~SIerの生き残る道の1つとなるか? ~
国産業務PaaSを担いで稼ぐ方法 ~SIerの生き残る道の1つとなるか? ~国産業務PaaSを担いで稼ぐ方法 ~SIerの生き残る道の1つとなるか? ~
国産業務PaaSを担いで稼ぐ方法 ~SIerの生き残る道の1つとなるか? ~
 
組織と個人が内発的動機により継続的に成長するための施策
組織と個人が内発的動機により継続的に成長するための施策組織と個人が内発的動機により継続的に成長するための施策
組織と個人が内発的動機により継続的に成長するための施策
 
QnA Maker 逆入門
QnA Maker 逆入門QnA Maker 逆入門
QnA Maker 逆入門
 
Visasq
VisasqVisasq
Visasq
 
【Lychee Redmineユーザ会2020】Redmineの運用成功率の方程式と、Lycheeプロダクトの関係性。 ~本当に酸素ボンベが必要ですか?~
【Lychee Redmineユーザ会2020】Redmineの運用成功率の方程式と、Lycheeプロダクトの関係性。 ~本当に酸素ボンベが必要ですか?~【Lychee Redmineユーザ会2020】Redmineの運用成功率の方程式と、Lycheeプロダクトの関係性。 ~本当に酸素ボンベが必要ですか?~
【Lychee Redmineユーザ会2020】Redmineの運用成功率の方程式と、Lycheeプロダクトの関係性。 ~本当に酸素ボンベが必要ですか?~
 
Firebase Realtime Database を C# から利用する
Firebase Realtime Database を C# から利用するFirebase Realtime Database を C# から利用する
Firebase Realtime Database を C# から利用する
 

Semelhante a 20181017エンジニア交流会GoogleAppsScriptミートアップ#3「サイドバー作りのススメ~ノンプログラマー向けベストプラクティス~

[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -
[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -
[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -
de:code 2017
 

Semelhante a 20181017エンジニア交流会GoogleAppsScriptミートアップ#3「サイドバー作りのススメ~ノンプログラマー向けベストプラクティス~ (20)

20180423ChatWork APIユーザー会「ChatWork APIを使える人を増やす活動」
20180423ChatWork APIユーザー会「ChatWork APIを使える人を増やす活動」20180423ChatWork APIユーザー会「ChatWork APIを使える人を増やす活動」
20180423ChatWork APIユーザー会「ChatWork APIを使える人を増やす活動」
 
激安ITサービスを活用して収益を上げよう!
激安ITサービスを活用して収益を上げよう!激安ITサービスを活用して収益を上げよう!
激安ITサービスを活用して収益を上げよう!
 
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile Development
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile Developmentアジャイルナイトセミナー_2012年10月18日_Social Game x Agile Development
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile Development
 
ドメイン駆動設計 at DDD.rb #5
ドメイン駆動設計 at DDD.rb #5ドメイン駆動設計 at DDD.rb #5
ドメイン駆動設計 at DDD.rb #5
 
Rancherを活用した開発・運用効率の改善への取り組み
Rancherを活用した開発・運用効率の改善への取り組みRancherを活用した開発・運用効率の改善への取り組み
Rancherを活用した開発・運用効率の改善への取り組み
 
株式会社リブセンス会社説明資料(転職エージェント企業様向け)
株式会社リブセンス会社説明資料(転職エージェント企業様向け)株式会社リブセンス会社説明資料(転職エージェント企業様向け)
株式会社リブセンス会社説明資料(転職エージェント企業様向け)
 
20180307 CMC_Meetup vol.8「チャットワークのファーストピンのなり方」
20180307 CMC_Meetup vol.8「チャットワークのファーストピンのなり方」20180307 CMC_Meetup vol.8「チャットワークのファーストピンのなり方」
20180307 CMC_Meetup vol.8「チャットワークのファーストピンのなり方」
 
Trunk運用book
Trunk運用bookTrunk運用book
Trunk運用book
 
AppPotモバイルアプリ開発『内製化』
AppPotモバイルアプリ開発『内製化』AppPotモバイルアプリ開発『内製化』
AppPotモバイルアプリ開発『内製化』
 
なぜ私たちは「効率化」を目指すのか(DeNA Games Tokyo)
なぜ私たちは「効率化」を目指すのか(DeNA Games Tokyo)なぜ私たちは「効率化」を目指すのか(DeNA Games Tokyo)
なぜ私たちは「効率化」を目指すのか(DeNA Games Tokyo)
 
モバイルファーストで業務効率化! ローカルデータベースが作業員を救う!
モバイルファーストで業務効率化! ローカルデータベースが作業員を救う!モバイルファーストで業務効率化! ローカルデータベースが作業員を救う!
モバイルファーストで業務効率化! ローカルデータベースが作業員を救う!
 
顧客要望と情熱のあいだ - B2B SaaS のプロダクトマネジメント -
顧客要望と情熱のあいだ - B2B SaaS のプロダクトマネジメント -顧客要望と情熱のあいだ - B2B SaaS のプロダクトマネジメント -
顧客要望と情熱のあいだ - B2B SaaS のプロダクトマネジメント -
 
Digital Business and Agile
Digital Business and AgileDigital Business and Agile
Digital Business and Agile
 
「らしく」ハタラコウ。 ChatWork x クラウドソーシング
「らしく」ハタラコウ。 ChatWork x クラウドソーシング「らしく」ハタラコウ。 ChatWork x クラウドソーシング
「らしく」ハタラコウ。 ChatWork x クラウドソーシング
 
[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -
[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -
[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -
 
デスクトップ向けUIコンポーネントの対応状況と今後の予定
デスクトップ向けUIコンポーネントの対応状況と今後の予定デスクトップ向けUIコンポーネントの対応状況と今後の予定
デスクトップ向けUIコンポーネントの対応状況と今後の予定
 
オープンソースソフトウェア開発におけるバグ修正活動の課題分析とその解決方法の提案
オープンソースソフトウェア開発におけるバグ修正活動の課題分析とその解決方法の提案オープンソースソフトウェア開発におけるバグ修正活動の課題分析とその解決方法の提案
オープンソースソフトウェア開発におけるバグ修正活動の課題分析とその解決方法の提案
 
[Devsumi2017]オルタナティブなチーム開発のすゝめ
[Devsumi2017]オルタナティブなチーム開発のすゝめ[Devsumi2017]オルタナティブなチーム開発のすゝめ
[Devsumi2017]オルタナティブなチーム開発のすゝめ
 
Spath for enterprise
Spath for enterpriseSpath for enterprise
Spath for enterprise
 
Twilio Meetup Tokyo 2015 Microsoft 講演資料「開発コミュニティでアイディアと仲間を見つけよう!ハッカソンから技術系スター...
Twilio Meetup Tokyo 2015 Microsoft 講演資料「開発コミュニティでアイディアと仲間を見つけよう!ハッカソンから技術系スター...Twilio Meetup Tokyo 2015 Microsoft 講演資料「開発コミュニティでアイディアと仲間を見つけよう!ハッカソンから技術系スター...
Twilio Meetup Tokyo 2015 Microsoft 講演資料「開発コミュニティでアイディアと仲間を見つけよう!ハッカソンから技術系スター...
 

20181017エンジニア交流会GoogleAppsScriptミートアップ#3「サイドバー作りのススメ~ノンプログラマー向けベストプラクティス~

  • 1. Copyright © Plannauts,Inc. 【エンジニア交流会】 Google Apps Script活用ミートアップ #3 サイドバー作りのススメ ~ノンプログラマー向けベストプラクティス~ 株式会社プランノーツ 高橋 宣成 1
  • 2. Copyright © Plannauts,Inc. 2 ■高橋宣成(タカハシノリアキ) ・1976年5月5日生まれ(41歳) ・東京都板橋区在住 ・株式会社プランノーツ代表 ・ひとり社長 @ntakahashi0505 noriaki.takahashi.923 n_takahashi0505 自己紹介
  • 3. Copyright © Plannauts,Inc. 3 ミッション - Office・VBA - G Suite・Google Apps Script - チャットワーク “日本の『働く』の価値を上げる“ ⇒「ITリテラシーが高くない」中小企業・個人への支援
  • 4. Copyright © Plannauts,Inc.Copyright © Plannauts,Inc. 4 ブログ いつも隣にITのお仕事  94万PV/月  カテゴリ - Excel・Word・VBA - G Suite・GAS - Vue.js・JavaScript - IT・働き方
  • 5. Copyright © Plannauts,Inc.Copyright © Plannauts,Inc. 5 著書執筆 ExcelVBAを実務で 使い倒す技術 5刷…そして12,000部突破! 詳解!GoogleAppsScript 完全入門 パーフェクトExcelVBA(仮) 祝!3刷 来春にむけて執筆中!
  • 6. Copyright © Plannauts,Inc.Copyright © Plannauts,Inc. 6 コミュニティ ノンプログラマーのための スキルアップ研究会 ~プログラミングを中心としたスキルを 身に着け続ける研究をするための場 ■2017/12/01スタート ■メンバー数35名 ■コンテンツ - 月1回の定例会 - 月2会以上の勉強会 - オンラインサポート - 未発表書籍・記事の共有 - 執筆・登壇・実務等の機会の提供
  • 7. Copyright © Plannauts,Inc. 7 サイドバーを作ろう!
  • 8. Copyright © Plannauts,Inc. 8 翻訳サイドバーを作ってみる
  • 9. Copyright © Plannauts,Inc. 9 ●HTMLサービスで作れるUI ●バインドしているSheets・Docs・ Slides・Forms ●開いている間もアプリケーション操作可 ●アドオン化して配布 サイドバーとは
  • 10. Copyright © Plannauts,Inc. 10 プロジェクトの構成 ●main.gs …サーバー側 ●index.html ●css.html …クライアント側 ●js.html
  • 11. Copyright © Plannauts,Inc. 11 コードの中身 index.html <!DOCTYPE html> <html> <head> <base target="_top"> <!-- スタイルシート --> </head> <body> <!-- 表示部分のHTML --> <!-- フロント側のJavaScript --> </body> </html> main.gs function showSidebar(){ //サイドバーを表示 } function onOpen(){ //カスタムメニューを構築・反映 } function hogeHoge(){ //GASのスクリプト } ブラウザで動作 サーバーで動作
  • 12. Copyright © Plannauts,Inc. 12 表示部分を作る ●main.gs ●index.html ●css.html ●js.html
  • 13. Copyright © Plannauts,Inc. 13 こちらを拝借していらないところ削る スタイル用のclassも設定されててありがたい https://developers.google.com/gsuite/add-ons/guides/css ●スタイル ●ラベル ●テキストエリア ●チェックボックス ●ボタン ●フッター的な
  • 14. Copyright © Plannauts,Inc. 14 cssとjsはindexに埋め込む index.html <!DOCTYPE html> <html> <head> <base target="_top"> <!-- スタイルシート css.htmlの埋め込み --> </head> <body> <!-- 表示部分のHTML --> <!-- フロント側のJavaScript js.htmlの埋め込み --> </body> </html> css.html <link rel="stylesheet" href="https://~"> js.html <script src="https://cdn~"></script> <script> //フロント側の処理 </script>
  • 15. Copyright © Plannauts,Inc. 15 強制出力スクリプトレットタグ index.html <!DOCTYPE html> <html> <head> <base target="_top"> <?!= HtmlService.createHtmlOutputFromFile('css').getContent(); ?> </head> <body> <!-- 表示部分のHTML --> <?!= HtmlService.createHtmlOutputFromFile('js').getContent(); ?> </body> </html>
  • 16. Copyright © Plannauts,Inc. 16 ノンプログラマーの敵 ●main.gs ●index.html ●css.html ●js.html
  • 17. Copyright © Plannauts,Inc. 17 スタイル…なきゃないでいいんですが
  • 18. Copyright © Plannauts,Inc. 18 サイドバー用のスタイルシートあるよ <link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css"> https://developers.google.com/gsuite/add-ons/guides/css
  • 20. Copyright © Plannauts,Inc. 20 やったことないフロント側 ●main.gs ●index.html ●css.html ●js.html
  • 21. Copyright © Plannauts,Inc.Copyright © Plannauts,Inc. 21 ・イベント発生をキャッチ ・DOM要素取得して ・サーバー側に渡して ・サーバー側から受け取って ・DOM要素取得して反映 …なんかめんどい
  • 22. Copyright © Plannauts,Inc. 22 気になる存在
  • 23. Copyright © Plannauts,Inc. 23 話すと長くなっちゃうので割愛…!
  • 24. Copyright © Plannauts,Inc. 24 忘れちゃいけないサーバー側 ●main.gs ●index.html ●css.html ●js.html
  • 25. Copyright © Plannauts,Inc. 25 サイドバーの表示 main.gs /** * サイドバーを表示する */ function showSidebar(){ var ui = HtmlService.createTemplateFromFile('index').evaluate().setTitle('翻訳サイドバー'); DocumentApp.getUi().showSidebar(ui); }
  • 26. Copyright © Plannauts,Inc. 26 動作を見てみましょう
  • 27. Copyright © Plannauts,Inc. 27 ●独自の便利ツール ●アドオンとして配布も可 ●フロント側のJSも身につく サイドバー作りのいいとこ
  • 28. Copyright © Plannauts,Inc. 28 サイドバー作ってみよう!