絞り込み条件を変更する
検索条件を絞り込む

すべてのカテゴリ

64 件中 1 - 60 件表示
カバー画像

ビジネスでスプレッドシートを活用して、作業の正確性とスピードを向上させる方法

スプレッドシートは、ビジネスにおいて作業の正確性とスピードを向上させるために、非常に効果的なツールです。スプレッドシートを活用することにより、従業員は業務の状況をリアルタイムで把握し、作業をよりスムーズに進めることができます。 まず、スプレッドシートを使って作業を効率化するために、自動化することが重要です。例えば、スプレッドシートを使って、社員の給与明細書を自動的に作成することができます。これにより、人為的なミスを減らし、時間とコストを節約することができます。 次に、スプレッドシートを使って、業務の進捗管理を行うことができます。これにより、どの作業がどの段階にあるのかをリアルタイムで把握することができ、遅延が生じた場合には、迅速に対応することができます。例えば、プロジェクトの進捗管理をスプレッドシートで行うことにより、各タスクの完了日や担当者を一覧表示することができます。 さらに、スプレッドシートを使って、業務の予測や分析を行うことができます。例えば、過去のデータを分析し、販売予測を行うことができます。これにより、生産の調整や在庫管理などの作業をスムーズに進めることができます。 また、スプレッドシートは、複数人で同時に作業することができるため、チームでの作業がスムーズに進められます。例えば、複数の社員が、同時に同じデータを編集することができます。編集履歴機能を使って、誰が何を編集したのかを確認することができるため、作業のミスを防止することができます。 スプレッドシートはビジネスにおいて非常に強力なツールであり、正確性とスピードを向上させることができます。具体的には、以下のような
0
カバー画像

Youtube動画情報をGASでまとめてみた

YoutbeAPIで動画情報を取得し、チャンネルごとにGoogleスプレッドシートにまとめるGoogle Apps Scriptを作ってみました。使い方は簡単です。なんと、1枚目のシートにチャンネルタイトルとURLを入力するだけ。GASを実行することで、チャンネルごとにシートを作成し、動画情報を書き込んでくれます。ここでは、投稿日、再生回数、高評価、低評価、コメント数を書き込むようにしました。これをトリガーを使って、毎日自動で実行するように設定すると、毎日最新情報に書き換えてくれるので非常に便利です。途中でチャンネルを増やしても問題なく動作します。複数のチャンネルの管理も一つのスプレッドシートでできて、自動で毎日更新してくれる上に操作も簡単で非常に便利です。ご依頼お待ちしております。
0
カバー画像

[2023/01/24] ブログ書き始めてみます。

1. ココナラに出品して1ヶ月の数値的な実績ココナラにアカウント作成して出品を始めてから大体1ヶ月が経過した。初めてココナラとかやってみるけど一体どんなもんか?と思って始めてみたものの、1ヶ月間での依頼は0件。出品ページの閲覧数は19件という感じでした。出品ページの掲載順位も定期的にチェックをしていたのですが、Google Apps Scriptの関連出品ページ内で平均28位。自動化全体なら平均335位となりました。出品ページの更新やプロフィールの更新を定期的にやってみてもこのあたりの順位帯から大きな変動はなかったため、ここより上にいくには販売実績しかり、評価しかり、バッチしかりが必要なのだろうという推測。まぁ評価0件、販売実績0件のアカウントにしては意外にもレコメンドされてる方なんじゃないかなー?と思いつつも、やっぱり販売に繋がらなくては意味がないのですよ、、、。やれることはやってみようということでココナラブログも書き始めることにした次第。2. 今からココナラを始めてどうやって勝ち抜いていくのか買い手・依頼側の気持ちになれば当然販売実績やレビューのある人に依頼する方が安全性が高く、さらに言えば出品一覧の上位に表示されている出品の方が依頼をしやすいというのは当たり前のこと。Amazonや楽天で物を買う時を考えてみれば一目瞭然で、どれだけ商品ページが丁寧に書かれていて画像や動画も充実していたとて、レビュー0件の聞いたこともない中華製メーカーの商品を買うか?という話。商品が実際に良い物であったとしてもレビューがなければそれを知る由もなく、購入には繋がらない。誰が知っているメーカーの
0
カバー画像

Google Apps Scriptで花火大会のマイマップを作成する方法

はじめに皆さん、こんにちは。今年の夏もいよいよ花火大会の季節がやってきました。今回は、Google Apps Script(GAS)を使って、花火大会のオリジナルマイマップを作成する方法をご紹介します。この記事を読むことで、花火大会の情報をポリゴンで示したカスタムマップを簡単に作成できるようになります。Google Apps Scriptとは?Google Apps Scriptは、Googleのサービス(Gmail、スプレッドシート、Googleドライブなど)をプログラムで操作できるスクリプト言語です。特に、地図作成やデータ管理など、さまざまな業務を効率化するのに非常に便利です。花火大会のマイマップ作成のメリット視覚的にわかりやすい:花火大会の場所や範囲を地図上で視覚的に示せるため、わかりやすくなります。カスタマイズ可能:自分の好みに合わせてマップをカスタマイズできます。共有が簡単:作成したマップを簡単に他の人と共有できます。スクリプトの構成手順花火大会のマイマップを作成するためのスクリプトを、以下の手順で構成します。ステップ1:スクリプトエディタの起動Googleスプレッドシートを開きます。メニューから「拡張機能」→「Apps Script」を選択します。ステップ2:スクリプトの作成スクリプトエディタが開いたら、新しいプロジェクトを作成し、スクリプトを書くことができます。以下は、スプレッドシートに記載された花火大会のデータを使用して、マイマップにポリゴンを追加する方法の概要です。データの取得:スプレッドシートから花火大会のデータ(名前、場所、範囲など)を取得します。KML形
0
カバー画像

[GAS] リファクタリングなどで他者開発ライブラリを解析する必要がある場合

はじめに GASが動かなくなったから修正してほしい、という案件がそこそこありますが、外注先の開発者と連絡がつかなくなった、というものがかなりの割合を占めているように思えます(あくまでも個人の感想です)。 稀ですが自作のライブラリを使用しているプロジェクトについて、ライブラリ本体を解析する必要があるときの小ネタです。なお、本記事はQiitaで公開した記事の要約・補足版となります。利用場面 他者開発プロジェクトのリファクタリングでライブラリ本体の解析が必要になった、ライブラリのスクリプトIDがわからないといったケースが考えられます。 まず、ライブラリが生存していることが大前提となります。スクリプトIDを調べる 1. 当該プロジェクトのスクリプトエディタを開きます。 2. 左側の歯車ののようなアイコンで設定画面を開きます。 3. 「appsscript.json」マニフェスト ファイルをエディタで表示する にチェック。(画像1参照)4. 「<>」アイコンをクリックし、コード編集画面に戻ります。 5. 「ファイル」からappsscript.jsonをクリックします。(画像2参照)画像1:プロジェクトの設定画面画像2:appsscript.json例ライブラリを開く 以下URLの{SCRIPT ID}を先程調べたスクリプトIDと差し替えると、ライブラリ本体を開くことができます。 https://script.google.com/home/projects/{SCRIPT ID}/ ※URLをそのまま記述すると「禁止ワード」判定されるため、一部を全角にしています。当然のことですが、
0
カバー画像

毎月のExcel・CSV集計、まだ手作業でやっていませんか?

毎月の売上集計、CSVの貼り付け、在庫表の更新、請求管理、日報の集計。こういった作業に、思った以上の時間がかかっていないでしょうか。中小企業や個人事業主の方からよく聞くのが、「毎月同じ作業をしている」「Excelの管理が担当者任せになっている」「CSVを貼り付けて集計するだけで半日かかる」「売上や在庫をすぐ確認できない」「社内にエンジニアがいないので改善が進まない」というお悩みです。一つひとつは小さな作業でも、毎月・毎週・毎日発生すると、かなり大きな負担になります。たとえば、毎月5時間かかる集計作業があるとします。年間では60時間です。担当者の確認、修正、二重チェック、報告資料の作成まで含めると、実際にはもっと多くの時間が使われているケースも少なくありません。こうした作業は、仕組み化・自動化できる可能性があります。業務自動化とは何か業務自動化というと、大きなシステム開発をイメージされる方も多いかもしれません。しかし、実際にはもっと身近なところから始められます。たとえば、・Excelの集計を自動化する・CSVを取り込んで自動で表を作る・Googleスプレッドシートにデータを集約する・売上や在庫をグラフで見える化する・請求や入金状況を一覧化する・日報や作業報告を自動集計する・毎朝メールやLINEでレポートを通知する・PDFやExcelを自動出力するこのような改善も、十分に業務自動化です。特に中小企業の場合、最初から大きなシステムを導入するよりも、今使っているExcelやスプレッドシートを活かしながら、少しずつ自動化していくほうが現実的です。手作業を続けるリスク手作業には、いくつかの
0
カバー画像

雨の日、子どもと遊ぶツールをGASで作ってみた!

「みんなでボウリング!スコア計算めんどくさっ…スマホのアプリ使えばいいか」ちょっと待って!Googleスプレッドシートでスコア表を作ったはいいけど、計算が面倒…。そんな経験、ありませんか?実は、Google Apps Script(GAS)を使えば、自動でスコア計算してくれる便利なツールが作れちゃうんです!GASって何か分からない?大丈夫!プログラミングの知識がなくても、この記事を読めばGASで何ができるかイメージできるはず。GASって?GASは、Googleのサービスと連携して、様々な作業を自動化できるプログラミング言語です。例えば…スプレッドシートのデータを自動で集計・グラフ化Gmailの受信メールを特定の条件で自動振り分けGoogleカレンダーに定期的なイベントを自動登録などなど、GASを使えば面倒な作業から解放されて、時間を有効活用できます!GASでボウリングスコア計算ツールを作ってみた!GAS初心者🔰の私でも、意外と簡単にボウリングのスコア計算ツールが作れました!【ツールの仕組み】スプレッドシートにスコアを入力すると、GASが自動で検知GASが計算処理を実行計算結果をスプレッドシートに表示GASのコードは、「スコアを計算する」「結果を表示する」といった手順を順番に書いていくイメージです。【ツールのメリット】計算ミスを防げる!集計の手間が省ける!スコアの推移をグラフ化して、分析もできる!GASの可能性は無限大!GASを使えば、アイデア次第で様々なツールを作れます!旅行の予算管理ツール家計簿自動作成ツールタスク管理ツールなどなど、あなたの悩みを解決するツールが作れるかも!
0
カバー画像

Google Apps Script と ExcelVBA

以前から気になっていたGoogleAppsScript(GAS)を考察して、ExcelVBAとの違いや可能性について書いてみます。 特長 ①OSに縛られない。  インターネットに繋がる環境であれば、OSに縛られることなく使う事ができる。 ②各Google製品との連携が簡単に且つ密に出来る。 ③プログラミングによって自由に作成できる。 ④基本無料 懸念材料 ①インターネットが繋がらないと使えない。 ②クラウドサーバー側での動作なのでレスポンスが悪い。 ③フォームがExcelVBAのように込み入った仕様が不可かな。 GoogleAppsScript(GAS)はとてもよく出来たもので様々な可能性を感じています。 ネットワークでの各データ共有はより簡単に出来るようになるでしょう。 結論としては、全く違う「道具」だなあと思います。 Excelとスプレッドシートは同じ「表計算ソフト」ですが、それを拡張する考え方がまるで違うように感じました。 自分のように「Excel」の「Sheet」をデータベースと考えている者にとっては、是までと全く違った発想をする必要がありますね。 GASはまだまだ未知のものですので、色々創ってみてその可能性を探ってみたいと思います。 GASのプログラミング言語とExcelVBAを比較するとVBAの古さを感じますね。 でも、プログラミングの基本的なところを学ぶにはいいですね。 新しい言語はいろいろな所が省略されていて逆にわかりづらいかなあと思うところもありますね。 昔のCOBOL言語なんかは「定義文」がとても長くて大変でしたけど、データの属性やデータの長さ 実ファイル
0
カバー画像

getRangeを使う時のオブジェクト考えてみました

getRangeの引数って割と決まった値を渡すことが多いので、定数宣言してたんですが、そうすると3行~4行宣言に食われてしまって可読性が下がるのでどうしたもんかと悩んでたんですが、あ、そういえばオブジェクト使えるんじゃないかなと思ったのでちょっと作ってみました。書いてる文言の関係もありそうですけどなんか長いですね(ーー;ここだけアロー関数にしちゃって簡素化してみるのもありかもしれないのでもう少し研究してみます(*'ω'*)
0
カバー画像

GASのdate型についての注意点

今日はプログラマさん向けの記事です。日付処理のモジュールの汎用性を上げるべく改修してたのですが、GAS(JavaScript)の場合、data型を関数に引数として渡すと強制的に参照渡しになってしまうようですね。色々と問題が発生してしまうので関数内に引数からdeta型を受け取る変数を用意して、そちらを処理するようにしないと、色々と問題が起きてしまうので注意が必要ですね。
0
カバー画像

[GAS] Googleドキュメントで全消去の後appendParagraphしたら先頭に空行ができる

はじめに 久しぶりにGoogleドキュメントへGAS構築する機会がありましたので、小ネタ扱いの備忘録です。Googleドキュメント関連ではあまりピンポイントな情報にたどり着けないことが多いので、できる限り具体的な内容のタイトルにしてみました。 なお、本記事はQiitaで公開した記事の要約・補足版となります。 問題点ドキュメント上で全消去の後、appendParagraphにて段落データを順次追記するというスクリプトを実行したところ、先頭に空行ができてしまいました。これを削除したい、もしくは空行を出さずにスマートに先頭から追加できないか、についての検証です。 そもそもドキュメントの仕様上、初期状態では空段落が最初から存在している状態です。そこにappendParagraphしていくわけなので、当然の結果です。同様のことはinsertParagraphでも起きます。insertParagraphの場合は先頭行ではなく、末尾が空行になります。元々あった空行がinsertParagraphによって押し出されるような感じになるので、これも当然の結果です。解決策について 以下の2パターンについて検証してみました。 1-順次処理の後でBody.removeChildする 2-先頭(もしくは末尾)のみ元の空行と差し替える1-順次処理の後でBody.removeChildする Body直下の子要素を削除するremoveChildを使用します。引数にChildを取りますので、Body.getChild(インデックス値)でChildとして渡します。先頭段落を削除する場合、Body.removeCh
0
カバー画像

マイクロブタが好きすぎて飼う前に健康管理アプリを自作した話

こんにちは ハレケラボのハレケです今はエンジニアとして ペットテック(PetTech)の開発に取り組んでいます実は私 プログラミングに関しては全くの未経験でした41歳にして初めて AIをパートナーにしてコードを書き始め 形にしたのがこのマイクロブタ専用の健康管理システムです飼う前にアプリを作った理由私はまだ マイクロブタを飼っていませんですが 好きすぎて「お迎えするなら最高の環境で迎えたい」という想いだけで動きましたリサーチを進める中で 既存のツールでは物足りなさを感じ自分が納得できるものがないなら AIと一緒に作ってみようと決意しました41歳 未経験からのスタートでしたが AIと対話しながら試行錯誤することで ようやく形になりましたAIと作ったからこそ実現できたシンプル設計エンジニアとしては新人ですが AIの力を借りることで 使う人の目線に立った実用性を追求できました難しい操作を抜きにして 毎日ストレスなく記録を続けられる仕組みを目指していますシステムには Google Apps Script(GAS)とスプレッドシートを組み合わせています直感的な入力フォームスマホのホーム画面からアクセスして 必要な項目をタップするだけで記録が完了しますリアルタイムでのデータ蓄積保存した内容は 即座にスプレッドシートへ反映されます一覧性が高く 過去の体調変化も一目で把握できる形にしました未経験でも AIがあれば形にできるハレケラボのペットテック事業は まだ始まったばかりですカスタマイズの相談も受け付けていますAIと一緒に開発している私だからこそ ユーザーの「もっとこうしたい」という細かな悩み
0
カバー画像

スプレッドシートで使うGAS②

配列で1行追加例const ss = SpreadsheetApp.getActiveSpreadsheet(); const sh = ss.getSheetByName('シート1');//シート名による指定 const saveData = ['A列のデータ','B列のデータ','C列のデータ']; sh.appendRow(saveData); フォントの修飾let cell = sh.getRange("D11"); let m = 'test'; cell.setValue(m);cell.setFontSize(15); //フォントサイズcell.setFontColor('#ff0000'); //フォント色 cell.setHorizontalAlignment('right');//フォントの水平位置 left right center cell.setFontWeight('bold');//フォントの太さnormal/bold cell.setFontFamily('Meiryo'); //フォントスタイルを指定 cell.setFontStyle('italic');//フォントを斜体にするか指定 cell.setVerticalAlignment('top');//フォントの垂直位置 データ取得const ss = SpreadsheetApp.getActiveSpreadsheet(); // const sh = ss.getActiveSheet(); const sh = ss.getSheetByName('シート1');全データ取得例
0
カバー画像

GoogleTODOをもっと便利に活用する!

【多忙なビジネスパーソンへ】タスク管理の迷宮から抜け出せていますか?Googleタスクに追加したはずのタスクが、いつの間にか100件を超えている。どれから手をつければいいのか分からず、結局目についたものから片付けてしまう。そんな日々を送っていませんか?Google TODOアプリを使っていますが、イマイチ活用方法がしっくりきてませんでした。「Googleタスクにタスクが山積みで、優先順位がつけられない」「重要なタスクが埋もれて、期限を過ぎてから気づくことがある」「どのタスクに着手中なのか、自分でも分からなくなる」「完了したタスクを振り返る仕組みがなく、達成感を得られない」そこで今回のスクリプトを開発し、Googleタスクを「時間のマトリクス管理」へと進化させたのです。結果、タスクの優先順位付けにかかっていた1日30分の時間が、ほぼゼロになりました。月換算で約10時間です。この浮いた時間を、本来注力すべき事業戦略の立案に充てられるようになったとのことでした。構築しているウェブアプリで何ができるのか?Googleタスクを「時間のマトリクス」で自動分類するシステムです。【Step 1】Googleタスクから全タスクを自動取得複数のタスクリストをまたいで、すべてのタスクを一括で読み込みます。手動でリストを切り替える必要はありません。【Step 2】優先度に応じて4つの象限に自動振り分け「今すぐやる」「計画的に実行」「スキマ時間で」「やらない」の4つに分類されます。未分類のタスクは専用エリアに表示され、ワンクリックで優先度を設定できます。【Step 3】着手中タスクを明確に表示現在取り組
0
カバー画像

Google Apps Script × Notion APIで顧客管理を自動化

NotionでCRM運用している人こそ知ってほしい「Google Apps Script」の威力NotionをCRMとして活用している皆さん、日々の顧客管理はいかがですか?顧客データベースを構築し、案件管理をカンバンボードで可視化し、営業活動の記録をページで詳細に管理する。Notionの柔軟性を活かして、市販のCRMでは実現できない独自のワークフローを構築されていることでしょう。でも、運用していく中で「ここがもう少し自動化できたら」「このデータ連携が手動なのが面倒」といった課題を感じることはありませんか?そんな時に力になるのが、Google Apps Script(GAS)です。NotionのCRM運用でよくある課題NotionでCRMを構築すると、その自由度の高さに感動します。顧客情報、案件管理、商談履歴、タスク管理、売上分析まで、すべてを一つのワークスペースで管理できる。市販のCRMツールでは不可能な、完全にカスタマイズされたシステムが完成します。しかし、運用を続けていくと、いくつかの課題が見えてきます。◇Gmail重要な顧客とやり取りをした後、その内容をNotionの顧客ページに手動で記録する作業。◇Googleカレンダーで商談の予定を入れた後、Notionの案件データベースにも手動で登録する作業。◇Google フォームで集めたリード情報を、Notionの見込み客データベースに一つずつ転記する作業。これらの作業は、それぞれ数分で完了しますが、積み重なると相当な時間になります。しかも、手動作業が多いと、記録漏れや入力ミスのリスクも高まります。GASがNotionのCRM課
0
カバー画像

Google Apps Scriptで効率的なメール送信スクリプト作成方法

皆さん、Google Apps Script(GAS)を活用して、日々の業務を自動化したいと考えたことはありませんか?特に、毎日同じようなメールを送信する必要がある方にとって、手作業で行うのは時間がかかり、ミスも起きやすいですよね。この記事では、GASを使って効率的にメールを送信するためのスクリプト作成方法について、簡単に紹介します。GASでのメール自動化のメリットまず、GASを使ってメール送信を自動化することで得られるメリットを挙げてみましょう。時間の節約: 日々同じ内容を手動で送信する手間を省けます。ミスの防止: フォーマットや宛先の間違いを防ぎ、正確なメール送信が可能です。業務の効率化: 自動化により、他の重要なタスクに集中する時間が増えます。Gメールの下書きテンプレート機能との違いGメールには「下書きテンプレート機能」がありますが、これを活用するよりもGASでスクリプトを組むメリットがあります。その理由を具体的な事例を挙げて説明します。1. 大量のメール送信が必要な場合たとえば、毎日数十通のカスタマイズされたメールを異なる宛先に送信する必要がある場合、テンプレート機能では手動で個別に対応する必要があります。しかし、GASでスクリプトを作成すれば、複数の宛先に対して一度に、しかも内容を個別にカスタマイズして送信できます。これにより、作業の負担を大幅に軽減することができます。2. データベースとの連携が可能GASを使うことで、Google スプレッドシートや外部データベースと連携して、メールの内容を動的に生成することが可能です。たとえば、毎日更新される売上データを基にしたレ
0
カバー画像

Googleフォームのデザインをカスタマイズする方法

この記事では、Googleフォームのデザインをカスタマイズするスクリプトについてご紹介します。特に、生成AIを使ってコードを書いたけれど、デザインの調整が難しいという方に役立つ内容です。GASを活用するメリットGoogle Apps Script(GAS)は、Googleフォームのデザインや機能を自分好みにカスタマイズするための強力なツールです。これにより、標準のGoogleフォームでは物足りない場合に、より魅力的で使いやすいフォームを作成することができます。業務効率化だけでなく、見た目の向上にもつながります。Googleフォームのカスタマイズの手順以下は、Googleフォームのデザインをカスタマイズするための基本的な手順です。①HTMLファイルの作成まず、HTMLファイルを作成し、フォームの基本構造を定義します。このファイルには、フォームの各要素(入力フィールド、ボタンなど)を含めます。②CSSファイルのインクルードフォームのスタイルを定義するために、CSSファイルをインクルードします。これにより、フォント、色、レイアウトなどをカスタマイズできます。②JavaScriptファイルの追加フォームの動作を制御するために、JavaScriptファイルを追加します。これにより、エラーチェックやフォームの送信処理などを実装できます。④フォームの各要素の設定フォームの各要素(例:日付入力フィールド、金額入力フィールド、ラジオボタンなど)を設定します。これには、HTMLタグを使って要素を定義し、CSSでスタイルを設定し、JavaScriptで動作を制御することが含まれます。⑤エラーメッセー
0
カバー画像

納品されたGoogleAppsScriptのコードを実行するまで

納品させていただいたコード(テキストファイル(txt拡張子のファイル))を実際にご利用いただくための手順をご紹介します。ー用意していただくものー・納品されたGoogleAppsScriptのコード(テキストファイル)・インターネットに繋がったWEBブラウザ(Chrome, Edge, Safariなど)・Googleのアカウントそれでは、納品されたコードをご利用するための流れとして、大まかに「コードをセットする」と「コードを実行する」に分けて説明させて頂きます。<コードをセットする>1. GoogleAppsScriptのサイトにアクセスします。ココナラのブログでは、外部のURLを載せることができないため、「GoogleAppsScript」と検索エンジンにて検索する方法でご案内させて頂きます。① 検索エンジンにて「GoogleAppsScript」と検索し、Googleのドメインである検索結果をクリック。②「start scripting」と書かれたボタンをクリック。③ 使用するGoogleアカウントを選択する。(すでにログインしている場合は、表示されない)① GoogleAppsScriptを管理するメインページが表示れたら、「新しいプロジェクト」と書かれたボタンをクリック。② GoogleAppsScriptのコードを作成、または編集するページ(エディタ)が表示される。2. 納品されたコードのファイルを開き、内容(コード)をコピーする① 元々書かれているコードは全て削除する。② 納品されたコードのファイルを開く。③ そのコードを全て選択(ショートカットのWin、Linux
0
カバー画像

GASでアプリケーション作ってみた。

ExcelVBAでいろいろアプリケーション作っていましたが、試しにというかお客様からのご依頼内容がExcelでは無理というか、ちょっと難しい内容でしたので、試しにGAS(GoogleAppsScript)で作ってみました。いまさらの感は否めませんが・・・スプリクトなので言語に慣れるまで、ちょっと戸惑いましたが解ってしまうとなかなか快適です。当初、頭の中がVBAなので????となって理解に苦しみましたが、慣れるとこっちのほうがいいかも、てな感じです。これもまた道具なので、得意不得意があります。サーバー起動なのでデータ量や処理速度にはあまり期待できないようです。得意技はやはりネットとの親和性でしょう。特に入力フォームを使ってどこからでもデータを集められるのは素晴らしい。具体的には下記のような作業の効率化の可能性があるでしょうか。ホームページ上に予約フォームをオリジナルで作成する必要はなくGASで作成した入力フォームを入れ込む事ができる。通常Webでデータを扱うアプリケーションを作成する場合、サーバーを準備したり、言語によっては作成する為にいろいろ準備が必要になります。そこまで大ごとにしなくても、簡単に作成できるのは素晴らしい。その他自動入力されたデータはスプレットシートで管理できる。必要ならGoogleカレンダーに自動入力管理が出来る。確認メール(サンクスメール)の自動送信ができる。など、いろいろ可能性があります。予約管理業務報告管理ホームページ上からの注文ホームページ上からの情報収集イベントの案内と出欠確認etc・・・必要と発想ではいろいろ出来そうです。問題もあります。Excel
0
カバー画像

業務管理にお悩みの中小企業に朗報!スプレッドシートで簡単・効率的な管理が可能に!

中小企業において、業務管理は重要な課題の一つです。しかし、多くの中小企業では、業務管理に必要なツールが十分に整備されていないため、業務の効率化が困難となっています。ここで、スプレッドシートを使った業務管理の効果について解説します。 スプレッドシートは、表計算ソフトの一つであり、数字や文字などのデータを一覧で管理することができます。業務管理には、スプレッドシートが非常に有効です。なぜなら、スプレッドシートは簡単に作成できるだけでなく、必要に応じてカスタマイズすることができ、多くのデータを効率的に管理することができるからです。 以下に、スプレッドシートを使った業務管理の効果をいくつか挙げます。 1.データの一元管理 スプレッドシートを使うことで、業務に必要な様々なデータを一元管理することができます。例えば、顧客情報、商品情報、在庫情報、発注情報などを一覧で管理することができます。これにより、情報の漏れや重複を防ぎ、スムーズな業務遂行を支援することができます。 2.自動化の実現 スプレッドシートを使うことで、業務の一部を自動化することができます。例えば、発注数や在庫数が一定値以下になった場合、自動的に発注依頼を出すようにすることができます。また、自動的に合計金額を計算して、請求書を作成することも可能です。 2-1.スプレッドシートの設計 まずは、発注数や在庫数を管理するためのスプレッドシートを作成します。スプレッドシートの列に、商品名、在庫数、発注数、発注依頼数などの項目を設定します。 2-2.発注数や在庫数の監視 スプレッドシートには、発注数や在庫数が一定値以下になった場合に自動
0
カバー画像

GASでのフォルダ作成について

GASでフォルダを作成する場合、DriveAppを使い、以下の様に書きます。const drive = DriveApp.getFolderById(`フォルダID);drive.createFolder(`作成フォルダ名`);これで指定したフォルダID下に新しくフォルダを作成することができます。ただ、GoogleDriveの場合、IDでファイル管理している為、同一名称のフォルダが作れてしまう為、以下の様にフォルダ名の重複チェックを入れてあげるとより安定性があがります。const drive = DriveApp.getFolderById(folderId); const folders = drive.getFolders();let folder;let flag = true;while(folders.hasNext()){  if(folder.getName() === folderName){    flag = false;    break;  }}if(flag === true){  drive.createFolder(folderName);}もうひと手間加えてあげると、関数化できるので使いまわしがしやすくなります。
0
カバー画像

[GAS] オーナー権限移譲時のメール非通知設定について

本記事はQiitaで公開した記事の要約・補足版となります。 GASにて共有ファイルやフォルダのオーナー権限を移譲する際、メール非通知でのオーナー権限移譲はできません。Driveのクラスメソッドに setOwner() というものがありますが、メールの通知・非通知に関するオプション項目が存在しません。Driveの拡張サービス、Drive API 経由で非通知設定しても同様です。では、非通知にするにはどうすればよいのでしょうか。Drive APIの公式リファレンスには、以下のように明記されています。Whether to send notification emails when sharing to users or groups. This parameter is ignored and an email is sent if the role is owner.(「公式リファレンス」より)上記はAPI V2の記述ですが、「設定」はできても無視され、通知されるとあります。GASにおけるDriveの拡張サービスでは、執筆時現在 Drive API V2となりますが、V3ではさらに以下のような記述となっています。Whether to send a notification email when sharing to users or groups. This defaults to true for users and groups, and is not allowed for other requests. It must not be disabled for ownersh
0
カバー画像

[GAS]Google翻訳を利用した多言語一括翻訳ツール(主に単語ベース)

ツールの概要Googleスプレッドシート上で動作する多言語一括翻訳ツールです。指定した日本語(主に単語)をデフォルトで任意に選択した5つの言語へ翻訳します。約100種類の言語に対応しています。01:言語選択02:翻訳結果現状は日本語からの一方通行翻訳となりますが、カスタマイズすれば双方向翻訳ツールになります。カスタマイズ案・メニュー項目からの実行→ボタンクリックで実行・UIをGAS(Google Apps Script)のHTML ServiceもしくはGoogleサイトに変更し、フォーム形式のSPA(Single Page Application)にする・音声読み上げライブラリによる翻訳結果の読み上げ(言語が対応していることが前提)設置サポート及びカスタマイズ相談かなりニッチなツールが多いと思いますが、案件応募用にテスト開発したツール類など、カスタマイズ前提で開発受付いたします。 もちろん、そのまま利用するのも良いですし、プロジェクト内の部品として組み込んだり、本ツールに機能追加するなど、ご要望に応じてカスタマイズいたします。 当方にて出品中のサービスを介してのみ受付致しますので、お気軽にお問い合わせください。本ツール以外のGAS開発に関するご依頼やご相談も歓迎いたします。※2021.02.14 GIFアニメが動作しないようでしたので修正しました。
0
カバー画像

【Google Apps Script】シートから一致する日付をしぼり込む方法④

さて、前回は取得したシートのデータを、forEachでループさせてログに表示させましたね。 そしてA列にある日付の表示を、getTime()メソッドでシリアル値として確認しようとしたところ、エラーが出たのでした。 前回の記事をお読みになりたい場合はこちら↓をご覧くださいね。エラーログを確認してみましょう。 ループが一度もされずにエラーが出ていますね。つまりシートの一行目でエラーになっているということです。なぜelement[0].getTime()でエラーが出るかを知るかには、element[0]になにが格納されているかを見てみなければなりませんね。 function testDateFunction() {  const ss = SpreadsheetApp.getActiveSheet();  const whole_sheet = ss.getDataRange().getValues();  whole_sheet.forEach(function (element,index) {    console.log((index+1)+"行目は「"+element[0]+"」だよ");  });1行目や2行目のデータはそれぞれ「サンプルシート」「日付」だと分かりました。String型ですね!これじゃ.getTime()メソッドが使えるわけないですね(;゚Д゚) 初めにシートのデータを取得した際、.getDataRange()でシートのすべてのデータを配列に格納しました。ですのでA列が日付で始まる行以外の、1行目や2行目などの「サンプルシート」や「日付」などの文字列が取得
0
カバー画像

スプレッドシートで使うGAS③

エクセルなどのテンプレートをスプレッドシートにインポートしている場合に、入力の自動化などで起こりがちな不具合対策として必要になってくるGASです。指定したシートをアクティブにするconst ss = SpreadsheetApp.getActiveSpreadsheet(); const sh = ss.getSheetByName('対象のシート名').activate();最終行/列を取得let lastrow = sh.getLastRow();// 最終行let lastclm = sh.getLastColumn();//最終列※最終列が結合されている場合に少なく表示されるので注意設定されている数値書式を取得(3桁区切りなど)let cell = 'M10';//M10セルの書式を取得 let nf = sh.getRange(cell).getNumberFormat();よく使う書式const range = sh.getRange(cell);テキスト形式: range.setNumberFormat('アットマーク') (書式なしのプレーンテキト) 日付形式: range.setNumberFormat('yyyy/MM/dd') 日時形式: range.setNumberFormat('yyyy/MM/dd HH:mm:ss') パーセント: range.setNumberFormat('0.00%') (小数点以下2桁のパーセント) 通貨形式: range.setNumberFormat('¥#,##0') (円記号付き整数) 数値(桁区切り): rang
0
カバー画像

ドライブ・ファイル操作で使うGAS

フォルダの存在確認・作成例 // 指定した名前のフォルダを取得   const folderName = "フォルダ名";  const folderIterator = DriveApp.getRootFolder().getFoldersByName(folderName);  let targetFolder;  if (folderIterator.hasNext()) {     // 存在する場合  } else {     // 存在しない場合作成   DriveApp.getRootFolder().createFolder(folderName);  }フォルダ内ファイル取得(MIMEタイプで処理分岐例)const   folderId = 'フォルダID';const files = DriveApp.getFolderById(folderId).getFiles();  while (files.hasNext()) {    let file = files.next();//ファイルを取得    if (file.getMimeType().match(/image/)) {// 画像ファイル指定例      // 処理       let filename = file.getName();//ファイル名        let fileid = file.getId();// ファイルID取得    }    console.log(files.next().getName());  }子フォルダ取得例//フォルダ名指定  const folder
0
カバー画像

Googleカレンダーで使うGAS

予定の追加・削除//カレンダーオブジェクト取得const calendar = CalendarApp.getCalendarById("カレンダーID");予定追加例const start = new Date('2026/06/28 15:00'); const end = new Date('2026/06/28 18:00'); calendar.createEvent('タイトル',start,end); //終日予定追加例①  const date = new Date('2026/01/01');   calendar.createAllDayEvent('タイトル',date); //イベントIDを取得しておく場合const event = calendar.createAllDayEvent('タイトル',date);const id = event.getId();//終日予定追加例②  const startDate = new Date('2026/03/01');   const endDate = new Date('2026/03/10');   calendar.createAllDayEvent('タイトル',startDate,endDate); //オプションをつけて説明や場所など追加する場合※locationは地図が表示されるので設定するなら住所または座標  const option = {     'description':'説明',     'location':'場所',     'guests': 'ゲストメールアドレス',
0
カバー画像

Google Workspace をコマンドひとつで操作できる「gws」を使ってみた

gws って何?Google が公開している Google Workspace CLI(コマンド名: gws)というツールをご存知ですか?Gmail、スプレッドシート、カレンダー、ドライブ…… Google Workspace のほぼすべてのサービスを、コマンドひとつで操作できるツールです。たとえば、受信メールの一覧を取得するのはこれだけ:gws gmail +triageスプレッドシートに行を追加するのも一行:gws sheets +append --spreadsheet ID --values '2026-04-01,請求書,10000円,A社'カレンダーに予定を入れるのも:gws calendar +insert --summary '月次ミーティング' --start '2026-04-10T10:00:00+09:00' --end '2026-04-10T11:00:00+09:00'GitHub で公開されており、すでに2万以上のスターがついています。※ Google の公式サポート製品ではなく、Google のエンジニアが開発・公開しているオープンソースプロジェクトです。操作対象の Google Workspace API 自体は Google の公式サービスです。GAS(Google Apps Script)と何が違う?Google Workspace の自動化といえば GAS が定番ですが、gws はアプローチが根本的に違います。【GASの場合】・動く場所:Googleのサーバー・実行時間:6分で強制停止・書く言語:JavaScriptベース(Google
0
カバー画像

GASでマネーフォワードAPIを使う|アプリ登録から認証設定まで一気通貫で解説

「マネーフォワードクラウド請求書のデータを、スプレッドシートに自動で取り込みたい」そう思って公式ドキュメントを開いたものの、専門用語が並んでいて、どこから手をつければいいか分からない。マネーフォワードクラウド請求書の外部連携機能とGASの連携は、設定項目が多く戸惑うかもしれません。でも、手順を順を追って進めれば、確実に動作させることができます。この記事では、アプリ登録から認証設定、動作確認までの流れを解説します。マネーフォワードクラウド請求書の外部連携|何ができるのかマネーフォワードクラウド請求書の外部連携機能を使うと、登録されているデータをプログラムから取得できます。請求書の一覧取引先情報品目マスタ例えば、「今月発行した請求書の一覧をスプレッドシートに自動で取り込む」といった業務を自動化できます。スプレッドシートとの相性が良く、無料で使えて、学習コストも低い。それがGASと組み合わせるメリットです。事前準備|必要なもの・マネーフォワードクラウド請求書のアカウント 有料プラン(スモールビジネス以上)が必要です。また、管理者権限を持つアカウントでログインしてください。・Googleアカウント GASを使うため、Googleアカウントが必要です。・専用ライブラリ GASで認証を実装するには、専用のライブラリを使います。ステップ1:マネーフォワードでアプリを作成◇ビジネスIDにログイン 事業所を選択してログインしてください。◇新規作成 左側のメニューから「外部連携」を選択し、「新規作成」をクリックします。◇アプリケーション名 「請求書データ取得」など、分かりやすい名前を入力します。◇
0
カバー画像

LiveDoor Blog AutoPoster(GAS・EasyType) 必要なもの一覧

読み方:【ライブドアブログ・オートポスター(ジーエーエス・イージータイプ)】LiveDoor Blog AutoPoster(GAS・EasyType)でライブドアブログに自動投稿するものに必要なものを書きます1:グーグルドライブGoogleアカウント・パスワード 2:(無料)ライブドアブログライブドアブログ・アカウント(ID・パスワード)ブログIDルートエンドポイントAtom APIパスワード3:ファイル関連商品データ(CSV)テンプレートファイル(テキスト)これらがあると当ツールを用いたライブドアブログで自動投稿できる環境下が揃います◆もう少し詳しく解説・・1:Googleドライブのアカウントはメールアドレスがあれば良し後は登録すればOK!2:ライブドアブログも『1:』のメールアドレスでそのままライブドアブログの登録をすればライブドアブログのID・パスワードは作業の流れでセットする事になります●ブログIDとは?ココナラブログの仕様上、リンクは貼れないので調べ方を教えますGoogle検索で『ライブドアブログ ブログID』で調べると見つかると思います●ルートエンドポイント・Atom APIパスワード3:ファイル関連 ●商品データ(CSV) 1行目はタグ2行目以降に値があるものですちなみにGoogleドライブは公式には書かれてませんが私が使ってみた体感では文字コード・改行コードは『utf-8 LF』がお勧めです(保証はないですが)このパターンのデータを自作できる方は大丈夫です!もしできない方で尚且つ『DMM・API』でも良い方は私が作成した別のツールは1つの案として挙げます●テン
0
カバー画像

Google Apps Script (GAS) 開発でHTMLとCSSを効果的に活用する術

Google Apps Script (GAS) は、Google Workspaceの各種サービスを自動化・連携させる強力なツールです。しかし、スクリプトの実行結果をユーザーに分かりやすく提示したり、複雑な入力を受け付けたりする際には、GASのコードだけでは限界があります。そこで重要になるのが、**HTMLとCSSの活用**です。これらをGASと組み合わせることで、ユーザーインターフェース(UI)を伴うWebアプリケーションやサイドバー、ダイアログを構築し、スクリプトの使いやすさと機能性を飛躍的に向上させることができます。この記事では、GAS開発においてHTMLとCSSがどのように役立つのか、そして具体的な活用事例を交えながらその要点をご紹介します。1. なぜGASでHTMLとCSSが必要なのか?GAS単体では、主に以下の方法でユーザーとインタラクションします。- `Browser.msgBox()`や`SpreadsheetApp.getUi().alert()`によるメッセージ表示- `Browser.inputBox()`や`SpreadsheetApp.getUi().prompt()`による簡単な入力- スプレッドシートのセルへの直接書き込みこれらの方法はシンプルで手軽ですが、以下のような課題があります。視覚的な表現の限界:テキストのみの表示では、情報を分かりやすく整理したり、ブランドイメージを伝えたりすることが困難です。複雑な入力の困難さ:複数の選択肢、ファイルアップロード、カレンダーからの日付選択など、複雑な入力を求めることができません。ユーザー体験の欠如: ユ
0
カバー画像

業務効率化に役立つサイドバー設置術

Googleドキュメントを効率的に利用するためには、ちょっとした工夫が大切です。その一つとして、Google Apps Script(以下GAS)を活用してドキュメントに便利なサイドバーを設置する方法があります。特に、段落スタイルを簡単に設定できるサイドバーは、日々の業務効率を格段に向上させる可能性があります。この記事では、そのGASスクリプトの構成とメリットをわかりやすく紹介します。下の図はGASで各段落のフォントスタイルを一括設定するためのサイドバーを設けた例です。スタイルの書式設定が一括でスムーズにできるようになりました!サイドバーの設置で作業を効率化まず、なぜGASでサイドバーを設置するのか? それは、直感的で簡単に操作できるUIを提供することで、ドキュメント内のスタイル管理をより効率的にするためです。サイドバーを活用すると、ドキュメント内の段落スタイルを一括して設定できるようになり、複雑なフォーマットの調整が不要になります。特に、ヘッディングやフォントサイズ、カラー設定など、頻繁に変更する必要のあるスタイルの管理が一目でわかりやすくなります。スクリプトの構成の手順このサイドバーを設置するGASスクリプトは、いくつかのステップで構成されています。メニューの作成: ドキュメントを開いたときに自動でサイドバーを表示するメニューを作成します。これにより、毎回手動でスクリプトを実行する手間が省けます。サイドバーの表示: サイドバーをHTMLとCSSでデザインし、GASのHTMLサービスを使って表示します。これにより、ユーザーはドキュメント内から直接スタイルを変更できるようになり
0
カバー画像

【GASでチームの情報共有を爆速化】Googleチャットで記事を自動配信!〜チームの連携を強化するGAS活用術〜

「情報共有、もっとスムーズにできないかな…」そう思ったことはありませんか?チームで仕事をする上で、情報共有は欠かせません。しかし、メールでのやり取りや会議での共有だけでは、どうしてもタイムラグが生じてしまいます。「もっとリアルタイムに情報を共有したい!」GASで実現できること今回ご紹介するGASスクリプトは、スプレッドシートにまとめた記事情報を、Googleチャットのスペースに自動配信します。記事のタイトル、メディア、要約、画像などを自動で抽出し、見やすい形でGoogleチャットに配信します。これにより、チームメンバーはいつでもどこでも最新の情報にアクセスできます。スクリプトの仕組みこのスクリプトは、スプレッドシートから記事情報を取得する前回送信した記事と重複しないように、ランダムに記事を選択する選択した記事情報を整形し、GoogleチャットのWebhook URLを利用してスペースに送信するという流れで動作します。GASを活用するメリットGASを使えば、チームの情報共有を大幅に効率化できます。リアルタイムな情報共有情報共有の手間を削減チームメンバーのエンゲージメント向上GASは、あなたのチームの情報共有を強力にサポートします。GASをもっと活用したいあなたへGASを使えば、今回ご紹介した記事の自動配信以外にも、様々な業務効率化を実現できます。例えば、タスク管理の自動化進捗状況の自動報告顧客情報の自動更新など、あなたのアイデア次第で可能性は無限大です。GASの専門家によるサポート「GASを使ってみたいけど、何から始めればいいか分からない…」そんな方は、ぜひ私のココナラサービスを
0
カバー画像

GAS開発でよくある間違い

こんなときトリガーで実行したイベントの引数eから中身を取得するとき※GASとは...Google Apps Scriptの略で、JavaScriptベースのスクリプト言語です。GASを使いこなせると、Googleサービスや外部サービスを連携させて、アレコレ自動化できます。(A)Googleフォームの場合e.response.getItemResponses()(B)Googleスプレッドシートの場合e.valuese.namedValues最後になんで同じにしなかったん...ここで躓いた人、私以外にも世界に1万人はいると思う。ChatGPT 4oも間違いに気づいていないし。
0
カバー画像

Google Apps Scriptの制限について

スクリプト実行時間「1実行あたり6分」という制限があります。6分を超える大きい処理の場合、エラーになり処理が止まってしまうため、リファクタリングをするなどして実行時間を減らしましょう。スクリプトあたりのトリガー数「スクリプトあたりのトリガー数は最大20」という制限があります。無闇にトリガーを増やさなければあまり気にしなくても問題なさそうですトリガーの合計実行時間「1日あたり90分」という制限があります。1日のうちにトリガー経由でスクリプトが実行できる総時間の上限のことで、例えば、1時間おきに実行するトリガーを設定し、それぞれのスクリプトが5分かかる場合、1日の総実行時間は24回×5分=120分 となり、1日の制限である90分を超えた時点でエラーになります。詳しくは「developers.google.com/apps-script/guides/services/quotas」をご参照ください
0
カバー画像

[GAS] Maps.ElevationSamplerで標高を調べる

以前にMaps関連のクラスを利用した小ネタを紹介しましたが、ElevationSamplerというクラスが残っていましたので、自他称日本一低い山の標高を調べてみました。本記事はQiitaにて公開した記事の要約版となります。概要1.日和山 宮城県仙台市(3m) 2.天保山 大阪府大阪市(4.5m)※二等三角点のある山としては日本一低い3.蘇鉄山 大阪府堺市(7m)※一等三角点のある山としては日本一低い 4.大潟富士 秋田県南秋田郡大潟村(0m)※周囲がマイナス標高 5.弁天山 徳島県徳島市(6.1m)※自然の山としては日本一低い ElevationSamplerを使って上記5山の標高を取得します。技術的な話標高を取得するためには、まず、地名や施設名から緯度と経度を取得する必要があります。ElevationSampler単体では直接標高を取得することができないため、一度Maps.Gecoderを経由して緯度経度リストを生成します。地名は特定できるもの前提のため、エラー処理及び複数候補がある場合の処理は実装していません。 なお、取得結果は日和山 3m→2.2m、天保山 4.5m→3.8m、蘇鉄山 7m→7m、大潟富士 0m→-4.2m、弁天山 6.1m→1.8mとなり、事前に調査した公開データと異なります。多少の誤差はあるとしても、この辺りは何を基準にした公開データ、計測データなのかよくわかりませんね。おそらく純粋な標高データと大潟富士のような比高ということでしょうかね。設置サポート及びカスタマイズ相談 かなりニッチなツールが多いと思いますが、案件応募用にテスト開発したツール類など、
0
カバー画像

【Google Apps Script】シートから一致する日付をしぼり込む方法⑤

前回の記事では、日付の記載がある行だけを絞り込むことができました。シートの先頭の空行や見出しを飛ばしてデータを取得するほか、行の途中で空行などがあった場合にも、日付のデータだけを取得することに成功しましたね(´∀`*)今回でこの連載も終了となります。前回は.filter()メソッドを使って、A列に日付のデータがある行だけを抽出しました。さてこの連載の最終目的に立ち返ってみましょう。このような↓データの中から、一致する日付の行だけを抽出する、もしくは〇日~〇日まで、といったようなある期間に該当する行を抽出するというのが目的でした。実は、これも.filter()メソッドと、これまでに学んできたことを応用すればとても簡単に実現することができます。日付の比較をするには、.getTime()メソッドを使うのでしたね。それを、前回作成したコードに応用してみましょう。↓前回のコードconst filtered = whole_sheet.filter(function (element) {    return typeof element[0] == 'object';});上記のコードでは、2行目の typeof element[0] == 'object' がTrueとなるとき、つまり「A列の値がオブジェクト型である」という条件に一致するものだけを抽出し、filteredという新しい配列を作成したのでした。では typeof element[0] == 'object' という条件に、さらにもう一つの条件を追加したらどうでしょうか?そうなんです! それができちゃうんです(∩´∀`)∩B
0
カバー画像

【Google Apps Script】シートから一致する日付をしぼり込む方法③

さて、今回の記事からはいよいよ日付をまとめて処理していきたいと思います。 前回の記事をお読みになりたい場合は、こちらをご覧くださいね↓このようなシートを用意しました。 なんのシートなんでしょうか。適当に用意しただけなので私にもわかりません(笑)まずはこのシートを、まとめて配列に格納してしまいましょう。 function testDateFunction() {  const ss = SpreadsheetApp.getActiveSheet();  const whole_sheet = ss.getDataRange().getValues();}これで、現在開いているシートが丸ごと取得できました。 変数whole_sheetの中身は、以下のような二次元配列になっています。 ちょっと見づらいですね……💦スプレッドシートやエクセルでは、シートは二次元配列で表示されます。 二次元配列とは、配列の中にさらに配列が入っているものです。ひとつのセルがひとつの要素となり、その集まりが「行」として一次元配列に、またそのひとつの行がひとつの要素として配列にまとめられ、二次元配列になるという感じです。 [セル、セル、セル] ← 一次元配列 [[セル、セル、セル], [セル、セル、セル], [セル、セル、セル]] ↑二次元配列 という感じです。 ちなみに、一行分のデータを取得した際には一次元配列になる、なんてことはないですよ。 一行分なら、[[セル、セル、セル]] ←こういう二次元配列になりますね(´∀`*) では、取得したデータをforEachで表示させてみましょう。 whole_sheet
0
カバー画像

【自動化の第一歩】Googleフォームの回答からPDFを作成し、自動でメール送信する仕組みのご紹介

こんにちは。「カノ|Googleフォーム・GAS自動化」です。 これまでの案件や公開依頼の確認を通じて、個人事業主様や小規模事業者様のGoogleツールまわりの事務作業には、Googleフォーム、スプレッドシート、Gmailなどを使って軽くできる部分が多いと感じています。 事業が軌道に乗り、お客様からの申込や問い合わせが増えてくると、嬉しい反面、裏側の事務作業が大きな負担になってきませんか? 「申込フォームの回答をコピーして、Wordのテンプレートに貼り付け、PDFに書き出して、メールに添付して送る……」 毎回数分で終わる作業でも、件数が増えれば無視できない時間になります。何より、「宛先を間違えていないか」「金額や日時にコピペミスはないか」という心理的なプレッシャーは、日々の業務の中で少しずつ蓄積していくものです。 今回は、そうした手作業の負担を減らす「Googleフォーム回答のPDF化と確認メール送信の自動化」について、架空の事例をもとにご紹介します。いきなり大規模なシステムを導入しなくても、身近なツールで小さな業務改善が可能な場合が多いです。 架空の例:講座の申込受付と「申込控えPDF」の自動送信 ここでは、あるスクール運営者様が「講座の申込受付」を行っていると仮定します。 現在は、お客様がフォームから申し込むと、運営者様が手作業で申込内容をまとめ、PDFの控えを作成してメールで送付している状態です。 この手作業を、Google Apps Script(GAS)というGoogleが提供するプログラムを活用して、以下のような自動化した流れに切り替えることができます。 仕組みの
0
カバー画像

Gmail × スプレッドシート × カレンダーを連携させてみた【gws実践編】

前回の記事ではGoogle Workspace CLIツール「gws」の基本操作を紹介しました。今回はいよいよ、サービス間の連携を実際に組んでみます。【今回やったこと】・Gmailの請求メール → スプレッドシートに自動転記・メール本文からAIが金額・日付・取引先を自動抽出・ドメイン更新メール → カレンダーに期限を自動登録・スプレッドシートのデータ → レポートメールを自動送信・重複防止(同じメールを2回処理しない)・エラー発生時に通知【Gmail → スプレッドシート自動転記】請求メールをスプレッドシートに自動で記録する仕組みです。まず、Gmailで対象メールにラベル(例: invoice)を付けておきます。gws でラベル付きメールを取得し、本文を読み取り、スプレッドシートに行を追加します。取得 → 読み取り → 追記、この3ステップをプログラムでつなぐだけです。【AIによるメール内容の自動抽出】ここがGASとの最大の差別化ポイントです。請求メールのフォーマットは送信元ごとにバラバラです。正規表現でひとつずつ対応していたらキリがありません。そこでAI(LLM)にメール本文を渡して「日付、金額、取引先、説明を抽出して」と指示するだけで、フォーマットに関係なく正確にデータを取り出せます。実際にAnthropicの請求メール(英語、Stripe経由)を処理した結果がこちらです。・日付: 2026-03-14・取引先: Anthropic, PBC・レシート番号: 2XXX-2XXX-2XXX・金額: $100.00・内容: Max plan - 5x年をまたぐ期間表記(Dec
0
カバー画像

スプレッドシートで使うGAS①

カスタムメニュー作成スプレッドシートを立ち上げた時のメニュー欄にオリジナルのプルダウンメニューが作成されるGASです。例3、4は入れ子になったサブメニューも作るタイプです。※対象のスプレッドシートに直接紐づいたGAS用です※トリガーの追加、承認手続きが必要です例1function onOpen() {   const ss = SpreadsheetApp.getActiveSpreadsheet();   const menuList = [];   menuList.push({ name: "処理1", functionName: "function1" });   menuList.push(null);   menuList.push({ name: "処理2", functionName: "function2" });   ss.addMenu("カスタムメニュー", menuList); }例2function onOpen() {   const ui = SpreadsheetApp.getUi();   const menu = ui.createMenu('カスタムメニュー');   menu.addItem('処理1', 'function1');   menu.addToUi(); }例3 サブメニューのある例function onOpen() {   SpreadsheetApp.getUi()     .createMenu('カスタムメニュー')     .addItem('処理1', 'function1')     .addSeparato
0
カバー画像

Googleフォームで使うGAS

※一般的には新しくトリガーを作成してGASを実行します。トリガー作成時の本人確認、実行許可が必要です。※フォーム送信前の確認用や送信後のオリジナル画面を作りたい場合は、スプレッドシートに紐付いたGASでフォームを丸ごと作成することをおすすめします。フォームデータの取得と処理パターンfunction onFormSubmit(e) {   // "メールアドレスを収集する"の設定時に以下でアドレスの収集ができる   //responseはgoogleフォームに紐づいたGAS限定  const email = e.response.getRespondentEmail();  //データの取得   const itemResponses = e.response.getItemResponses();  //データの処理}  //データの処理(例1)    for (let itemResponse of itemResponses) {     const item = itemResponse.getItem();     const itemType = item.getType();// Type別で処理したい場合に    const title = item.getTitle();//入力欄のタイトル("お名前"など)    const value = itemResponse.getResponse();     //なんらかの処理   }//データの処理(例2) 自動返信などで入力内容をまとめたい場合などlet body = '送信内容\n\n'; itemRespo
0
カバー画像

Threads運用の「見えない壁」を、GASが一気に取り払った話

「データ分析したい」と思っても、その先に進めない理由Threadsを始めて数ヶ月。投稿を続けているうちに、こんな疑問が浮かんできませんか?「自分の投稿、本当に届いているのだろうか」「どの内容が反応良かったのか、ちゃんと把握できているだろうか」データを見たい。分析したい。改善したい。その気持ちはあるのに、なぜか前に進めない。多くのThreads運用者が、そんな「見えない壁」にぶつかっています。先日、クラウドソーシング経由でご依頼いただいたのは、まさにそんな状況の方でした。個人でThreadsアカウントを運用し、フォロワー1,000人を目指している方です。その方が直面していた「壁」は、こんなものでした。API?トークン?専門用語が多すぎて、調べるだけで疲れたMeta for Developersの設定手順が複雑で、途中で断念した仮にデータが取れても、それをどう料理すればいいか分からない分析ツールは有料が多く、個人運用では費用対効果が合わない結局、アプリのインサイト画面を眺めるだけで終わっているこのツールが実現する「一本道」とは?従来、Threads分析は複数のステップに分断されていました。それぞれのステップで異なる知識が必要で、初心者が挫折しやすい構造だったのです。このツールが提供するのは、その分断を解消した「一本道」。具体的には、以下のような流れになります。Meta for Developersで土台を作る最初に行うのは、Threads APIを使うための環境整備です。開発者アカウントを作り、アプリを登録し、必要な権限を設定します。ここで挫折する人が多いのですが、実は手順さえ分か
0
カバー画像

【GAS開発者向け】ウェブアプリのURLを変えずに更新する方法

クライアントさまから一番よく聞かれる質問GASのウェブアプリ構築案件を引き受けていると、必ずと言っていいほど聞かれる質問があります。「修正したら、また新しいURLを社内に共有し直さないといけないんですか?」人事システムや勤怠管理ツールなど、社内の多くの人が使うアプリを納品した後。お客様から「ちょっとここを直してほしい」と連絡が来て、修正して再デプロイ。そのたびに新しいURLが発行されて、全社員に再通知が必要になる。これ、めちゃくちゃ面倒ですよね。実は、URLを変えずに中身だけ更新する方法があります。私は案件でウェブアプリを納品するとき、必ずこの手順を説明しています。知っているだけで運用がすごく楽になるので、ぜひ参考にしてください。知らないと無駄な作業が増え続ける毎回URL再共有するのは、本当に非効率「新しいデプロイ」を押すたびに、新しいURLが生成される。この仕様を知らずに開発していると、こんなことになります。・全社員にメールで新URL通知・ブックマークの更新依頼・マニュアルのURL修正・「前のURLが開けません」という問い合わせ対応これ、全部やらなくていい作業です。でも、「デプロイを管理」という機能を知らないだけで、毎回この手間が発生してしまう。案件を進めるとき、お客様にこの方法を説明すると、みなさん驚かれます。「え、そんな機能があったんですか!」って。URLを変えずに更新する具体的な手順案件で必ず使っている5ステップここからは、実際の操作手順を説明します。画面を見ながら一緒にやってみてください。手順1:コードを上書き保存するGASエディタでコードを修正修正が終わったら、ツー
0
カバー画像

LiveDoor Blog AutoPoster(GAS・EasyType)ツールの中身・様子

読み方: 【ライブドアブログ・オートポスター(ジーエーエス・イージータイプ)】ここが入力する項目です・・ライブドアID Atom APIパスワード ブログID ルートエンドポイント ※調べ方は後で説明●トリガーのセット 分単位 10・15・30時間単位 1・2・4・6・8・12 日単位 0~7 (0なら0:00~1:00 7なら7:00~8:00のランダム) タイトルのタグ記入 カテゴリ名の記入 CSVデータのファイル名記入 テンプレートのテキストファイル名記入※調べ方ライブドアIDはブログ作成時に作り、ブログにログインする時に使うアカウントなのですぐわかると思いますブログIDはリンクはココナラブログの仕様上貼れないので調べ方を教えます『ライブドアブログ ブログID』でググるとあると思いますすると>[Blog PC版] ブログURLからIDを確認する方法のページが出ると思いますAtom APIパスワードとルートエンドポイントは#GAS #GoogleAppsScript #自動化ツール #API連携 #CSV処理 #ライブドアブログ #ブログ自動投稿 #ブログ運営 #ブログ作成 #アフィリエイトブログ #アフィリエイト #時間短縮 #副業 #コンテンツ制作 #サテライトブログ #作業効率化 #ほったらかし運営 #Webマーケティング #SEO対策 #ライブドアブログ #オートポスター #ジーエーエス #イージータイプ
0
カバー画像

【完全ガイド】GASの承認画面の進め方

はじめに「警告画面が出てきて不安...」「無料と有料で手順が違うの?」GASを初めて実行したとき、誰もが感じる不安や疑問ではないでしょうか。アカウントタイプ別に、承認手順を1つ1つ丁寧に解説します。無料アカウントの場合の承認手順ステップ1:「承認が必要です」✅ これはむしろ安全な証!あなたの大切なデータを守るためのチェックポイントです。→ 「続行」を押して次に進みましょう。ステップ2:「安全ではないページ」という表示✅ 落ち着いて大丈夫!これはGoogle謹製の承認画面です。→ 画面左下の「安全ではないページに移動」をクリックステップ3:アカウントの選択✅ 普段お使いのGoogleアカウントを選びましょう。→ アカウントをクリックステップ4:「~がGoogleアカウントへのアクセスを要求しています」✅ これもセキュリティのための確認画面です。→ 内容を確認して「許可」をクリック有料アカウント(Google Workspace)の場合ステップ1:「承認が必要です」✅ 組織アカウント用の専用画面が表示されます。→ 「続行」をクリックステップ2:権限の確認✅ アカウントは自動で選択されています。✅ 警告画面も最小限で、よりスムーズです。→ 内容を確認して「許可」をクリック無料・有料の主な違い◇無料アカウントの特徴・セキュリティ警告が詳細に表示・アカウント選択のステップあり・「安全ではないページ」の警告あり◇有料アカウントの特徴・組織管理された安全な環境・アカウント選択が自動・警告表示が最小限・より短いステップで完了なぜ違いがあるの?有料アカウントは>>■ 組織で管理されている■ セキ
0
カバー画像

【GAS活用術】シート移動を爆速化!〜複数のシートをスマートに管理するGASスクリプト〜

「シート多すぎて、目的のシート探すのめんどくさい…」そんな悩み、ありませんか?シートが多いスプレッドシートだと、目的のシートを探すだけでも一苦労ですよね。スクロールしては戻り、またスクロール… 時間の無駄だと感じていませんか?GASを使えば、この悩みを一瞬で解決できます!シート移動を爆速化するGASスクリプト今回ご紹介するGASスクリプトは、複数のシートをタブで管理し、ワンクリックで目的のシートに移動できるようにします。もう、シートを探す手間とはおさらばです!スクリプトの仕組みこのスクリプトは、大きく2つの関数で構成されています。onOpen関数: スプレッドシートを開いたときに、シート名の一覧をメニューに追加します。navigateToSheet_〇〇関数: 各シートに移動するための関数です。メニューの項目をクリックすると、対応するシートにジャンプします。GASで実現できることこのスクリプトを使えば、シートが多いスプレッドシートでも、ストレスなく作業できます。例えば、業務日報顧客管理在庫管理など、複数のシートで管理する必要があるスプレッドシートで特に効果を発揮します。GASをもっと活用したいあなたへGASを使えば、今回ご紹介したシート移動の自動化以外にも、様々な業務効率化を実現できます。例えば、データの自動入力メールの自動送信ファイルの自動整理など、あなたのアイデア次第で可能性は無限大です。GASの専門家によるサポート「GASを使ってみたいけど、何から始めればいいか分からない…」そんな方は、ぜひ私のココナラサービスをご利用ください。私は、GASを使った業務効率化の専門家です。
0
カバー画像

Google Apps Script 基礎知識

今回は、GAS初心者の皆さんに向けて、ChatGPTを使いこなすために必要な基礎知識を分かりやすく解説します。そもそもGASって何?GASは、Googleのサービス(スプレッドシートやドキュメントなど)を自動化するプログラミング言語です。例えば、・出席簿の自動作成・メールの一斉送信・データの集計・分析など、普段の手作業を自動化して、時間を大幅に節約できます!GASの基礎知識①:演算子演算子とは、計算や比較などを行う記号のことです。例えば、①算術演算子:四則演算(足し算、引き算、掛け算、割り算)や余りを計算するための演算子です。・+ (足し算)・- (引き算)・* (掛け算)・/ (割り算)・% (余り)②比較演算子:2つの値を比較するための演算子です。・== (等しい)・!= (等しくない)・> (より大きい)・< (より小さい)・>= (以上)・<= (以下)などがあります。③論理演算子:複数の条件を組み合わせるための演算子です。・&& (AND:両方とも真の場合に真)・|| (OR:どちらか片方が真の場合に真)・! (NOT:真偽を反転)これらの演算子を組み合わせることで、複雑な処理も簡単に記述できます。GASの基礎知識②:変数変数とは、データを一時的に保存しておく箱のようなものです。例えば、let name = "田中"; // nameという変数に「田中」という文字列を代入let age = 17; // ageという変数に17という数字を代入変数を使うことで、コードが読みやすくなり、管理も楽になります。GASの基礎知識③:関数関
0
カバー画像

議事録作成の救世主!GASでカスタムメニューを作ろう

議事録作成、面倒ですよね。誰が何を話したか、次に何をすべきか、手書きでまとめるのは大変です。そんなあなたに朗報です!Google Apps Script(GAS)を使えば、議事録作成を効率化するカスタムメニューを簡単に作れます。GASで議事録作成が変わる!GASとは、Googleが提供するプログラミング言語です。Googleドキュメントと連携し、自動化やカスタマイズを可能にします。例えば、話者の名前や議題をワンクリックで挿入したり、ToDoリストを自動生成したりできます。具体的な仕組みカスタムメニューを作成:Googleドキュメントのメニューに、「議事録」という項目を追加します。サイドバーを表示:メニューから「サイドバー作成」を選ぶと、議事録作成用のサイドバーが表示されます。サイドバーで操作:サイドバーで話者や議題を入力し、ボタンをクリックすると、ドキュメントに自動で挿入されます。これだけで、議事録作成が格段に楽になります!なぜGAS?「GASって難しそう…」と思った方もいるかもしれません。確かに、プログラミングの知識がないと、自分でGASを作るのは難しいです。でも、ココナラなら大丈夫!経験豊富な出品者が、あなただけのGASを作成します。難しいコードを書く必要はありません。まとめGASを使えば、議事録作成が驚くほど効率化します。ココナラで、あなたの時間を有効活用しませんか?
0
カバー画像

01 - 案件の募集を自動で収集してくるGASプログラムを作った

久しぶりにココナラの記事を書いてみます。フリーランスとして活動を始めて半年目に突入したわけだけど、会社員のときからやっていた仕事以外の新しい案件がなかなか取れていない現状があって、先月からコツコツと案件募集に応募してみたりする営業活動もどきを始めてみた。1. いちいち募集を探すのがめんどうくさい案件を募集している媒体を開いてみるととんでもない数の業務委託・副業募集が出稿されています。ここの中から自分のやってみたい案件や力になれそうな案件を見つけ出すのはとてもめんどくさいんですよね。営業代行とか、ゴリゴリのエンジニア募集の案件が多いんだけれど、そういうのも省きながら探していくと結構な時間がかかります。「次へ」のボタンをポチポチ押す作業、実にだるいです。「よし、リストアップは自動でやろう」ということでGASプログラムを組み始めた。2. 自動化開始どこの媒体をスクレイピングしているかは書けないのだけれども、とりあえずログインは必須。ログインした上で募集の一覧がやっと全件見れるようになる。・ログイン部分を構築まず手始めにログインするGASを作成。本来GASではブラウザ操作はできない。しかしあれこれとサイト構造を分析して、ブラウザのやっている動作をGASで再現すると、ログインも一応できてしまいます。実際のコードはこんな感じ。ログイン用のメールアドレスとパスワードがあれば、ログインできちゃいます。・募集のリストアップ「次へ」のボタンを押すのがめんどくさいので、直近1000件くらいをスプレッドシートにリストアップできればとりあえずはOKかなということで、実際に取得してみた。シートの内容を出し
0
カバー画像

[GAS]Maps.DirectionFinderを使用し2点間の距離を一括取得する

ツールの概要 以前に紹介したGoogleスプレッドシートの施設リストから、緯度、経度、住所を取得するツールの派生版です。今回はGoogle Apps Script(以降、GAS)のMaps.DirectionFinderを利用します。01:山手線の各駅の住所リスト02:実行結果(処理時間約20秒)サンプルでは事前に取得してあった住所を元に、その住所を逆順に並べた2駅間の距離を取得しています。(例:東京駅、有楽町駅→約0.293km)なお、距離計測モードは車基準ですが、その他Googleマップで利用できるルート検索時のモード設定(徒歩や自転車など)への変更も可能です。また、一括取得に関しては、実行時間制限を考慮し、1回あたり300件程度までの取得にとどめておいたほうが良いでしょう。カスタマイズ案 ・目的地までの予想時間取得・各店舗ごとの商圏分析の基礎データ取得設置サポート及びカスタマイズ相談 かなりニッチなツールが多いと思いますが、案件応募用にテスト開発したツール類など、カスタマイズ前提で開発受付いたします。 もちろん、そのまま利用するのも良いですし、プロジェクト内の部品として組み込んだり、本ツールに機能追加するなど、ご要望に応じてカスタマイズいたします。 当方にて出品中のサービスを介してのみ受付致しますので、お気軽にお問い合わせください。 本ツール以外のGAS開発に関するご依頼やご相談も歓迎いたします。[追記 2022.10.11]当ブログ記事から何件かお問い合わせいただいていたこともあり、Maps.DirectionFinder連携に特化したサービスを新たに追加しました。標準
0
カバー画像

【Google Apps Script】シートから一致する日付をしぼり込む方法②

今回はDateオブジェクトのgetTime()メソッドについて解説していきます。 前回の記事で、getTime()メソッドは「とある起点からの経過ミリ秒を取得するメソッド」だと書きました。 もし前回の記事をご覧になりたければ、こちらをクリックしてくださいね。そこのところを詳しく見ていきましょう! まず前回同様に、変数todayに今日の日時を格納してみましょう。ちなみにこの記事を書いている現在、日にちは2月2日です。 const today = new Date(); 現在日時の取得はこれでできるんでしたね。ログを見てみましょう。console.log(today); 無事、現在時刻が格納できていますね。では console.log(today.getTime()); としてみるとログにはなにが表示されるでしょうか??function testDateFunction(){  const today = new Date();  console.log(today);  console.log(today.getTime());}なんだか謎の数字「1612194136072」が表示されましたね(;'∀') 実はこれが、「とある起点からの経過ミリ秒」の数字です。とんでもなく大きな数字のように思えますが、ミリ秒であらわされた数字なんですね~。 ではここで気になるのが、「とある起点」っていうのはいつのことよ?? ということだと思います。 ズバリ答えを言うと、それは1970年1月1日午前0時0分0秒(UTC)のことです! これはUNIX時間といって、コンピューターで時刻を表現する際の、基
0
カバー画像

LiveDoor Blog AutoPoster(GAS・EasyType) YOUTUBEで説明動画

読み方: 【ライブドアブログ・オートポスター(ジーエーエス・イージータイプ)】#GAS #GoogleAppsScript #自動化ツール #API連携 #CSV処理 #ライブドアブログ #ブログ自動投稿 #ブログ運営 #ブログ作成 #アフィリエイトブログ #アフィリエイト #時間短縮 #副業 #コンテンツ制作 #サテライトブログ #作業効率化 #ほったらかし運営 #Webマーケティング #SEO対策 #ライブドアブログ #オートポスター #ジーエーエス #イージータイプ
0
カバー画像

【開発挑戦中】ライブドアブログ大量記事投稿完全自動化・その3 記事

前日のリンクはこちら(【開発挑戦中】ライブドアブログ大量記事投稿完全自動化・その2 記事)↓ ↓ ↓ ↓ ↓前回よりちょっと時間経っちゃったかな?GASは初挑戦でしたが私が作成したいと思ったもの自体の完成はしました♪CSVに大量のデータを入れてGASを使い、ライブドアブログにアップロードするものですGAS特有の『トリガー』を使うので一度セットすれば自動でアップロードできます。今の世の中やはり自動化が一番ですからね~私が以前に作成した【DMM・API・xmlデータメイカー(イージータイプ・プロト)】をベースに設計したのでDMMのAPIを使ったアフィリエイトを考えている方にはお勧めです。また、必ずしもDMMのAPIデータである必要もないと思ってます。(現時点では確認はしてない)これから実際にある程度の時間は自分で使ってみて不具合が無いか?を調べようと思います。DMMのAPIじゃなくてもアップロードできるか?これも調べます。◆ このツールを使うのに必要な技量や知識 ◆※は必須or強く必要 〇はあれば良し※1:CSVに理解のある方※2:(無料)ライブドアブログの経験がある方※3:グーグルドライブの扱いが判る人〇4:GASを理解してる人〇5:DMMや他のCSVデータが扱える人◆ どういった人にお勧め? ◆1:ライブドアブログに大量の商品データ等を上げたい人2:ライブドアブログをサテライトに使いたい人3:初心者やお金・資金が厳しい人等ですかね先程も言いましたが、私が以前作成したツールも合わせると使いやすいと思います援護射撃として、ブログでアップした商品をSNS(Twitter等)に紹介も良
0
カバー画像

【開発挑戦中】ライブドアブログ大量記事投稿完全自動化・その2 記事

前日のリンクはこちら以前は結構ダラダラ気味に進めていたので今回もダラダラするかと思ったのですが思いの外早く進むのかな?って感じですかね?(判りませんがw)今日はライブドアブログへの記事のアップロードを四苦八苦してたので『これは1週間も掛かるかな?それ以上かな?』と思ってたのですが、なんとかアップロードできましたwその後、GASのトリガー等の操作もできたのでここまでできるとは思いませんでしたまた、私が以前に作成した【DMM・API・xmlデータメイカー(イージータイプ・プロト)】のCSVも使える感じでしたあれで100~1000作品のDMMの商品データは簡単に作成できるので無料のライブドアブログに挙げられるならお金がないアフィリエイターにも良いものを提供できそうな気がしますね (*´ω`*)去年GASを使ったTwitter自動投稿をヒントにこれを作ろうと思いましたただ、Twitterは『API契約』をしてないと基本凍結されると睨んでます(ソースは私)ライブドアブログならAPIの公式の公開はしてるしそれもココナラで購入した自動化ブログ投稿ツールも使った事のある身としてはこれは(極端な使い方をしなければ)大丈夫だと睨んでますねできるだけ早く研究し、製品化したいですね~ライブドアブログは無料ブログの中でもアダルトも(条件付きで)OKですのでアフィリエイターからすれば使い勝手・幅が広いと思いますFC2ブログがよりアダルト色が強くてもいけますがあちらはAPIは非公開なので今回の研究の対象から外れますねライブドアブログはブログのカスタマイズ性も中々良いのでお金がないアフィリエイターにはおすすめ
0
カバー画像

「あれ、何やるんだっけ?」がゼロに!Googleフォーム送信でイレギュラータスクが自動登録される仕組みを作りました✨

はじめに障害者グループホームの運営では、日々のルーチン業務だけでなく、イレギュラーな対応がたくさんあります。新規利用者の体験や本入居、退去、新施設の立ち上げ、緊急対応……そのたびに「やるべきこと」があり、それを忘れずに対応するのは本当に大変。そんな現場で、「やるべきことを上司に確認しなくても、自分でミスなく対応できるようにしたい!」という思いから、GoogleフォームとGoogleマイタスクを連携させて、フォーム送信だけでタスクが自動登録されるシステムを作りました!このシステムを作った背景グループホームでは、マニュアルはあっても忙しい日々の中で確認が後回しになることも多く、対応漏れが発生しがちです。・新規体験が決まったとき・本入居が決まったとき・退去の連絡が来たとき・新しい施設を立ち上げるとき・利用者の急な対応が必要なときこのような"イレギュラー"な場面では、確認や引き継ぎがうまくいかないと、対応漏れやトラブルの元になります。「フォームを送信するだけで、やるべきタスクが全部自動でリスト化されたら便利じゃない?」そんなアイデアを形にしたのが、今回ご紹介する仕組みです。システムの仕組み使い方はとてもシンプルです。①新規利用者の体験や退去など、シチュエーションごとに専用のGoogleフォームを用意(GoogleフォームはQRコードで読み取り、スマホからでも簡単に送信できる!)②現場の職員が該当するフォームを送信③送信内容を元に、Googleマイタスクに必要なタスクが自動で登録される🌟タスクの内容は、あらかじめテンプレートとして設定されているため、送信者が何か特別な操作をする必要はあり
0
カバー画像

【GAS】Formの回答をDocsに代入,PDF化してMailで送信

はじめに初めまして.ココナラでプログラミングや語学など様々なサービスを展開中のodrag0nと申します.早速ですが今回はGASを使用して,「Formの入力をDocsに入力し,PDF化してMailで送信」するというプログラムを書いてみたいと思います.GASとは?Google Apps Script(GAS)は、ひとことで言えばGoogleが提供する各種サービスの自動化/連携を行うためのツールです。GASを使うと、Gmailやカレンダー、Googleスプレッドシート、Googleドライブなど、Googleが提供する様々なサービス上で処理を自動化したり、複数のサービスを連携させたりできます。ExcelやWordなどでマクロやOfficeスクリプトなどを使ったことのある方は、それらのGoogle版だとイメージしていただければいいと思います!活用例としては,Googleスプレッドシート上に設置したボタンのクリックで文字列を一括変換したり、GoogleスプレッドシートのデータをGmailに取り込んでメールを自動作成・送信したりすることができます。プログラムの流れ今回実装するプログラムの流れとしては以下のようになります.1,フォームで回答者から回答を受け取る2,回答をプログラム上で変数に代入する3,オリジナルドキュメント(雛形)のコピーを作成4,コピードキュメントに2の変数を代入5,コピードキュメントのPDFを作成6,5をメールで送信早速実装を始めてみましょう!
0 500円
カバー画像

【Google Apps Script】シートから一致する日付をしぼり込む方法①

スプレッドシートを扱っていると、高い頻度で日付を扱う場面がありますよね(´∀`*) ですが、日付の操作って正直、かなりややこしくないですか……? そもそもJavaScriptって、もともと日付の操作をするのがとてもややこしいんです。そこでよく使われるのが、ライブラリの「Moment.js」……なのですが、GASでは使えないんですね(ほんとはあるけど随分前に更新が止まっているので使わないほうがよい)。今回は、シートの中から特定の日付だけを絞り込むという、単純だけれど奥が深い方法を連載で紹介していきます♪ 例えば、以下のようなシートがあったとします。 なにやら勤怠管理のシートのようですね。余談ですが簡単に勤怠管理ができるスプレッドシートなどを出品しておりますのでご興味があればご覧ください(笑) ではこのシートから、1月3日~15日までの日付を絞り込むにはどのようにしたらいいでしょうか? さて、まずは最も基本的な部分ですが、JavaScriptで日付を扱うにはDateオブジェクトを使います。 使い方は new Date() です。 const today = new Date(); とすれば、変数todayには今日の日付が入ることになります。 (実はその表現は誤りで、現在の日時が入っていると言わなければなりません。後述します) さて、この記事を書いている現在は1月31日です。だとすれば、画像の26行目の日付と同じですね! ==で結ぶことができるのではないでしょうか?やってみましょう! function testDateFunction(){   const ss = Spreadsh
0
カバー画像

【GoogleAppsScript(GAS)入門】itemResponses.lengthで未回答になっている空白タイトルも考慮して他のファイルのシート列に転記をする方法

Googleフォームの内容をメール送信 Googleフォームで設問を作ってフォームの回答を配列にしてメール本文に入れる、といった方法を以前書きました。 ふと思ったのが、例えば「この回答結果をGoogleフォームの回答シート以外の他のスプレッドシートに転記したい」という場合に、可能なのかどうか・・・? 可能でした!\(^o^)/ ただ、色々と試していて、困った課題があったので、何か解決方法が無いかと模索しながら、色々と試してみました! フォームの回答 通常は、設定した「フォームの回答」シートに回答が自動入力されますが、フォームの回答があったと同時に別のシート(ファイル)に自動転機させてみます。 まずは転記用の関数を作成 function autoreply(e) { var ss2_copy_to = SpreadsheetApp.getActiveForm(); var s_name_to = ss2_copy_to.getSheetByName(“シートの名称”); // 転記先のシートの最終列と行を取得する var tolastCol = s_name_to.getLastColumn(); var tolastRow = s_name_to.getLastRow(); // 最終行+1の値を取得(末尾に追加して転記するため) var LastRow_PlusOne = tolastRow + 1; 転記先用に利用する変数は、このような感じでOKかと思います。 罫線(けいせん)を入れる これは必要があればで良いかと思いますが、罫線が入っていたほうが見栄えが良
0
カバー画像

google formから google appscriptを利用して、メール送信、stripe送信

Stripe決済システム 仕様書1. システム概要1.1 目的Google Formsと連携したStripe決済システムで、フォーム送信後に複数の商品に対する決済リンクを自動生成し、メールで送信するシステムです。1.2 主な機能フォームデータの取得Stripe顧客の作成複数商品の決済セッション生成決済リンクのメール送信2. システム構成2.1 使用技術Google Apps ScriptStripe APIGoogle FormsGmail2.2 必要な認証情報Stripe APIキー(テスト用:sk_test_51NevFh...)Google Apps Scriptの実行権限3. 商品情報3.1 商品一覧const products = [    { id: 'price_xxxx1', name: '講演会1(¥17,000/税込)'},    { id: 'price_xxxx2', name: '講演会2(¥8,800/税込)'},    { id: 'price_xxxx3', name: 'オンライン生配信・アーカイブ付き(¥4,400/税込)'},];3.2 商品設定方法Stripeダッシュボードで商品を作成生成されたPrice IDを商品配列に追加商品名と価格を配列内で設定4. フォーム連携仕様4.1 必要なフォーム項目お名前(必須)メールアドレス(必須)4.2 フォームトリガー設定フォーム送信時にトリガーを実行onFormSubmit関数が呼び出されるフォームの回答データはe.responseに格納4.3 データ取得処理const responses = f
0
64 件中 1 - 60