自動化厨のプログラミングメモブログ │ CODE:LIFE

Python/ExcelVBA/JavaScript/Raspberry Piなどで色んなことを自動化

Google Apps Scriptを始める時の心得と最初にやってみるべきこと(この記事はGPT-4が書いています)

試すの遅いよという話なんですけどGPT-4にGASに関する記事を書かせてみました。

今回はわりとシンプルなプロンプトで試しています。

あなたはプログラミングに関するブログをやっているITエンジニアです。
以下の仕様に従ってMarkdown形式で記事を書いてください。

"""
# ターゲット

Google Apps Script初心者

# 記事の内容

Google Apps Scriptを始めるときの心得と最初にやってみるべきこと

# 制約事項
- サンプルコードをいくつか紹介すること
- 活用事例をいくつか紹介すること

"""

感想

  • 内容は薄いけど思ったより自然な内容かつウソは言って無さそう
  • 最初の挨拶が冗長かな?w
  • Google Sheets よりはスプレッドシートと言った方が日本人には伝わりやすいかな?
  • サンプルコードを作れるのは良い
  • 画像などは出してくれないので手順がちょっと伝わりづらい

-- 以下 ChatGPT が生成した文章 --

こんにちは、ITエンジニアのチャットGPTです。プログラミングに関するブログを書いています。今日はGoogle Apps Scriptの初心者向けに、Google Apps Scriptを始める時の心得と最初にやってみるべきことを紹介したいと思います。

Google Apps Scriptとは

Google Apps Script(以下、GAS)は、Googleのクラウド上で動作するJavaScriptベースのスクリプト言語です。GASを使うと、Gmail、Google Sheets、Google Docsなど、Googleの各種サービスをプログラム的に操作することが可能になります。

心得1: GASはJavaScriptベース

GASはJavaScriptベースなので、JavaScriptの基本的な文法を理解しているとスムーズに学べます。特に、変数の扱いやループ処理、関数の定義と呼び出しなどは、JavaScriptとほぼ同じです。

しかし、完全な初心者でも大丈夫です。GASはその特性上、単純な操作でも有用なスクリプトを作成できます。

function helloWorld() {
  Logger.log("Hello, world!");
}

このコードは、GASの基本的な機能を利用して、"Hello, world!"というメッセージをログに出力します。

続きを読む

Notion ページをもとにスライドを生成する Wunderpresentation

上記のスライドは以下の記事をスライドに変換したものです。

Notion に書くだけで発表資料が作れるのでライトニングトークなどにピッタリのツール。

Notion ページをもとにスライドを生成するWunderpresentation

wunderpresentation.com


特徴

  • Notion, Torello, Markdown をいい感じにスライドに変換
  • 変換後のスライドはURLが発行されてそのまま共有可能
  • Update で 最新の Notionページ からデータを取得し直せる
  • ライトモード/ダークモードを閲覧者側で自由に切り替え可能
  • 埋め込み用のHTML自動生成
  • アカウント作成不要
  • プレゼン時の自動スクロール機能

続きを読む

APIで取得したJSONをいい感じにスプレッドシートに展開したい

SlackなどのAPIからJSONデータを取得したあとそれをスプレッドシートに展開する場合、オブジェクトのkeyを一個ずつ指定して二次元配列を作ってシートに展開...みたいなことをやっていました。

しかし、いちいちkeyを指定してやるのが面倒だしコードも見やすくはないのでkeyを全てシートの1行目に展開、対応する値を行ごとにセットする方法を考えてみました。

  • やりたいこと
  • ネストされたJSONをテーブルにするため「フラット化」する
  • 今回の肝になる flattenObj 関数
    • SlackAPIのユーザ情報をスプレッドシートに展開してみる
  • 各ステップの解説
    • 配列内のObjectをフラット化
    • 1つ目の配列のkeyをヘッダーとして定義
    • headers をループして生成した配列を body 配列にまとめる
    • headers と body を結合
    • setValues
  • あとがき

 

やりたいこと

画像左のSlackAPIで取得したユーザデータなどをスプレッドシート上にテーブルとして展開したい。

しかも もとのJSONのパターンに関わらず使い回せるように作っておきたい。

f:id:maru0014:20210621215928p:plain

しかし、単純に配列をループしてObject.keysをループしても profile 以下のデータまでループする作りではないので以下画像のとおりオブジェクトのままセットされちゃいます。

えー、じゃあObjectの中のObject.keysもループしてさらに下の...うーん。

f:id:maru0014:20210621215943p:plain

続きを読む

MacroDroidを使ってSESAMEのステータスをワンボタンで確認する

f:id:maru0014:20210526225616p:plain
サクッとステータス確認。80%くらいあると思ったら意外と減ってた。

昨年IFTTTの有料化によって回避策として投稿した記事にて

「セサミのステータス(バッテリー、ロック状態)をウィジェットボタン一つでわかるようなスクリプトは出来るでしょうか?」

とコメントでリクエストを頂いたので作ってみました。

続きを読む

Rakuten miniとMacroDroidを使って登下校時の通知システムを0円で作る

f:id:maru0014:20210519230606p:plain 誤家庭の子育てITネタです。

メール通知だけの簡単バージョンとAlexaに喋らせる誤家庭バージョンの作り方を書いてみました。

背景

4月から娘が小学校に行き始めました。最初は保護者が一緒に登校して、帰りは先生方が付いて下校するのですが今月からは子供だけで下校することに。

学校までは遠くもないですが、やはり心配ということで登下校時の通知システムを構築しました。

  • 背景
  • MacroDroidとは
  • メール通知マクロを設定
    • 登校メール
    • 下校メール
  • 聞かれそうな質問に予め答えておきます
  • 誤家庭向けのAlexa通知システム
    • 各ノードの設定
    • MacroDroidの設定
    • 登校通知
    • 下校通知
  • 数日動作させてみての感想
続きを読む