Uニヴェルス

プログラミングの学習記録や日常のあれこれを書き残しておこうと思います。よろしくお願いし…

Uニヴェルス

プログラミングの学習記録や日常のあれこれを書き残しておこうと思います。よろしくお願いします~!

最近の記事

GASでスプレッドシートに関数を埋め込む

[懺悔] 春の卒業LTでは面倒すぎて説明を諦めた内容をここに書き残し、スッキリして年を越したいと思います^^* スプレッドシート関数は便利ですが、定期的に多数のシートに適用したい場合にはシートのコピーだけでも面倒ですよね。 各シートで少しずつ規則的に関数を変えたい場合も手修正では手間がかかります。 そこでGASでシートに自動で関数を埋め込んで集約的に管理しています。 そうすると、GASのGSファイルさえ見れば、どのセルにどのような関数を埋め込んだのか、その意図はなんだ

    • [GAS]スプレッドシートが編集された時にトリガーでメール通知(自分に編集権限がないスプシの場合)

      自分に編集権限がないスプレッドシートの場合、コンテナバインドのGASのコードでトリガーを設定することはできなさそうです。 そんな時も、以下のようなスタンドアロン(もしくは自分が編集できるスプレッドシートのコンテナバインド)でインストーラブルトリガーを設定するGASを書けば、特定のスプレッドシートが編集された時にメール通知を受け取ることができそうです。(大雑把にいうと、シンプルトリガーは基本コンテナバインド、インストーラブルトリガーはそうでなくてもOKなイメージ) スプレッ

      • 【GAS】ファイルのコピーを複数作成し、ファイル名を順につけ、フォルダに保存するコード

        GAS(Google Apps Script)で、元ファイルを複数コピーし、スプシにリストアップしてあるファイル名を順につけ、指定フォルダに保存するコードはどう書くの?という質問を見かけたので、書いてみました~↓ /** * あるファイルのコピーを、ファイル名リストに記載されたファイル名の数だけ作成し、 * コピーした各ファイルにリストから名前をつけ、指定のフォルダに保存するコード * (前提)ファイル名は「ファイル名リスト」というシートに、縦一列に詰めて記載しておいてくだ

        • chatGPTにお片付けを頼んだら?

          噂のchatGPT、とても優秀なようなので、今回、コードを書くお題と、お片付けという無理難題と、両方でお試ししてみました。 コードの方は予想通りの腕前を披露してくれました。 一方、お片付けの方は、porfessionally friendly に(ていよく感じよく)代替のヘルプを申し出られました。つまり、もとの依頼は断られました。笑 ここから、確かにロボットがもしも人の言うことを何でも聞いてしまったら、万人の万人に対する代理闘争の大変な状況になってしまうかも、と思い当た

        GASでスプレッドシートに関数を埋め込む

          【GAS】正規表現で日付表示を拾ってみた(自分用メモ)

          概要GASのコードの中で正規表現を使って、googleカレンダーに記載された文字列のうちの特定の部分を消す、という作業をする必要があり、正規表現について少し勉強してみましたので、備忘をこちらに置いておこうと思います。 正規表現が正しいかどうかの判定は、こちらのサイトのお世話になりました。 学習記録ですので、何かお気づきの点がおありでしたら、ご指摘いただけますと幸いです。 【2022/9/23追記】正規表現チェッカーの対応ページのURLに誤りがありましたので修正しました。申し

          【GAS】正規表現で日付表示を拾ってみた(自分用メモ)

          Midjourneyで画像を作ったら常識が常識でないことに気づいた話【AI】

          話題のMidjourneyで何か描かせてみたい!そこで、自分が所属しているコミュニティの1つを表現してみようと思い立ちました。私の中でのそのコミュニティのイメージは、「楽しく助け合いながらプログラミングを学んでいる」。 そこで、AIへの指示をこんな感じで書いてみました。↓ 1作目メモしておくのを忘れていたのですが、ざっくりとこんな感じで指示(日本語で書いてもいいのを知らなかったので、実際は英語で書きました)。 出てきた結果がこちら~!www 左上:え、、、ム、ムンク?

          Midjourneyで画像を作ったら常識が常識でないことに気づいた話【AI】

          【GAS】Sheetクラスを書き始めてみた(学習記録)

          受講しているGAS講座の中で、スプレッドシートのシート内のある列のどのインデックスに、求める文字列が含まれるかどうかを返す関数を書く、という課題がありました。 これをきっかけに、クラスを書く練習として、シートの列と探す文字列を指定すると、そのインデックスを返すメソッドを持つクラスSheetを作成してみました。 まずは、課題に特化した最低限のクラスになっていますが、今後、少しずつ機能を追加したり、スマートな書き方を覚えたりして、より便利にしていけたらと思っています。 クラ

          【GAS】Sheetクラスを書き始めてみた(学習記録)

          【GAS】Slackのチャンネルリストを書き出すコード2通りとページ送りのメモ

          概要GASで、APIを利用してSlackのチャンネル情報を取得し、指定した情報をアクティブシートに書き出す関数を2通り書いたのでメモしてみました。記事の最後に、ページを巡回しながらfetchしていく考え方についてもメモしています。 実行結果実行結果はこのような感じ。 特徴チャンネル数が多くても、全ページを巡回し、すべてのチャンネルのリストを取得していくコードです。 前提slackのBotへの権限付与やトークンの取得は済んでいるという前提です。 まだの場合は、slack

          【GAS】Slackのチャンネルリストを書き出すコード2通りとページ送りのメモ

          【GAS】filterとmatchの超カンタン!組み合わせ実験(自分用メモ)

          はじめに filterメソッドについて、LINE BOTに実装する前に簡単な実験をしていたので、その時のメモを残しておきます。 filterメソッドとmatchメソッド filterメソッドは、配列の各要素について、コールバック関数の戻り値が真もしくは暗黙の型変換で真となる場合、その要素を戻り値の配列に追加します。(参考文献『JavaScript』(D.Flanagan, 第7版, P182)) matchメソッドは、マッチがあれば配列(暗黙の型変換で真)を返し、マッチ

          【GAS】filterとmatchの超カンタン!組み合わせ実験(自分用メモ)

          【GAS】YouTubeチャンネルの動画リストを書き出す

          概要 YouTubeチャンネル内の動画リストをgoogleスプレッドシートのアクティブシートに書き出すGASのコードです。 動画の公開時系列順に、公開日付、タイトル、動画URL、サムネイルURLを取得します。 関数の切り分けや例外処理でもっと強固に&スマートにできますが、「コピペすればとりあえず動くための基本的な仕組み」を並べた状態です。 APIキーの取得と設定 まず、APIキーを取得し、コード内の「ここにAPIキーを入力」の部分に入力します。APIキーは安全なよう

          【GAS】YouTubeチャンネルの動画リストを書き出す

          【GAS】正規表現でURLを抽出する

          メール群からURLのみを抽出するにはどうすれば? LINE BOTを作った際、その準備段階として、Gmailの中から特定のタイトルのメールを抽出し、抽出した各メールに含まれるYou Tubeリンクを抽出するコードを書きました。 当初は、このリンク抽出という処理にParserライブラリを使用していました。具体的には以下のようにfromとtoを利用して、特定のフレーズの後から、次の特定のフレーズの前までの文字列を取得していました。 function getLinksInGm

          【GAS】正規表現でURLを抽出する

          【GAS】該当がない場合の戻り値をテストしてみた(matchメソッド、filterメソッド)

          はじめに 条件適合により配列を返すメソッドを使う時、例外時の戻り値がnullなのか空の配列なのか、また配列の各要素がundefinedなのか空文字列なのかを知らないと、条件分岐でつまづいてしまいそうです。 そこで、matchメソッドとfilterメソッドについて、いくつかテストをしてメモします。 matchメソッドの該当なし時の戻り値は「null」と知っていましたが、typeofでObjectになるのは知りませんでした。 調べてみるとJavaScript(David Fr

          【GAS】該当がない場合の戻り値をテストしてみた(matchメソッド、filterメソッド)

          【GAS】matchメソッドの挙動(自分用メモ)

          はじめに お手軽便利なmatchメソッドですが、teketekeという単語と一緒に見ると、当たり前なようで面白い挙動をしていると思ったので、気づきをメモ( ..)φしておきます。 いわゆる教科書的記述『Java Script』(D. Flanagan, 第7版 P324)は、matchメソッドについてこう書いています。 ふむふむ。 続いてMDNの記述はこちら。 ふむふむ。ですよね。(あれ、でも、、、?) どちらの挙動か調べてみたさらっと納得してしまいそうな記述なのです

          【GAS】matchメソッドの挙動(自分用メモ)

          【GAS】someメソッド、everyメソッドの注意点(自分用メモ)

          はじめに 前回までに、今度「お母さん」になられるコーチにプレゼントするLINE Bot、ペアプロでの設計全般についての学び1、設計全般についての学び2をメモしました。 今回もペアプロでの学びとして、配列に対するsomeメソッド、everyメソッドの注意点をメモしていきます。 配列.someメソッド、配列.everyメソッドの注意点LINE BOTのコードでは、ユーザーの入力した筋トレメニューと、あらかじめ一次元配列に格納しておいたキーワードのどれかが一致するかを判定するた

          【GAS】someメソッド、everyメソッドの注意点(自分用メモ)

          (自分用メモ)【GAS】設計全般についての学び2

          はじめに 前回までに、今度「お母さん」になられるコーチにプレゼントするLINE Botを作ってみたこと、ペアプロ前から学びをいただいたこと、について書きました。 こちらはその続きで、設計要素に関してペアプロで学んだことを自分用にメモしています。 学び1:働きかける対象ごとに切り分ける 今回のペアプロにあたって一番気になっていたのは、 結果として同じ処理がなされるコードだとしても、どのように切り分け、もしくは結び付けて書くのがよいのか? ということでした。 良いコ

          (自分用メモ)【GAS】設計全般についての学び2

          (自分用メモ)【GAS】設計全般についての学び1:全体像を俯瞰すべし

          お世話になっているコミュニティ、ノンプロ研で初めての「ペアプロ」をしていただきました!誰かとペアを組んで交代しながらコードを書いていくペアプロ。どう考えてもすご~く勉強になりますよね。でもなかなか言い出せていなくて💦 そんなある日。卒業制作にと進めていたLINE Botの、ここがまだうまくいっていないなぁ、この関数切り分けどうしたらいいかなぁ、、、とつぶやいていたら、初級講座で講師をしていただいているKさんから「ペアプロしましょ!」とありがた過ぎるお誘いが✧♡ というわけ

          (自分用メモ)【GAS】設計全般についての学び1:全体像を俯瞰すべし