見出し画像

事前課題その1 ノンプロ研 初心者向けプログラミング講座【GASコース第9期】


ノンプロ研入会・講座を受けた経緯

GASを体系的にちゃんと勉強したいな、と思ってノンプロ研に入ってみた。

紹介割引あるみたいなので、もし気になっている方いらしたらお声掛けください。怪しい壺や水を売りつけたりしないので安心してください。

仕事でGoogleWorkspaceやslackを活用するようになり、より便利に、ラクにしたい欲が高まっていた。ググれば便利なスクリプトを公開している方もいて、それをありがたく使わせてもらっていたが、カスタマイズや自作したくなったり、アレンジしたときに上手くいかないことも増えてきた。そんな時に人から下記の書籍を薦められた。

完全入門は、まずはこれを読め的位置づけだった。
目的別リファレンスは、実地でもつかえそうなサンプルコートがあるので、それを写経したりできて良い(まだ一個しか写経してないけど)。

完全入門をパラパラめくっていると、著者が主催する勉強会があることを知った。で、それがノンプロ研だった。そして、【オンライン開催】初心者向けプログラミング講座【GASコース第9期】に申し込んだ。

講座自体は5/7(金)開始だが、2週間前となる4/23に(金)に事前課題の発表があった。事前課題の完了を前提に講座は進んでいくとのことなので、がんばるぞー。以下、事前課題をどうやっていったか覚え書き。どうでもいい雑談ネタも書き散らしていますのでご容赦ください。


事前課題以前

4月にノンプロ研に入り、まずは面白そうな卒業LTにいくつか参加してみた。それぞれの領域で、工夫されていて刺激を受ける。こんな使い方もあるのか~と夢が膨らむ。よくわからずZoomに参加して、最初にアイスブレイクタイムがあり喋ることになった時は、今日は視聴のみで喋ることないだろと勝手に完全に油断し人前に出られる格好をしていなかったので焦った。音声のみで参加した(ビデオ必須ではないです)。コミュニティのメインとしてslackが活用されており馴染みやすく使いやすくで良いと感じた。教え合う、高め合う雰囲気のコミュニティというのは稀有で大事にしたい。

【課題1】自己紹介&「実現したいこと」を発表

画像1

slackの指定スレッドに書き込んでいく形で発表。
自分は、文字だけだとうまく書けそうになかったので、スライドを用意してそのリンクを貼り付けた。個人情報もあるのでそのスライドはここでは割愛。
「実現したいこと」は、現段階で以下の通り。

1.フォームに来た問い合わせをポチっとやってメール下書きをラクにしたい。
2.フォーム回答で入力されたものをスプシにからいい感じにポチっとやってラクに請求書にしたい。
3.指定の日時にあらかじめ用意したメールを送りたい(GAS?
4.slackのAPI叩けばなんかいい感じでできますよってやつを取り入れたい。botとか(GASではないが)

~あとは言語化、定式化、うまく言えないもの、もやもや~としているもの多数

もちっとなんか調べればできそうなレベルのものもあるが、日々の業務で後回しになっていることも多いので、本腰入れてどうにかしたいなあ。

【課題2】動画の閲覧

「プログラミング上達のための8つの約束」について。これはどの分野にも言えることだと思うが、習得したいスキルについては、質・量ともに必要な時間を掛けて地道にやるのが王道だと感じる。1万時間の法則とかもあるけれど、学問に王道なし、そして楽しんでやってるやつが強い。マルチモニタ、でかいモニタは正義。コロナを機に在宅メインになり、32インチ(たぶん32インチ)のモニタを自宅に拵えて大変快適。買う時は大きすぎるかな?と心配だったが、そんなことはなかった。もっと大きくてもよかったかも。作業効率に直結するのでモニタはでかいのを買うべし。

1実務で使う
仕事でGoogle Workspace(GWS)絶賛使用中。ゴリゴリ実務で使うぞ!

2習慣化する
Googleカレンダに枠取り、ノンプロ研の課題でペースを掴みたい。
朝弱いんだよなあ...:眠い:
タイピングもうまくなりたい

3構文どおりに書く
4調べる
これ、ここが課題と感じている。
調べるにしても、それを表す言葉がわからなかったりする。

5打たない
再利用、使いまわし万歳。

6構造化データ
セル結合禁止。
Excelもスプシも、データベースなんじゃあああ

7リーダブルコード
html,cssでやったことが活かせそう?本も買た。


8アウトプット
・twitter,noteでがんばります。
・GWS導入時やslackどう社内勉強会を勝手に(?)開催したりしてます。
【人は教えることによって、もっともよく学ぶ】 セネカ
というのを思い出しました。


【課題3-1】「いつも隣にITのお仕事」チュートリアル

<ジャブ>超初心者へGoogleAppsScriptを始めるメリットをこれでもかと説明します を熟読。

「GASはGoogleサーバー上で動く」「開発環境が不要」これは初学者、ノンプログラマーにとってうれしい、やさしい。開発環境を用意するというのが、まずひとつの関門だったりすると思う。cloudナインじゃなくて、なんだったけ、あれ、なんかcloudでできたやつ、数年前にあった、あれ、なんだっったけかなあ、あーでも、あれはhtmlとCSSだったか、それだったらchromeの検証ツールとかメモ帳でもできるからいいか、何の話だったっけ?

IFTTTはTwitterのエゴサで活用しているが、そのほかの活用はまだよくわからん。



<手を動かす>
【保存版】初心者向け実務で使えるGoogle Apps Script完全マニュアル

特に「連載目次:超初心者向けGASでBotを作りながら基礎を学ぶ」の1~6にについて、読みつつ、実際に動かしつつ。改めて基礎、基本をさらう感じ。

1.【初心者向けGAS】本当の最初の一歩!スクリプトエディタでプロジェクトを開く

基本的にコンテナバインドでしか使ったことがないので、スタンドアロンの使い方イメージが現時点では希薄。スタンドアロンってみんなどこで覚えた?あなたのスタンドアロンはどこから?私は攻殻機動隊から。攻殻機動隊はプログラム教育の必須教養だとおもいます。


2.【初心者向けGAS】はじめてのスクリプトを作成し、保存し、実行する

自動保存でないところは注意。ちゃんと黄色く示してくれているのはありがたいよね。こういう、画面UIという意味ではゲームは素晴らしい、でそれを逆輸入的にビジネス現場でも広く用いられ活用されているのが最近の潮流なんかしら。個人的に、ゲームに親しんでいる子のほうがオンライン授業に馴染みやすいというのも、そらそうだろうなと思う。教育方針でゲームさせないご家庭もあるとは思うが、ゲームもパソコンもプログラムが走って動いているものには変わりないので、ゲームから入るってのもいいと思うんだけどな。子供いないので知らんけど。

画像3

フロッピーマーク=保存はこの先も続くのか?


3.【初心者向けGAS】プログラミングに必須の変数&定数の使い方とデータ型について

出た。変数、定数。分かるような分からないようなやつ。恋と愛の違い的な。恋は上書きできるけど、愛は不変なんですよ。???。違いますかね。

画像3

↑こういう、定義わすれ、書き忘れをよくやる。注意力散漫だからかな。

画像4

↑末尾のセミコロンを入れ忘れても、GAS君は賢いので読み取ってはくれているようだ。

不変の定数。const。
英語のconstantは
名詞として a situation that does not change. とある。
形容詞としては occurring continuously over a period of time. 愛は絶え間なく流れているイメージですね。違いますかね。

画像5


リテラル

literal 文字通り、字義通り、といったところか。Excelでいうところの表示形式で数値や文字列のようなイメージか。うーん、違うか?

画像7



4.【初心者向けGAS】ログを表示するconsole.logの使い方とテンプレート文字列

ログ出力は、何か素敵な業務の自動化を実現するわけではありません。

では、何に使うかと言うと、開発中やデバッグ中に、変数やプロパティの値などを出力して、スクリプトの動作が正しいかどうかといったことを確認するために活用します。

大変お世話になるはずです。

こまめに利用しながら、開発を進めるようにしましょう。

いろいろなプログラミングで見かける気がするconsole.logの真価をいまいちわかっていないが、この先に期待。
テンプレート文字列うまく使えるかな...力技でめんどいの書いちゃいそう...。


5.【初心者向けGAS】スクリプト実行時の「承認」でびっくりしないために

Googleさんも自分とこのサービスなのに「安全ではないページ」ってのもなんか変な気がするが、よからぬスクリプトも世の中にはあるから、注意せえよってことかしら。

Uiクラス

よくわからんが、まあやってみた。varになってるから、今後はこれをconstにしないとかな(V8対応)

画像7

こうなった。

画像8

名前を入れてもそれが保存、格納される機構はこのサンプルスクリプトにはない。名前の収集はともかく、はい、いいえは、メール送信ツールの際に使ってるアレかなあ。アレこと微風さんのツール↓



6.【初心者向けGAS】Spreadsheetサービスの「オブジェクト」の基礎の基礎を知ろう

さて、これまでの記事では、基礎中の基礎過ぎて、Botの香りは全然なかったんですが、今回からようやくBotっぽさ出していきますよ!

タカハシさん、よくわかってらっしゃる......。プログラミング系学習のとき、便利な素敵なものを作りたいのに、関数?変数?定数?って話が延々続いて嫌になったことありません?私はある。そういうのが大事で基本だというのはわかる、わかるが、とにかく今すぐこれを何とかしたい、とゆーときに、ええいうるさーい、となったりする。結局は、それをちゃんと理解するのが近道というか正道なのだろうけど。

話が脇道に逸れるついでに、例えば、ベクトルの傾きとかなんとかの数学の話がピンとこなかったが、3D座標において相似のデータを取るときの使えるというのを知って、そういう具体的なやつ、もっと早く知りたかった~と思った。学問、アカデミア色が強いと、各論、基本をじっくりやって、で、それらを使ってこれができます、みたいなことになることが多いような気がする。カレー作るときに、カレーの歴史、具材の産地、栄養価、調理器具の扱い、火力の定義をそれぞれじっくりやってから、いよいよカレー作る感じ。でも、私はいますぐカレー作って食べたい、みたいな。いいからまず作らせてくれ、具体的にそれがどうなるのか知りたいというような。抽象思考能力が弱くて、近視眼的な人間なのかもしれない。すぐ身に付くものは陳腐化も早い。


さて、Bot作成。オブジェクト。
Spreadsheetという親、でかい箱があって、その中にSheetがって、さらにその中にRangeがあるよ、という感じかな。

以降、その2に続く。はず。
↓続き





いただいたサポートで、書籍代や勉強費用にしたり、美味しいもの食べたりします!