マガジンのカバー画像

GAS・Slack・テック系・ノンプロ研

189
GAS・Slack・テック系・ノンプロ研
運営しているクリエイター

#GAS

GAS 初心者向け よくある間違いやエラー、考え方

ノンプログラマ向けにGAS講座を開催したり、問い合わせを受けたりする中で、割とよくある、多くの人が引っ掛かりやすいポイントがあるようなので、つらつら書いてみる。

エラーにビビらない、エラー文をよく読もう精神論(長い)

いきなり精神論的ではあるが、プログラミングにおいてはエラーを出してナンボである。エラーを出さずにコードを書き上げることはまず無い。少なくとも私には無理だ。

エラーは失敗ではない

もっとみる
GASでSlack絵文字(スタンプ)のランキングを投稿するbotを雑に作る

GASでSlack絵文字(スタンプ)のランキングを投稿するbotを雑に作る

GASで作りたいなと思ったので、作ってみます。
Pythonでも作ってみたいけど、まずはGASで。

いいからまずはコードを見せろ、という人はこちらをどうぞ
https://github.com/ymgcmnk/Slack-emoji-ranking-bot

過去事例/類似事例「Slack 絵文字 ランキング」「Slack スタンプ ランキング」「Slack スタンプ 集計」などで検索してみると

もっとみる
Googleサービスは太平洋標準時が基準だっていう話

Googleサービスは太平洋標準時が基準だっていう話

タイトルでEOM(end of message)な感じではありますが。

モノの本にはこう書いてある。

GASのリファレンスには、この記載はない。

https://developers.google.com/apps-script/guides/services/quotas?hl=ja

タカハシさんに、この情報の出所を聞いてみた。

Googleのサポートにも確認してみた。

GASでスプレッドシートの複数行のデータを扱う時の考え方 〜例えばhideRow〜 の続き

前振り
↑これの続き。

こんなツイートがあって、ほほう、気になる。

まずは、素直に、今回のhideRowの3パターンで実行時間を測定してみます。

測定方法consoleクラスを使います。

コードは下記の通り。
コード実行→スプシでUndo(非表示をクリアする)→コード実行スプしで以下略  といった感じで計測しました。

/** * B列 にチェックが付いている行を非表示にする */func

もっとみる
GASでスプレッドシートの複数行のデータを扱う時の考え方 〜例えばhideRow〜

GASでスプレッドシートの複数行のデータを扱う時の考え方 〜例えばhideRow〜

何の話かfor文でgetValueして1行ずつチマチマ処理していると時間が掛かるので、getValuesでごっそりシートの値を取ってきて、判定する値の行に対して一気にメソッドを効かせる方が速いよねっていう話をします。

自分のために、反復メソッドや、考え方、コードの書き方をきちんと理解したいので、言語化して理解を深めたく、頑張って書いてみます。

動画前提となるシートの状態例えば下図のようなスプレ

もっとみる
GASでスプレッドシートの値を元にスライドを作成する。今回は1スライドあたり3枚の画像を挿入する。

GASでスプレッドシートの値を元にスライドを作成する。今回は1スライドあたり3枚の画像を挿入する。

タイトルのものをペアプロ(モブプロ)+AI(ChatGPT)で作成しました。
みんなでわちゃわちゃ喋りながらコードが完成して、すっごい楽しかった!!

みんなで作ったものを、忘れないうちに、さも自分の手柄かのようにnoteにしたためマッスル。

今回の完成形イメージスライド一枚あたりに、画像3つとそれに呼応する単語を挿入します。
単語学習や教育現場で使える感じのものになるんではないでしょうか。

もっとみる

GASでJamf Pro API

考え方とか書き方とか、自分用にメモするぞ。
答えだけ欲しい人はついてこれる内容なのかわからないぞ。

謝辞@iamfreeelover

本当にありがとうございます!
めっちゃ勉強になった!!
頑張ってnote書いてみるけど、まとまるか?

今回やりたいことGASでJamf Pro APIを叩きたい。
Classic APIじゃない方使いたい。
最終的にはPC稼働ログを取ってきたい、と思ったけど、

もっとみる

スプレッドシートの書式設定をいかしたままコピーしてその範囲に0をセットしたい時にどうする問題

お題スプレッドシートのある範囲に数値が入力されている。

単位は%で書式設定されている。

このスプレッドシートをコピーして、入力箇所を全て0%にしたい。

入力箇所は画像のB列だと仮定して、考えてみる。

解決の方向性範囲を指定して、そこに0をセットする。

0でなくて、値をクリアして良いのなら clearContent(); でも良い。

コード例シートのコピーは省略。

//GAS上でran

もっとみる

[Slack × GAS] conversations.rename チャンネル名称を変更する

なんやかんやで名称を一気に変更したい時、ありますよね。
力isパワーでポチポチ手入力で変更しても良いのですが、件数が多くてだるすぎるのでGASでどうにかしたいと考えて試行錯誤しました。

その俺メモ。

まとめると、チャンネルIDを取得して、名称変更したいIDに対してuserOAuthTokenでRenameを効かせる、ってことになる。
ちゃんとリファレンスを読むと、この辺も実は書いてあったんだな

もっとみる
GAS × LastPassAPI スプレッドシートにLastPassに格納されている情報を書き込みたい その6 複数階層のオブジェクトから値を取り出す for...in/forEach (完)

GAS × LastPassAPI スプレッドシートにLastPassに格納されている情報を書き込みたい その6 複数階層のオブジェクトから値を取り出す for...in/forEach (完)

前回

データの構造が見えてきたので、うまいことやって繰り返し処理をして全データを取得していくです。

全体像コード例を先に示します。
説明のためにコメント多めです。

全体的な流れとしては下記の通りです。

レスポンスを得る

整える

スプレッドシートに書き出す

Github

1.レスポンスデータ1-1.レスポンスを得る

function getSharedFolderDataViaLa

もっとみる
GAS × LastPassAPI スプレッドシートにLastPassに格納されている情報を書き込みたい その5 複数階層のオブジェクトから値を取り出す

GAS × LastPassAPI スプレッドシートにLastPassに格納されている情報を書き込みたい その5 複数階層のオブジェクトから値を取り出す

前回

Object.keysやObject.values でオブジェクトのキーやプロパティをとれるのはわかった。で、階層の異なるオブジェクトをどうするんだってところからでした。

そのへんについては、こちらのブログも参考にしました。

ここで、改めて、データの構造を見てみます。

responseとして定義したオブジェクトの中は、 shared folderID(123456のような数字)をキー

もっとみる
GAS × LastPassAPI スプレッドシートにLastPassに格納されている情報を書き込みたい その4 データの加工

GAS × LastPassAPI スプレッドシートにLastPassに格納されている情報を書き込みたい その4 データの加工

前回

レスポンスを得ることはできました。
JSON.parse(response);でオブジェクトにしたデータは下記のような構造になっていました。

{ "12345678": { "sharedfoldername": "hoge", "deleted": false, "score": 50, "users": [ { "username": "hoge@hoge.com"

もっとみる
GAS × LastPassAPI スプレッドシートにLastPassに格納されている情報を書き込みたい その2 HTTPリクエスト

GAS × LastPassAPI スプレッドシートにLastPassに格納されている情報を書き込みたい その2 HTTPリクエスト

前回GASコード情報を得たいので、APIを叩くってやつをやりたい訳です。

GASのコードとしては、結果としては下記のようなもので getsfdata のレスポンスは得ることができています。

function test_getsfdata() { const url = 'https://lastpass.com/enterpriseapi.php'; const scriptPropert

もっとみる