マガジンのカバー画像

GASを便利に使いたい

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

記事一覧

【GAS】HTMLサービスを使ってクリックできるURLを表示したり、非同期処理問題をなんとかする

【GAS】HTMLサービスを使ってクリックできるURLを表示したり、非同期処理問題をなんとかする


やりたいこと①:スプレッドシートの「入力用」シートに入力した情報を、「出力用」シートに転記・整形して、出力用シートをPDFとして書き出すという処理をボタン一つでやりたい。
②:①で書き出してドライブに保存したPDFのURLを画面上に表示し、クリックで表示できるようにしたい

問題点①

転記・整形する処理とPDF書き出し処理を別のfunctionとして記述すると(おそらく)処理スレッドが分かれて

もっとみる
【GAS】セルから取得したDate型の日付をStringにフォーマットする

【GAS】セルから取得したDate型の日付をStringにフォーマットする

セルに入力した日付を取得すると、Date型になってしまっているので、必要に応じてフォーマットします。

結論function Date型をStringにフォーマット(値){ // Date型かどうかを確認 if(Object.prototype.toString.call(値) != "[object Date]"){ throw Error("引数はDate型で渡してく

もっとみる
【GAS】APIを叩いてPOSTでJSONを送信したり、その通信をPostmanでエミュレートしてみたり

【GAS】APIを叩いてPOSTでJSONを送信したり、その通信をPostmanでエミュレートしてみたり

GASからAPIのエンドポイントへアクセスして、POSTで情報送信出来るようにしたいの巻きです。

結論// データベース登録用会員データ.gs// sampleclass 会員データ{ constructor(名前, 電話番号, メールアドレス){ this.name = 名前; this.tel = 電話番号; this.mail = メールアドレス; } JSONとし

もっとみる
【GAS】VLOOKUPみたいなことをfindを使って華麗にやる

【GAS】VLOOKUPみたいなことをfindを使って華麗にやる

VLOOKUPがそのままGAS上でも使えれば何も問題ないんですが

結論function lookup(target_code){ // A列に商品名、B列に商品コードが入っているものとする const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const vals = sheet.getDataRange

もっとみる

【GAS】map関数を使って、一列分のデータだけを華麗に取得する

やりたいことスプレッドシート上にあれこれ展開した情報のうち、1列だけ、例えば計算結果のC列だけ、ごっそり配列として取得したいんじゃよ、っていうときに、forだのなんだのごにょごにょ書くのめーんどーくさーい。

結論const CODE_COL = 0 // 取得したい列番号let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveShee

もっとみる
【Javascript】「今週かどうか」を判定する

【Javascript】「今週かどうか」を判定する

ある日付が、「今週の出来事かどうか」を判定します。

結論function is_this_week(target_date){ // target_dateは、確認したい日付をDateオブジェクト化したものを渡す // 【STEP1:今日の日付を取得する】 let today = new Date; let today_day_index = today.getDay(); // 曜日が

もっとみる
【GAS】セルに入力したら発火する関数を使って簡易スマホアプリ作り

【GAS】セルに入力したら発火する関数を使って簡易スマホアプリ作り

SpreadsheetにGASを仕込んで、発火のためのボタンを作っても、PCから開いた時しか押せない問題。

でも出先でスマホでささっと動かしたい時もあるじゃん~
という時は、「セルに入力したら発火する」というトリガーを使うと良いと聞いたのでそれでアプリを作って見ます。

今回作るのは最高に単純なお小遣い帳……というか、「今月いくら使ったよ帳」です。使った金額を入力すると、今月いくら使ったかを計算

もっとみる
【GAS】Spreadsheetに設置したボタンを押したらメールを送る

【GAS】Spreadsheetに設置したボタンを押したらメールを送る

「今日発注ありますか」みたいな定形文の連絡を、決まった相手に、必要な時にだけボタンひとつで送る仕組みを作ります。
そんなのいつ使うんだ、と思われるでしょうが、今の私には必要なんだよ。

結論function send_mail(address, subject, body){ let options = {"from": "送信元メールアドレス"} GmailApp.sendEmail(rec

もっとみる
【GAS】一行目に数式を入れてオートフィルする

【GAS】一行目に数式を入れてオートフィルする

結論// 出力用のシートを取得しておくconst activeSheet = SpreadsheetApp.getActiveSpreadsheet();const sheet_b = activeSheet.getSheetByName("シートB")// 入力値を受け取る let start_num = Number(Browser.inputBox("開始番号を入力してください"));

もっとみる
【GAS】ファイルを開いたときにスクリプトを実行してメニューを追加する

【GAS】ファイルを開いたときにスクリプトを実行してメニューを追加する

GASの発火方法はいくつかありますが、一番オーソドックスなのは「ボタンを押したら発火させる」だと思います。ただ、今回「色々入力して仕上がった書類を出力するボタン」が欲しいんですが、うまいことボタンを置く場所が確保できないので、上部のメニューに追加しちゃいたいと思います。

function onOpen() { let ui = SpreadsheetApp.getUi(); let my_men

もっとみる
【GAS】表示中のシートをPDFに出力する

【GAS】表示中のシートをPDFに出力する

実はSpreadSheetは、仕様に則って生成したURLにアクセスするだけでPDFとして出力できちゃうんですよ。便利ですね。その仕組みを使ってPDFを出力します。

Blob(一時ファイルみたいなもの)を作る

function createPdf(target_sheet, filename){ // 各種idとトークンを取得 let spreadsheet_id = SpreadsheetAp

もっとみる
【GAS】もうちょっと柔軟なプロンプトを出すUi.alert

【GAS】もうちょっと柔軟なプロンプトを出すUi.alert

SpreadSheet+GASでalertを出したい時はBrowser.alert()/input()を使うのが手っ取り早いのですが、ちょっと融通が利かない。ということで、もうちょっと柔軟なプロンプトを作ってみたいと思います。

function myFunction() { let UI = SpreadsheetApp.getUi(); let title = "hello"

もっとみる
【GAS】Spreadsheets+GASで初歩的なアプリを作ってみよう

【GAS】Spreadsheets+GASで初歩的なアプリを作ってみよう

仕事で、GAS入門の話をしておくれ、と言われたので、その資料を作るための下準備記事です。テーマは「はじめてのGAS」「GASこわくない」です。

今回は、ハンドメイド作家向けの委託商品管理アプリという、私だけが嬉しいアプリを作っていきたいと思います。

どういうアプリかと言いますと、

こういう表にずらーっと商品を書いておいて、〇番から〇番を出力しまーす、って命令すると

こんな具合に納品書として

もっとみる
GASを使ってgmailの特定のラベルが付いたメールを定期削除する

GASを使ってgmailの特定のラベルが付いたメールを定期削除する

もうね、ココを見て下さい、で全て終わりなんですけども(素敵な記事をありがとうございます)。自分でやってみた雑感とかコツとかのメモをチョコチョコと。

googleさんの容量制限がちょいと厳しくなってきたじゃないですか。なんで、今まで無尽蔵に保存していたメルマガとかメルマガとかメルマガとか諸々の通知メールとか、その辺をごっそり消そうと思ったんですが手作業でやるの死ぬほど面倒だったので、自動化しちまえ

もっとみる