マガジンのカバー画像

Google Apps Script

13
運営しているクリエイター

#プログラミング

[GAS] Notionのデータベースの列をGoogleスプレッドシートに転記する

はじめに以前、GASでNotionAPIを使ったスクリプトを作成しました。 今回は、GASでNotionのデータベースの列を、Googleスプレッドシートに転記する処理を実装します。 使用するNotionのデータベース今回は、Notionのテンプレートにある「会議」のテンプレートを使用します。 プロパティは、一部変更しています。変更点は下記です。 イベント時間の表示形式を、タイムゾーンを「JST」、日付の形式を「年/月/日」、時刻の形式を「24時間」に変更 表示する

[GAS] 指定フォルダ配下の全ファイル特定の権限一覧化するツール2:ファイルのアクセス権限をチェックする

はじめに前回、GASで、指定したGoogleドライブのフォルダの配下にあるすべてのファイルを検索し、特定の権限を持つ場合、そのファイル情報を、Googleスプレッドシートに出力するツールを作成します、の1回目として、処理概要と独自メニューを表示する処理、指定フォルダ配下のフォルダを全取得する処理の実装について、まとめました。 今回は、2回目として、前回取得した全フォルダの中にあるファイルのアクセス権を取得し、「リンクを知っている全員」の共有権限が設定されているファイルを一覧

[GAS] 指定フォルダ配下の全ファイル特定の権限一覧化するツール1:指定フォルダ配下のフォルダを全取得する

はじめにGASで、指定したGoogleドライブのフォルダの配下にあるすべてのファイルを検索し、特定の権限を持つ場合、そのファイル情報を、Googleスプレッドシートに出力するツールを作成します。 Googleドライブに配置したファイルを、他の人と共有することができるのは非常に便利です。その際、特定のユーザーに共有ではなく、「リンクを知っている全員」に設定してしまうことで、情報漏洩のリスクが高まります。 指定したフォルダ配下にある全ファイルを検索し、この「リンクを知っている

[GAS] Googleスプレッドシートの表から指定列の条件が一致する配列のインデックスをすべて取得する

はじめにGASで、Googleスプレッドシートの表のデータで、指定列の条件が一致する場合の配列のインデックスをすべて取得する実装をしました。 最初に検討したコードと、参考サイトの情報を備忘録としてまとめておきます。 使用しているデータは、下記のサイトを使用してダミーデータを作成し、Googleスプレッドシートに展開しました。 この表のB列:makerが”Mazda”の場合の配列のインデックスを、すべて抽出する、となります。 実装(最初)コード全体は、下記です。 con

[GAS] NotionAPIを使って、作成した日報ページの内容を取得しChatworkでメッセージを送信する3

はじめにGASで、NotionAPIを使用し、前回作成した日報ページから作業内容を取得し、日報を報告するメッセージをChatworkで送信する、という処理を実装します、最終回です。 前回は、Notionの日報ページから作業内容を取得する処理を実装しました。 今回は、前回Notionの日報ページから取得した作業内容と、出社、退社の時間を合わせて、日報報告としてChatworkに送信する処理を実装します。 日報としてメッセージを送信する内容は、Googleスプレッドシート内

[GAS] NotionAPIを使って、作成した日報ページの内容を取得しChatworkでメッセージを送信する2

はじめに前回、GASで、NotionAPIを使用し、前回作成した日報ページから作業内容を取得し、日報を報告するメッセージをChatworkで送信する、という処理を実装しますの1回目として、処理概要とNotionのページ構成の基礎知識についてご紹介しました。 今回は、GASで、Notionの日報ページから箇条書きリストの内容を取得し、Googleスプレッドシートの特定のセルに出力する処理を実装していきます。 実装実装時に必要になるのは、下記2つになります。 Interna

[GAS] NotionAPIを使って、作成した日報ページの内容を取得しChatworkでメッセージを送信する1

はじめに前回、GASで、NotionAPI を使用して、日報ページを新規で作成する処理を実装しました。 GASで、NotionAPIを使用し、前回作成した日報ページから作業内容を取得し、日報を報告するメッセージをChatworkで送信する、という処理を実装します。 今回は、その処理の概要と、Notionのページ構成の基礎知識についてまとめていきます。 処理概要Notionの日報ページに記載されている作業内容と、Googleスプレッドシート上の出退勤の時間情報を合わせて、

[GAS] NotionAPIを使って、日報ページを新規作成する

はじめに前回、NotionAPI を使用するための準備についてまとめました。 今回は、GASでNotionに日報ページを新規で作成する、という処理についてまとめます。 処理概要Googleスプレッドシートのメニューを追加し、メニューから選択されたら、Notionの指定日のページを作成する処理を実行します。 作成するページには、下記のプロパティ、本文を設定します。 プロパティ アイコンを指定(今回は、「writing hand」を指定) タイトル:その日の日付(例:

[GAS] Gmailのメール本文をPDFとして保存する2 : GASを実装する

はじめに前回は、GASでGmailで受信したメールをPDFとして保存するスクリプトを実装するための事前準備についてお伝えしました。 今回は、GASの実装についてお伝えします。 実装全体の処理は、下記です。 function GmailToPDF() { // ラベルが「領収書」でかつ、「PDF済」ではないものを検索 const query = 'label:領収書 -label:PDF済'; const threads = GmailApp.search(quer

[GAS] Gmailのメール本文をPDFとして保存する1 : 事前準備

はじめに今回は、GASでGmailで受信したメールをPDFとして保存するスクリプトを実装します。 Gmailのメール本文を印刷、PDFとして保存することができないか?と考えていました。GASの公式リファレンスを見ても、印刷する機能を探すことができませんでした。 そんな時に見つけたのが、下記の記事です。 こちらの記事を参考に、実装を進めています。 GASで自動化する処理の流れは、下記となります。 ラベルがついたメールを取得 メールのタイトル、日付、送信元、本文を取得し

[GAS] Googleスプレッドシートの表の行列を反転させる

はじめにGASで、Googleスプレッドシートから読み込んできた配列の行と列を反転したいと思います。 データの並びは下記です。 上記のデータを、Googleスプレッドシートの関数:TRANSPOSEを使用した際と同様、下記のような表に並び替えた表を作成します。 実装方法下記のサイトに、実現方法をまとめている回答がありました。 実装パターンとして、5パターン記載されていました。順にコードを書いて、実行確認してみました。 パターン1:ループして配列を入れ替える con

[GAS] オブジェクトの配列をreduceを使って集計する

はじめにGASで、Googleスプレッドシートの表のデータを集計する際、配列のreduceを使用して実装しました。 うまく動作しなかったコード、修正して正しく動作したコードを、備忘録として載せていきます。 条件 データは、Googleスプレッドシートから取得します。A列「name」、B列「category」、C列「price」のテーブル形式のデータです。 C列「price」の値を集計します。 実装(最初) const sheet = SpreadsheetAp

[GAS] オブジェクトの配列をreduceでGroupByのように集計する

はじめに前回、GASで、Googleスプレッドシートの表のデータを集計する際、配列のreduceを使用して実装しました。 今回は、同じ表のデータを使用して、カテゴリーごとに集計します。 SQLで言うと、下記のようなSQL文になります。 SELECT category, Sum(price)FROM "salesData"GROUP BY category 条件 データは、Googleスプレッドシートから取得します。A列「name」、B列「category」、C列「pr