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

すべてのブログから「#GAS」タグの検索結果

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

【GAS】オブジェクトの宣言タイミングについて

■はじめに 今回はSpreadsheetAppや、CalendarAppなどのオブジェクト宣言タイミングについて説明していきます。■GASのオブジェクトを宣言すると重くなりやすい GASのオブジェクトは、宣言する度に結構時間がかかります。 無料GmailのGASにはプログラムの稼働時間に6分という制約があるので、いかにプログラムの稼働時間を短くするか?ってのがキモになってきます。■グローバル変数、グローバル定数でオブジェクト宣言をしてしまう プログラムやってるとあんまり推奨されないやり方なのかもですが、 GASの場合は可能な限りGASオブジェクトの宣言を減らす必要があります。 また、「SpreadsheetApp」や「CalendarApp」などは1回呼び出しておけ ば事足りる上に変動することはないので、グローバル定数宣言してしまう と安定しやすいです。■サービスのご紹介 こういった点を意識しながらGASの開発しております。 GASでの業務改善のご要望ございましたら、 お気軽にご相談いただけると幸いです(´ω`*)
0
カバー画像

【GAS】Discordへ通知するBOTを作る為の準備

■はじめに前回は大したこと書いてなかったので、今回は少し前に書いた、Discord通知用BOTを作る為の準備と関数を書いていきたいと思います(*'ω'*)■Discordの通知用BOTを作るまずは、Discord側で通知用のBOTを作る必要があるので、BOTを作りたいサーバーで右クリックをします。(赤枠部分参照)そうすると、右クリックメニューが出るので、「サーバー設定」、「連携サービス」の順番で選択していきます。選択すると、画面が切り替わるので、「ウェブフックを作成」をクリックします。まだBOTを一つも作ったことが無い場合は、ウェブフックがありませんと出るので、「ウェブフックを作成」を選択しましょう。BOTが出来上がりました!アイコン、名前は好みで変更してみて下さい(*'ω'*)ウェブフックURLをコピーという機能がありますが、これ後でGAS側のプログラムで必要になるので、クリックして控えておくか、必要な時にクリックしてコピーするようにしましょう。以上が事前準備になります(*'ω'*)そんなに難しくはないので、もし興味があったらチョロっと作ってみて下さいね(∩´∀`)∩次回はGAS側の応答プログラムについて解説していきます。■次回はこちら
0
カバー画像

商品名と商品IDを取得してスプレッドシートに表示させてみる#01 (ShopifyAPI+GoogleAppsScript)

こんにちは。Shopify専門エンジニアのまりんです。今回はテーマのカスタマイズではなく、Shopify APIとGoogleスプレッドシートを紐づけようと思います。まず手始めに商品IDと商品名をボタンをクリックしたらスプレッドシートに反映できるようにしてみました。✔️事前準備 API発行アクセストークンをまだ発行していない場合は下記の手順で作成しておいてくださいね。①アプリ>アプリと販売チャンネルの設定>ストア用カスタムアプリ②アプリを作成アプリ名はなんでもOKです。③アクセススコープの設定使用する項目にチェック入れてください。(例)商品名&商品IDを取得する場合:商品管理:read_productsのみに✔️④アプリをインストールAPI資格情報のタブをクリック。Admin APIのアクセストークンが発行されるのでコピーします。一度しか表示できないので忘れないようにどこかに保管しておいてくださいね。その下のAPIキーもあとで使用するので一緒にコピーしておきます。また、設定タブに記載されているバージョンも後ほど使用するので控えておきます。API アクセストークン:shpat_xxxxxxxxAPIキー:8gw2xxxxxxxxxxバージョン:xxxx-xxこれで事前準備は完了です。✔️GASとShopifyを紐づけるStep1 スプレッドシートを作成新規スプレッドシートを作成して「Master」というシートを追加する。一応わかりやすいように1行目に見出し入れておきます。A1・・・商品IDB2・・・商品名Step2 スプレッドシート>App Scriptを開くStep3 
0
カバー画像

GASでできる業務自動化5選|毎日の手作業を減らす方法

毎日の業務の中で、「同じ内容を何度も入力している」「スプレッドシートへの転記が多い」「メール確認や集計に時間がかかる」「Googleフォームの回答後に毎回手作業が発生する」といった作業はありませんか?こうした定型業務は、Google Apps Script(GAS)を使うことで自動化できる場合があります。今回は、GASを活用して自動化しやすい業務を5つご紹介します。スプレッドシートの自動集計・転記複数のシートに入力されたデータを、1つの管理表へ自動で集約したり、条件に応じて別シートへ転記したりできます。例えば、・売上データの自動集計・案件情報の一覧化・毎日の入力内容を月次表へ反映・複数ファイル間のデータ連携などが可能です。毎回コピー&ペーストしている作業がある場合は、自動化できる可能性があります。Gmailの自動送信・通知スプレッドシートの内容や条件に応じて、Gmailから自動でメールを送信できます。例えば、・期限が近づいたら担当者へ通知・フォーム回答後に自動返信・条件を満たしたデータだけメール送信・定期的なリマインド通知などに活用できます。「確認してからメールを送る」という作業を減らすことができます。Googleフォーム回答後の自動処理Googleフォームの回答はスプレッドシートへ保存できますが、その後の処理までGASで自動化できます。例えば、・回答内容を自動で分類・担当者へ通知・別シートへ必要な情報だけ転記・受付番号を自動発行・回答内容に応じて処理を分岐といった仕組みを作ることができます。問い合わせ受付や申請業務などにも活用しやすい方法です。Google Driveのファイ
0
カバー画像

重複したカレンダーイベントをGASで削除

重複したカレンダーイベントをGASで削除こんにちは、GASおじです。中小企業の経営者さんやフリーランスの皆さん、Googleカレンダーのイベントが重複して困っていませんか?特に定期的なミーティングやリマインダーが大量に増えてしまうと、管理が大変ですよね。そこで今日は、Google Apps Script(以下GAS)を使って、安全に重複イベントを検出し、既存データを壊さずに整理する方法をお伝えしましょう。GASはGoogleアカウントの利用枠内で追加の専用SaaS料金なしで利用できます。ただしquotaや実行上限があるので、その点は注意しつつ使ってくださいね。■ 重複イベントを「削除」するのではなく「抽出」してバックアップする理由まず、GASでカレンダーイベントの重複を「その場で削除」するのは、リスクが大きいです。誤って本当に必要なイベントを消してしまうと取り返しがつきません。そこでおじさんのおすすめは、重複イベントの一覧を「新しい日時付きスプレッドシート」に書き出す方法です。これで「どのイベントが重複しているか」を目視で確認できますし、万一間違えて消しても元データはカレンダーに残ったまま。安心して作業できます。■ 初期設定と必要な権限GASスクリプトを実行するには、以下の権限が必要です。・GoogleカレンダーAPIへのアクセス権(スクリプト初回実行時に承認)・Googleスプレッドシートの作成・編集権限また、個人情報を扱うのでスクリプトは自分のGoogleアカウントで実行し、権限を安易に他者に渡さないようにしましょう。■ 重複イベント抽出スクリプトの概要今回のスクリプトは、
0
カバー画像

伝書鳩オンライン

 よく考えてみますと、いままで携わってきた通信は、ローカルや専用線での直接通信(もしくは隠蔽されて気にならない)が主でした。 一般的なパソコン環境やスマートフォンなどでインターネットを利用して端末間の通信を実現しようとするとなかなか面倒なようです。 実験的に無償で利用できそうなものを3点試してみました。データー送受信、文字チャットのような例です。1.WebRTC NTT comの旧SkyWayを試してみました。サンプルもサクッと動作し反応性も抜群です。おそらくP2Pできるのは限られた環境で、中継サーバーを使用することになるのだと思います。SDK依存になるので障害時は自分だけで解析が難しいかもしれません。2.Google GAS GASを中継サーバーにしてWebサービス公開で試してみました。一次記憶はなんでもいいのですが、スプレッドを使用しました。GETでID別のシートにデーターをセルに積んだり崩したりする感じです。これをXMLHttpRequestで送受します。 GASは一回のトランザクションが数秒かかるので反応性はチョット緩慢ですね。Googleアカウントで気軽に試すことができるは便利です。3.レンタルWebサーバー レンタルWebサーバーを中継サーバーにしてみました。SSLに対応してPythonやPHPのCGIが使えることから、XREAというのを試してみました。 基本はGASと同じですが、反応性は申し分ないです。一時記憶はファイルにしました。 無償では広告を埋め込む必要があり、実際のデーターよりこの部分の容量が大きくなりそうです。 XMLHttpRequestで広告のHTM
0
カバー画像

GASツール制作例:画像からOCR使ってスプレッドシートに入力

こんにちは、ペンスケです。今日ご紹介するGASプチは、GASで画像から文字を判別するOCR→文字変換スクリプトです。今回作ったツールは、名刺をOCRで文字化して1セルに名刺の文字データを押し込んでいくという代物です。GoogleドライブにはOCR(画像から文字を判別する機能)をするための機能がデフォルトでついています。画像からドキュメントファイルを生成することが自動でできるのですが、これがそれなりに精度が良い。なので、この画像認識の機能をGASから使いにいって、ファイルごとに整理できたら。なんかに使えるかもしれない。というふわっとした動機で作成しました。なんのこっちゃと思われる方もおられると思うので、わかりやすくします。つまり↓これを↓こう処理の元になった画像の画質が低すぎたため、文字化けしております。GASに詳しい方むけの説明。→Google Apps Scriptを使って一時ファイルを生成し、その中のテキストデータをセルに押し込んでいます。→GAS OCRで検索するとサンプルコードがたくさん落ちてます。参考サイトをご紹介しようと思ったのですが、ココナラの仕様で外部サイトの貼り付けができないので、ご自身で調べてみてください。結構わかりやすいコードが3~4個おちてます♡さて、このOCRのGASプチツール。出力結果の全体像はこちら。(印刷会社さんの名刺サンプル画像をテストデータとして利用したため、会社名などの情報は伏せさせていただいてます)文字の識別精度はまあまあ悪くないレベル。日本語が稀に文字化けしてしまいますが、アルファベットに至ってはほぼ問題なく識別ができています。手書き文
0
カバー画像

カレンダーで誕生日リマインダーを自動作成

カレンダーで誕生日リマインダーを自動作成こんにちは、GASおじです。今日は中小企業の経営者やフリーランスの皆さんに向けて、「Googleカレンダーで誕生日リマインダーを自動作成する方法」をGAS(Google Apps Script)でご紹介します。これを使えば、大切な取引先やスタッフの誕生日をうっかり忘れる心配なし。しかも追加のSaaS料金は発生せず、Googleアカウントの利用枠内で運用できます。もちろんApps Scriptのquotaや実行上限はあるので適切に運用しましょう。■ なぜGASで誕生日リマインダー自動化?誕生日管理は重要ですが、手作業で更新したりリマインダーを設定するのは手間とミスのもと。GASを使って誕生日データを読み込み、Googleカレンダーにリマインダーを作成すれば、ミスなく確実に通知が届きます。ただし、既存のカレンダーイベントを全消去したり削除APIでごっそり消すのはリスク大。そこでおじさんは、過去のデータを残しつつ、更新分だけ新しい日時付きシートに書き出す方法を推奨します。変更内容のバックアップやロールバックもしやすいですよ。■ 初期設定と必要な権限・Googleスプレッドシート準備 誕生日リストを管理するスプレッドシートを用意します。例えば以下のように「名前」「誕生日(yyyy-mm-dd形式)」の2列をA1:Bで管理。・Googleカレンダー作成 専用の誕生日リマインダー用カレンダーを作ると管理しやすいです。Googleカレンダーで新規カレンダーを作成し、カレンダーIDを控えましょう。・GASプロジェクト作成 スプレッドシートのメニュー「拡張
0
カバー画像

GASで複数のクラウドサービス間データ連携を自動化する

こんにちは、GASおじさんだよ!今日は、中小企業の経営者やフリーランスの諸君に朗報だ。おじさんの知る限り、多くの企業がクラウドサービスを使って業務を行っているが、それぞれのサービスが個別に存在するため、情報の連携に時間がかかるという声もよく耳にする。そこで今回は、Google Apps Script(GAS)を使って複数のクラウドサービス間データ連携を自動化する方法を紹介するぜ。■ クラウドサービスのデータ連携を自動化するメリット各種SaaSのAPIを駆使すれば、データの自動連携はさほど難しくない。まずは手動での作業時間を削減でき、時間当たりの人件費も浮かせることが可能だ。おじさんが以前にコンサルティングした中小企業では、1週間あたり10時間ものデータ移行作業が削減でき、年間で約50万円のコスト削減につながったんだ。■ GASによる基本的なAPI連携例えば、GoogleスプレッドシートへSalesforceからデータを取得し、自動的に更新するコードを見ていこう。SalesforceのAPIトークンを取得しているものとして進める。このスクリプトを定期実行することで、Salesforceから最新の顧客情報をスプレッドシートに自動で同期できるようになるよ。GASのトリガー機能を使えば、例えば毎日決まった時間に実行することも可能だ。■ コストと時間の削減この自動化により、手動で行っていたデータエントリーの時間を劇的に削減できる。仮に1時間当たりの人件費が3000円だとすると、年間で約120時間、すなわち36万円分の作業が削減される計算だ。非常に大きな効果が見込めるだろ?■ 自動化できる
0
カバー画像

サイト公開日に修正依頼が殺到する理由——Claudeと事前に決めておきたい5つのこと

コンサルタントのしおかぜです。ちなみにこの記事も私の情報をもとにClaude codeが私のライターとなり制作してくれています。---「公開したばかりなのに、もう直してほしいところが出てきた…」ホームページやLPを公開した当日、こんな経験をされたことはありませんか?実はこれ、制作側からすると"あるある"なんです。先日、ある企業サイトの公開をお手伝いしたとき、公開当日だけで12件の修正依頼が入りました。「誤字がある」「料金が違っていた」「スマホで見ると文章が変なところで切れている」——どれも些細に見えて、放置できないものばかり。今回は、なぜ公開日に修正が集中するのか、そしてどうすれば事前に防げるのかを、実際の経験をもとにお伝えします。---## なぜ公開当日に「直してほしい」が連発するのか私がこの課題に取り組む際に活用しているのが **Claude Code** です。日々の作業ログや設定ファイルの確認、記事の構成案まで、Claude Codeに相談しながら進めることで、一人でも高速に質の高いアウトプットを出せるようになりました。これは制作側の能力不足というより、構造的な問題です。テスト段階では「まあいいか」と思っていたことが、本番のURLで見た瞬間、「お客さまにこれを見せるのか」というリアリティが湧いてくる。オーナーさんや決裁者の方が最終確認するのも、どうしても公開直前になりがちです。中小企業・個人事業主でいえば、内装工事が終わって照明を全部つけた瞬間に「この壁の色、思っていたのと違う」と気づくようなもの。図面ではわからなかったことが、実物になって初めて見えてくるんですよね。-
0
カバー画像

【GAS】スプレッドシートの情報をYahooショッピングAPIを使って商品登録する方法

実現できることYahooショッピングへの商品登録をスプレッドシートへ追記するだけで完結しますYahooショッピングの商品登録APIを使ってスプレッドシートにある”update”ボタンをクリックすると、そのタイミングで瞬時に登録できるようになっています。スクリプトを回すトリガーはそれぞれ設定可能です。裏側の登録をするスクリプトを回すと瞬時にYahooショッピングの商品ページに追加されます。なぜ作ろうと思ったかYahooショッピングへの商品登録の際にいくつか運用対処が必要(JANの文字設定など)で煩わしいな思っていたのと、楽天市場には商品登録したけどあれ?「Yahooショッピングに登録したっけ?」などと管理上の煩雑さを感じていたので YahooショッピングのAPIを調べたところ、簡単に実装できそうだったので「GAS(Google App Scriptを使って書いてみました)」是非、そういった課題をお持ちの方を本記事を参考に構築いただければと思います。YahooショッピングAPI利用にあたってご準備するもの①Google スプレッドシート(フリーアカウントでも可)②YahooショッピングのクライアントID・クライアントシークレット①Googleスプレッドシート側の準備Apps Scriptの画面へスプレッドシート及びGoogle Apps Script側の準備を記載していきます。「App scriptってなに?」という方へ端的にお伝えするとApps Script(スクリプト・コード)を書いてスプレッドシートを操作できるようにするものです。今回はApps Scriptを使ってスプレッド
0
カバー画像

【GAS】カレンダーコントロールの基礎

■はじめに 今回はGASのカレンダーコントロールを使って、特定の日付の予定を取得する処理を説明していきたいと思います。■まずはソースからfunction cBasicControl(){  const cCalendar = CalendarApp.getCalendarById('カレンダーID');  const dDate = new Date('2023/08/9');  const cEventList = cCalendar.getEventsForDay(dDate);  for(let i in cEventList){    Logger.log(cEventList[i].getTitle());  };};厳密には汎用性を上げる為に、私はもうちょっと違う書き方してるんですが、基本的なコードは上記の様になります。■カレンダーオブジェクトの宣言以下のコードで、何処のカレンダーを使用しますよと宣言しています。const cCalendar = CalendarApp.getCalendarById('カレンダーID');カレンダーIDの部分には、使用するカレンダーIDを入力しましょう。※カレンダーIDの取得方法は次回にでもご案内しますね。 これで、カレンダーオブジェクトが利用可能になりました。■指定した日付のイベント一覧を取得する次に指定したカレンダーの特定の日付のイベント一覧を取得します。  const dDate = new Date('2023/08/9');  const cEventList = cCalendar.getEventsForDay(dD
0
カバー画像

[Google Apps Script]GAS初回実行時の認証のやり方

Google Apps Script(GAS)で書いたコードを実行するためには、初回のみアカウントの認証が必要となります。この記事では認証に必要な手順を解説します。手順1:【権限を確認】初めてのGAS(function)を実行しようとすると認証が必要な場合、このアラートが表示されます。そこで、権限を確認をクリックして先に進んでください。手順2:【アカウントの選択】ご使用のアカウントを選択してください。選択したアカウントで権限を許可します。手順3:【詳細】詳細を選択すると左下に「[関数名](安全ではないページ)に移動」が表示されます。手順4:【安全ではないページに移動】安全なページに戻りたくなりますが、ここで戻ってしまうと認証は出来ません。安全ではないページに移動を選択してください。手順5:【許可】「[関数名]がGoogleアカウントへのアクセスをリクエストしています」と表示されるので内容を確認して、許可を選択すると認証は完了です。【備考】手順1〜4で認証は完了ですが、スプレッドシート、フォーム、カレンダー、Gmail 等GASを利用するサービスが追加された場合は、その都度認証が必要となりますので、同じ手順で認証を行ってください。面倒な手作業の自動化・効率化をご検討中の方は下記ココナラのリンクよりお気軽にお問い合わせください。手作業での記録、PDF化、メール送信等はGoogleの公式サービスを使用する事で簡単に自動化・効率化することが出来ます。
0
カバー画像

【業務効率化】毎日の「CSV集計とPDF帳票作成」を手作業からゼロにするGAS自動化の実践手順

こんにちは、ハルと申します。 普段は、Google Apps Script(GAS)を活用したスプレッドシートや帳票の業務自動化支援を手掛けています。 日々の実務の中で、バックオフィスや営業事務、経理の担当者様から特によくいただくのが、次のようなお悩みです。 「毎月・毎日のCSV集計作業でかなりの時間を取られてしまう…」 「手作業でコピペしていると、どうしても行ズレや転記ミスが起きて不安になる」 「請求書や明細PDFを1枚ずつ手動で作っていて、締め日の作業負担が大きい…」 こうした定型作業は、対象の入力形式や処理量を確認したうえで、Google Apps Script(GAS)を使って取り込み・集計・帳票作成の定型部分を自動化することが可能です。 今回は、実務でよく使われる「CSV集計からPDF帳票作成までの自動化ステップ」と、運用トラブルを防ぐための設計ポイントについて解説します。 なぜ、業務自動化に「GAS」が選ばれるのか? 業務の自動化ツールにはマクロ(VBA)や専用のSaaS、RPAなど様々な選択肢がありますが、Google Workspace環境で選ばれやすいのがGAS(Google Apps Script)です。 その理由は主に3つあります。 ① 追加の有料ツールなしで始められる環境がある 既存のGoogleアカウントの標準機能内で動作するため、新たな外部サービスを契約しなくても自動化の仕組みを構築できるケースが多くあります(※利用量や外部連携先によって条件は異なります)。 ② クラウド上で動作する 自席のPCを開いて手動で処理し続ける必要がなく、
0
カバー画像

メール下書きを定期的にGASで自動保存

メール下書きを定期的にGASで自動保存■ はじめにお疲れ様です、GASおじです。中小企業の経営者やフリーランスの皆さんは、日々のメール対応に追われていませんか?特に重要なメールを書いている途中で誤って内容を消してしまったり、ブラウザのクラッシュで下書きが消えるといったトラブルは避けたいものです。そこで今回は、Google Apps Script(以下GAS)を使ってGmailのメール下書きを定期的に自動保存する仕組みを紹介します。これにより、書きかけのメールを安全にバックアップでき、万一のデータ消失リスクを下げられます。もちろん、GASはGoogleアカウントの利用枠内で追加の専用SaaS料金なしで使えますが、quotaや実行上限はあるので注意しましょう。■ 初期設定と権限についてスクリプトを動かすには、まずGoogle Apps Scriptのプロジェクトを作成し、Gmail APIを有効にします。これには以下の手順が必要です。・Googleドライブで新規に「Google Apps Script」プロジェクトを作成。・メニューの「サービス」から「Gmail API」を追加。・スクリプトの実行時に、Gmailの下書きを読み書きする権限(Googleサービスの必要権限)を許可。また、この自動保存スクリプトは定期的に動かすために、Installable Trigger(時間主導型トリガー)を設定します。トリガーはGASの編集画面で「時計マーク」から追加可能です。■ メール下書き自動保存の設計方針おじさんが気をつけているのは、既存の下書きを勝手に消したり上書きしてしまわないこと。今回
0
カバー画像

スプレッドシートの自動化を外注する前に、決めておくと安く早く終わる3つのこと

「この作業、自動化できますか」というご相談をいただくとき、最初の返事が「できます」ではなく「まず3つ教えてください」になることがあります。意地悪をしているわけではありません。この3つが決まっていないと、見積りが倍ちがってしまうからです。逆に決まっていれば、その場で金額と期間が出せます。外注する前にご自身で決めておくと、安く早く終わります。1. 今のファイルを「そのまま使う」か「作り直してよい」かいちばん金額が動くのがここです。今お使いのシートは、たいてい何年もかけて育っています。列が増え、色がつき、印刷の位置が調整され、誰かが入れた関数が残っています。この見た目と運用をそのまま残すなら、既存の構造に合わせて作ることになります。安全ですが、その分だけ手間がかかります。一方、中身が同じなら作り直してよいなら、素直な形で組めるので早く終わります。どちらが正解ということはありません。ただ、「なんとなく今のまま」で始めると、後から「やっぱりこの列は動かせない」が出てきて、作り直しになります。先に決めておいてください。これだけで見積りが変わります。2. 例外を、先に3つ書き出す自動化がつまずくのは、普通のケースではなく例外です。請求書なら、たとえばこういうものです。・締め日が取引先ごとに違う・端数を切り捨てる先と、切り上げる先がある・月に1件だけ、手書きの明細が混ざる「毎月必ず起きるわけではないが、起きたら困ること」を3つ書き出してみてください。だいたい、そこに本当の要件が入っています。先に分かっていれば設計に織り込めます。後から出てくると、作り直しになります。3. 完成したあと、誰がボタ
0
カバー画像

Excelを直すために残業していませんか?「便利な管理表」がいつの間にか重荷になる理由

「最初は簡単な管理表だったんです」「必要な機能を少しずつ追加していたら、誰も触れなくなりました」「数字がおかしくなると、作った人を呼ぶしかありません」Excelは便利です。私自身、中小製造業でひとり総務に近い仕事をしていて、Excelやスプレッドシートにはかなり助けられています。ただ、長く使っている管理表ほど、**業務を楽にするためのExcelが、Excelを維持するための仕事を生み出している**ことがあります。数式が壊れる。参照先がずれる。ファイルが重い。前任者が作ったため中身が分からない。修正すると別の場所がおかしくなる。そして月末、数字が合わない原因を探すために残業する。今回は、便利だったExcelがいつの間にか「触るのが怖い管理表」になる理由と、見直すポイントをまとめます。## 最初は10列くらいの簡単な表だったExcelが複雑になるのは、一度に巨大な表を作るからとは限りません。最初は、・日付・担当者・商品・数量・金額くらいの簡単な管理表だった。ところが運用しているうちに、「部署別も見たい」「前年と比較したい」「担当者別に集計したい」「未対応だけ色を付けたい」「別のシートから自動で持ってきたい」という要望が追加されます。そのたびに、・列を追加・関数を追加・別シートを追加・条件付き書式を追加・参照先を追加していく。気づけば、作った本人しか構造が分からないファイルになります。## 「動いているから触らない」が一番怖い複雑なExcelでよく聞くのが、「今は動いているので、変に触らないでください」という言葉です。これは一見、安全な運用に見えます。でも実際には、**壊れたときに直
0
カバー画像

GAS × LINEの予約システムを高速化できた話

こんにちは。Web制作会社でエンジニアをしている古賀です。今回は、GAS(Google Apps Script)とGoogleスプレッドシートで作ったLINE予約システムが「動作が重い」という課題を、コストをかけずに改善できた話を書きます。同じような構成で開発している方の参考になれば嬉しいです。抱えていた課題LINEの予約システムを、GAS + Googleスプレッドシートという構成で作っていました。・サーバー費用がかからない・スプレッドシートがそのままデータベースになる・導入のハードルが低く、小規模なサロンやクリニックにも提案しやすいというメリットがある一方で、利用が進むにつれて「予約画面や管理画面の表示が重い」という問題が出てきました。原因を探ると、画面を開くたびにスプレッドシートへ問い合わせて重い処理をその場で実行していたことが、待ち時間の大きな原因になっていました。「無料で」がこだわりポイントだった有料のサーバーやDBサービスに切り替えれば速くなるのは分かっていたのですが、今回はあくまで無料の範囲で改善したいという条件がありました。GAS自体は無料で使えるので、構成を変えずに処理の仕方を見直す方向で解決策を考えました。やったこと対応の中心は、次の2つです。1. GASをWebアプリとしてデプロイし、発行されたURLをHTMLに埋め込むGASのスクリプトをWebアプリとして公開すると、専用のデプロイURLが発行されます。このURLをHTML側からfetchなどで呼び出す形にしました。2. 重い処理を行う関数をクラウド側(デプロイしたGAS)に切り出すこれまで画面表示と同時
0
カバー画像

テンプレートを「設計図」にして、Claude活用で最短オリジナルホームページを作る方法

コンサルタントのしおかぜです。ちなみにこの記事も私の情報をもとにClaude codeが私のライターとなり制作してくれています。---「おしゃれなデザインのサイトを見つけたけど、そのまま使うと他と被りそう…」「かといって、ゼロからデザインを依頼すると費用が心配…」中小企業・個人事業主や店舗のオーナー様から、こんなご相談をよくいただきます。実は、プロの制作現場では「良いデザインを参考にしながら、あなたの店舗に合わせてオリジナルに仕上げる」という方法が使われています。今回、私自身のサイトで実践した制作の裏側をお伝えします。---## 「参考にする」と「丸パクリ」は違う私がこの課題に取り組む際に活用しているのが **Claude Code** です。日々の作業ログや設定ファイルの確認、記事の構成案まで、Claude Codeに相談しながら進めることで、一人でも高速に質の高いアウトプットを出せるようになりました。インテリアショップの内装を参考にして自分の店を作るのと同じで、Webサイトも「この配置いいな」「この見せ方素敵だな」という要素を分解して、自分のビジネスに合わせて再構成することができます。今回私が参考にしたのは、海外のテンプレートサイトにあったマーケティング会社向けのデザインでした。**参考にしたポイント:**- 写真を四角ではなく、有機的な形でトリミングする見せ方- スクロールすると文章がふわっと浮かび上がる演出- 実績の数字が「0」から目標値まで動くアニメーションこれらの「仕組み」を理解したうえで、私のサービス内容や写真に置き換えて作り直しました。結果として、参考元とはまっ
0
カバー画像

QRコードを個別に生成するケース

GASのウェブアプリでも外部のJavaScriptのライブラリを使うことができます。今回はQRコードを個別に生成するケースでJavaScriptライブラリqrcode.min.jsを使った場合のGASでの処理例です。基本的にはJavaScriptライブラリを読み込んだhtmlファイルをGASのdoGet関数で表示させます。//GAS function doGet() {   return HtmlService.createTemplateFromFile("index")   .evaluate()   .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL)   .addMetaTag('viewport', 'width=device-width, initial-scale=1'); }html(index)ファイルのhead内でJavaScriptライブラリを読み込みます。ダウンロードしたライブラリを使う場合の例1.ソースをまるごとコピーしてhtmlファイルとして保存しておきます。2.index.htmlのheadタグ間でライブラリのファイルを読み込みます。<script><?!= HtmlService.createHtmlOutputFromFile('qrcodeminjs').getContent(); ?></script>CDNが使える場合の例直接読み込むので上記のようなライブラリファイルの作成は必要ありません。  <script src="http
0
カバー画像

GASって結局JavaScriptなの?

Google Apps Script、通称GASについての話題は、Webを使う多くの人にとってちょっとした関心事かもしれません。特に、「GASって結局JavaScriptなの?」という疑問を持つ方も少なくないでしょう。そこで、この記事ではGASとJavaScriptの関係を、専門用語を控えめにして、できるだけわかりやすく解説してみます。GAS(Google Apps Script)とはGASとは、Googleが提供するプログラミング言語のことで、Googleの様々なWebサービス(Googleドキュメントやスプレッドシート、フォームなど)を自動化したり、カスタマイズするために使われます。たとえば、スプレッドシートに情報を自動で整理したり、フォームの回答に基づいてメールを自動送信するといった作業をプログラムで行えるようにするのがGASの役割です。GASとJavaScriptの共通点GASは、その根底にJavaScriptを持っています。ですから、もしあなたがJavaScriptに少しでも触れたことがあるなら、GASを学ぶのは意外とスムーズかもしれません。変数の使い方、ループ(繰り返し処理)、条件分岐といった基本的なプログラミングのコンセプトが、GASでも全く同じように使われます。GASとJavaScriptの違いしかし、GASがJavaScriptと完全に一緒かというと、そうではありません。GASはGoogleのWebサービスと密接に結びついており、そのための特別な機能やコマンドが用意されています。この点が、通常のWebページ作成などに使われるJavaScriptとは異なる大きな
0
カバー画像

【GAS】スプレッドシート直下にフォルダを生成する

■はじめにここ数日、フォルダ生成の記事にアクセスが多かった様なので、フォルダ生成系の記事をちょっと追加で書いてみようと思います。■スプレッドシートの情報を取得するまずは、使っているスプレッドシートがGoogleDrive内のどこに存在するか確認する必要がありますので、自分自身のファイル情報を取得します。const book = SpreadsheetApp.getActiveSpreadsheet();const bookID = book.getId();const file = DriveApp.getFileById(bookID);■取得したファイル情報の親フォルダのIDを取得するgetParentsメソッドを使う事で、親フォルダの取得ができます。複数ファイル等がある場合はhasnext()とnext()を組み合わせるんですが、親フォルダは1つしかないので、next()だけで取得します。const dir = file.getParents().next();const dirID = dir.getId();■親フォルダの直下に新規にフォルダを作成する以下の処理を行う事で、取得したフォルダ直下に新しいフォルダを作成します。const drive = DriveApp.getFolderById(dirID);drive.createFolder('フォルダ名');厳密にやるのであれば、フォルダ作成前に、フォルダの重複チェック等も処理に入れると良いでしょう(´ω`*)■最後に今回のような仕組を使ったツールの作成もできますので、 お困りの事ございましたら、お気軽にご相談く
0
カバー画像

GASのエディタが使いやすくなっている

こんばんは、とーますです。みなさんGASは使ってますか?GASはGoogle Apps ScriptというGoogle上で使えるjava scriptのようなものなのですが、最近久しぶりに書いたらエディタが結構進化してました。公式ドキュメントを特に見ずに書きます。これまでもあったと思うが私が個人的にうれしかったものを書きます。うろ覚えですが少し適当に書きます。・同一の変数名が分かりやすくドラックされる・呼ばれていない変数は少し薄く表示される・Functionに飛ぶことができる・インデントがきれいになる・インデントで処理のスコープが分かりやすく縦位置補助される・最近の見た目はだいぶきれいに洗練されてきている・etcもっとかけると思ったら以外にかけなかったですね。Debugもどんどん見やすくなっていてブレークポイント適当に選んでおいて走らせて使ってもよし、途中のデータも見やすいしObjectのネストしたデータの中身も見やすいのでよし。わざわざPCにソフト入れてコード書いてデプロイしてとかDebugしてとかそういったことをせずWebブラウザですべて完結できるのでかなり使いやすいと思ってます。最近ではクライアント系のエディタも進化していると思うので多種多様の開発環境があるのかと思いますが、私としては弘法筆を選ばずという言葉がある通りどんなものでも能力がはっきできるほうがよいと思うんですよね。昔はデータセンターによく行くこともありましたが、サーバールームに持ち込める物は、脳(記憶)のみでした。なので脳にどれだけため込んでおくかが重要でした。 SQLステートメントが書けないとか、Linux
0
カバー画像

【Gmail】受信したメールに「ラベル」を付けて整理する

【ご依頼者向け】Gmailのフィルター機能で、受信したメールに自動で「ラベル」を付けられます。対象のメールは検索条件で指定できます。Gmailには「フォルダ」の概念がありません。 代わりに、受信したメールに「ラベル」を付けて整理することができます。 1つのメールには複数の「ラベル」を付けて分類することも可能です。フィルター機能で、受信したメールに自動で「ラベル」を付ける(1)Gmailを開き、検索窓の右側にある検索オプションを表示する(2)キーワード、送信元メールアドレス等で検索条件を指定して、「フィルタを作成」をクリックする(3)[ラベルを付ける]をチェック、新しいラベルを作成するラベル名を入力して、「作成」をクリックする「フィルタを作成」をクリックする。完了です![設定]→[フィルタとブロック中のアドレス]で、作成したフィルタの確認、再編集ができます。 また、ラベルは色を変更できます。
0
カバー画像

GASでマイマップを作る

こちらは先週あげた最新の動画です。GASを使うとGoogleマップからルートの検索ができて、画像も作れます。出張先の居酒屋マップを作って、そこにいくために頑張る!って業務の効率化とは言えないですかね😆なにか地図に関係した自動化をご希望でしたら、ぜひご相談ください。
0
カバー画像

プロジェクトの進捗タイムラインをGASで作成

プロジェクトの進捗タイムラインをGASで作成■ はじめに:プロジェクト管理にGASを活用しようおじさんだ。中小企業やフリーランスの皆さん、プロジェクトの進捗管理、うまくできてるかい?エクセルやスプレッドシートは便利だけど、手作業での更新が多いとミスも増えるし、時間もかかる。そこでGAS(Google Apps Script)を使って、自動的に進捗タイムラインを作成・管理する方法を紹介しよう。GASはGoogleアカウントの利用枠内で追加の専用SaaS料金なし。Apps Scriptのquota・実行上限はあるものの、うまく使えば手間もコストも削減できるぞ。ただし、既存データの無差別な削除は避けて、慎重に扱うのがポイントだ。■ GASで進捗タイムラインを作成する流れおじさんが提案するのは、既存のデータをその場で更新せず、新しい日時付きシートを作成して結果をまとめる方法だ。こうすることで、元データは安全に保管できるし、何かあってもバックアップから復元しやすい。大まかな流れは以下の通り。・プロジェクト情報が入った既存スプレッドシートを読み込む・入力内容のバリデーション(入力検証)を行う・新しい日時付きシートを作成し、ここに進捗タイムラインをバッチ書き込み・元データは変更しない・バックアップとして元データのコピーも作成可能■ 初期設定と必要権限・Googleスプレッドシートの編集権限(スクリプトがシートにアクセス・作成するため)・Google Apps Script エディタでのプロジェクト作成・installable triggerは今回は不要。手動またはメニューから実行で十分個人情
0
カバー画像

ChatGPTを使うだけでは業務効率化にならない|AIを「仕組み」にする考え方

生成AIが一気に身近になり、ChatGPTやGemini、Claudeなどを仕事で使う方も増えてきました。文章を作る。アイデアを出す。メールを整える。資料のたたき台を作る。こうした使い方だけでも、もちろん便利です。ただ、実際に業務効率化を考えるときに大切なのは、AIを「その都度使うこと」ではなく、業務の流れの中に組み込むことだと感じています。たとえば、毎回同じような内容をChatGPTに入力して文章を作っている場合。それだけでも時短にはなりますが、「毎回入力する」「出力をコピーする」「別の場所へ貼り付ける」「また次の作業をする」という手間は残っています。ここを、入力情報を決める↓AIで自動生成する↓必要な場所へ保存する↓次の作業につなげるという形まで整理できると、単なるAI活用ではなく、ひとつの業務フローとして動かせるようになります。私は現在、生成AIを活用したWebシステムや業務効率化ツールの開発を行っています。特に意識しているのは、**「AIを入れること」ではなく、「今ある業務をどうすれば楽にできるか」**という部分です。実際の業務では、・同じ文章を何度も作っている・Excelやスプレッドシートへの転記が多い・問い合わせ対応に時間がかかる・SNS投稿を毎回ゼロから考えている・情報が複数の場所に分散している・担当者しか分からない作業があるといった、小さな手間が積み重なっていることが多いです。こうした部分は、必ずしも大規模なシステムを作らなくても、生成AIGoogleスプレッドシートGoogleフォームGASWebアプリなどを組み合わせることで、かなり改善できるケースがあります
0
カバー画像

1通のメールから始まった。安否確認システムを自作してみた話

ある日、妻から何気なく、「会社からこんなメール来たよ」と、スマホを見せられました。内容は、地震発生時の安否確認メール。「地震が発生しました。あなたの安否状況を回答してください」そんな感じのメールでした。そのときは、「へぇ、こういう仕組みがあるんだ」くらいにしか思っていませんでした。でも、しばらくしてふと思ったんです。これ、自分でも作れるんじゃない?ここから、今回の安否確認システム作りが始まりました。まずはGoogleフォームでいいんじゃない?最初に考えたのは、とても単純でした。安否確認って、「無事です」「負傷しています」「連絡がつきません」みたいな回答を集めるだけなら、Googleフォームでできるんじゃないか?回答結果はスプレッドシートに自動で入る。じゃあ、Googleフォーム+スプレッドシート+GASでいけるのでは?ということで、さっそく作り始めました。……ところが、ここからが長かった。「地震が起きたらメールを送る」って意外と難しい安否確認の肝は、地震が起きたら自動的にメールを送ること。これができなければ、ただの「Googleフォーム」です。そこで、気象庁の地震情報を取得して、「一定以上の地震が発生したら安否確認を開始する」という仕組みに挑戦しました。気象庁の公開データを取得して、地震情報を読み込んで、震度を判定して、条件に当てはまったらメールを送る。文字にすると簡単そうです。でも実際にやってみると、「これ、ちゃんと動いてるのか?」「同じ地震で何回もメール送られない?」「設定を間違えたらどうなる?」「社員が100人いたらどうする?」……と、次から次へと疑問が出てきます。プログ
0
カバー画像

業務自動化を外注する前に決めておく3つのこと

「毎月の請求書づくりを自動化したい」「複数のサイトから商品情報を集めて一覧にしたい」。そう思って外注先を探し始めたものの、見積もりが想像より高かったり、やり取りが長引いて途中で止まってしまったりすることがあります。原因の多くは、依頼する側の準備不足です。技術的な知識は要りません。発注前に3つのことを決めておくだけで、見積もりは下がり、納品までの往復も減ります。■ 1. 今の手順を「人がやっている通り」に書き出す自動化の見積もりは、作業の複雑さではなく、手順の曖昧さで膨らみます。「毎週の売上をまとめる作業をお願いしたい」とだけ伝えられた場合、受ける側は何十通りもの可能性を想定して見積もらざるを得ません。書き出すときは、画面名とボタン名まで落とし込んでください。悪い例:「楽天とAmazonの売上を集計してスプレッドシートに入れる」良い例:1. 楽天RMSにログインし、左メニューの「受注・決済管理」から「受注一覧」を開く2. 期間を「先週の月曜から日曜」に設定し、「CSVダウンロード」を押す3. AmazonセラーセントラルはA列とD列だけ使う。B列は無視してよい4. ダウンロードした2つのCSVを、スプレッドシート「週次売上」の「raw」シートに上から貼る5. 「集計」シートの数式が自動で動くので、その結果を見て終わりここまで具体的だと、受ける側は「楽天のCSVは文字コードがShift_JISだから変換が要る」「Amazonの列名は月によって変わるかもしれない」といった、実際に工数がかかる箇所を最初から見積もれます。曖昧なまま着手して途中で判明すると、追加費用か納期延長のどちらかに
0
カバー画像

5社に同じメールを送るだけで毎回しんどい|GASで「文面作成・下書き・送信」までまとめた実例

「メールを5通送るだけです」文章だけ見ると、かなり簡単です。でも実務では、宛先が違う。CCが違う。件名が違う。本文の一部が違う。送る前に確認もしたい。これが毎回ある。5通しかないのに、クッッッソ面倒なんですよね。今回は、実際に対応したGASのメール業務改善をベースに、どこまで自動化したのかを書きます。■ 最初は「1社向け」の仕組みだったもともとのツールは、1社分のメールを作成する仕組みでした。そこから要件が変わり、最大5社へ同じタイミングでメールを作りたいという話になりました。ただし、単純に5回ループすれば終わりではありません。会社ごとに、・TO・CC・件名・本文に差し込む情報が違います。さらに、「宛先がまだ決まっていなくても下書きは作りたい」「確認用メールだけ先に送りたい」「最後は5社分をまとめて送信したい」という運用もありました。はい。ここまで来ると「メール送信ボタンを作る」ではなく、業務フローを作る仕事です。■ 作ったのは4つの流れ今回の仕組みでは、操作を大きく4つに分けました。1. 内容作成2. 下書き作成3. 文面確認メール送信4. 下書き一括送信いきなり本番送信する形にはしていません。Gmailの下書きを間に挟むことで、人が最終確認できるようにしています。完全自動化のほうが格好よく見えるんですけど、メールは誤送信した瞬間に笑えません。だから、人が確認すべきところは残します。■ 「空欄だったらどうする?」が地味に重要業務ツールで意外と時間を使うのが、正常系ではなく例外です。たとえば、「2社目の宛先が未登録なら?」「CCがない会社は?」「1社目だけ設定されている日は?」
0
カバー画像

Driveファイルの権限をGASで一括チェック

Driveファイルの権限をGASで一括チェック■ はじめに:中小企業やフリーランスにこそGASお疲れ様です。GASおじです。Google Workspaceの便利さは折り紙つきですが、意外と見落としがちなのが「Driveファイルの権限管理」。特に中小企業やフリーランスの皆さんは、ファイルを共有しすぎて情報漏洩リスクを抱えてしまうこともあります。そこで今回は、Google Apps Script(以下GAS)を使ってDrive内のファイル権限を一括チェックする方法を紹介します。もちろん、既存のデータを消したりはしません。権限情報を新しい日時付きのスプレッドシートにまとめて、あとでじっくり確認できる形をとります。これで誤ってファイルを消すリスクもゼロ。さらに、実行に必要な初期設定や権限、復元手順も丁寧に解説しますので安心してください。■ なぜ権限管理が重要なのか?中小企業やフリーランスの現場では、Google Driveを使ったファイル共有が日常茶飯事。つい「この人には見せていいかも」と思って権限を付与し続けると、知らず知らずのうちにアクセス権限が広がり過ぎてしまいます。この状態を放置すると、・不要な人までファイルが見れる状態に・競合他社や外部に情報が漏れるリスク増大・取引先や顧客の個人情報が漏洩する恐れといった問題に発展しかねません。権限の棚卸しは「情報資産の守り」として非常に重要です。■ GASでDriveファイルの権限一覧を取得するコード例ここからは実際のコード例です。Drive APIを使って特定フォルダ以下のファイル権限を取得し、新規作成したスプレッドシートに結果を書き込
0
カバー画像

GASでスプレッドシートのグラフを自動更新

GASでスプレッドシートのグラフを自動更新■ はじめにこんにちは、GASおじです。中小企業の経営者やフリーランスの皆さん、スプレッドシートのグラフ更新で手間取っていませんか?手動でグラフの元データを修正していると、時間もかかるしミスも増えますよね。そこで今回は、Google Apps Script(以下GAS)を使ってスプレッドシートのグラフを自動で更新する方法を解説します。おじさんはSaaS課金には厳しいので、追加の専用SaaS料金はかけず、Googleアカウントの利用枠内で動かせるスクリプトにこだわります。もちろん、既存データは消さずに新しい日時付きのシートを作って結果を出力するので、安全かつ安心です。■ 初期設定と必要な権限まず、スクリプトを動かすには対象のスプレッドシートへの編集権限が必要です。また、スクリプトエディタから「スプレッドシートの管理」や「ドライブの管理」などの認証を求められますが、これはスクリプトが新規シートを作成したり、データを読み書きするために必要な権限です。また、スクリプトの自動実行には「インストール型トリガー」を使います。これにより、例えば毎日決まった時刻にグラフの更新を自動化可能です。個人情報の取扱いについても注意が必要ですが、今回のスクリプトは社内データの範囲で完結し、外部APIや外部サービスとは連携しません。■ スクリプトの概要今回のスクリプトは以下の流れで動作します。・元データが入った既存シートを読み込む・入力値の簡単な検証を行う(例えば数値チェック)・新規に日時付きのシートを作成し、そこへ検証済みデータを一括書き込み(batch writ
0
カバー画像

申請を出したのに進まない会社の共通点|「承認待ち」を減らす5つの仕組み

「申請は出しました」「上司の確認待ちです」「担当部署へ回したはずです」それなのに、数日たっても処理が進まない。申請者が状況を確認すると、「誰が持っているか分からない」「メールを見落としていた」「自分が承認者だと思っていなかった」「必要な情報が足りず、止まっていた」ということがあります。備品購入。休暇申請。経費精算。修理依頼。契約書確認。取引先登録。総務や管理部門では、さまざまな申請を扱います。私自身、中小製造業でひとり総務に近い仕事をしています。その中で感じるのは、申請が止まる原因は、承認者が忙しいからだけではないということです。申請の入口、承認者、期限、差し戻し方法、完了条件が曖昧だと、どれだけ催促しても同じ問題が起こります。今回は、申請・承認業務が止まりやすい会社の共通点と、Googleフォームやスプレッドシートを使って改善する方法を紹介します。申請を送っただけでは、仕事は始まっていない申請者は、フォームやメールを送信した時点で、「申請は終わった」と考えます。しかし、管理側ではそこから、・内容を確認する・担当者を決める・承認者へ回す・不備があれば差し戻す・承認結果を申請者へ伝える・実際の処理を行う・完了を記録するという作業が始まります。つまり、申請は業務の入口です。送信できる仕組みだけを作っても、その後の流れが決まっていなければ、仕事は止まります。止まる理由1.承認者が決まっていない「上司の承認が必要」と書かれていても、誰を指すのか分からないことがあります。直属の上司なのか。部門長なのか。金額によって承認者が変わるのか。本社の担当者も確認するのか。ここが曖昧だと、申請は人か
0
カバー画像

「電話で伝えた」は記録ではない|拠点間の連絡漏れを防ぐ4つの仕組み

「昨日、電話で伝えたはずです」「その件は聞いていません」「誰が対応する話でしたか?」本社、工場、店舗、営業所など、複数の拠点がある会社では、このようなやり取りが起こりがちです。電話、口頭、メール、チャットなど、連絡手段はたくさんあります。それでも連絡漏れがなくならないのは、連絡する方法が足りないからではありません。問題は、送った後の状況を管理できていないことです。電話や口頭の連絡が消えてしまう理由電話や口頭での連絡は、すぐに伝えられる点では便利です。急ぎの連絡や、細かなニュアンスを伝えたい場合には、文章より早く済むこともあります。しかし、通話が終わった後に記録を残していなければ、・誰から誰へ伝えたのか・正確に何を依頼したのか・いつまでに対応するのか・相手が内容を理解したのか・最終的に誰が対応するのかが分からなくなります。連絡した本人は覚えていても、相手が別の仕事へ移れば忘れることがあります。別の担当者へ引き継がれた場合は、そもそも連絡があったこと自体を知らないかもしれません。「伝えた」という事実だけでは、業務が完了したとは言えません。チャットを導入しても解決しないことがある電話や口頭を減らすために、社内チャットを導入している会社も多いと思います。文章が残るため、電話だけで済ませるより確認しやすくなります。ただし、チャットにも別の問題があります。・重要な連絡がほかの投稿に埋もれる・読んだだけで対応されない・誰が担当するのか決まっていない・返信がなく、進捗が分からない・完了したのか未対応なのか判別できない送信者は、チャットに投稿した時点で「伝達が完了した」と感じます。一方、受信者は
0
カバー画像

「聞いてない」は伝え方の問題ではない。ひとり総務が考えた“確認まで終わる”社内連絡の仕組み

「その変更、聞いていません」「朝礼で伝えたはずなんだけど……」「グループLINEにも送ったのに、見ていない人がいた」会社で総務や管理業務をしていると、このような場面に何度も遭遇します。重要な連絡を文章にして、朝礼でも説明して、掲示板にも貼った。それでも、数日後には「知らなかった」「聞いていない」と言われてしまう。私自身、ひとり総務として働く中で、この問題に何度も悩まされてきました。最初は、伝え方や本人の意識に原因があると思っていました。しかし、現場を見ているうちに気づきました。「伝えたこと」と「相手が確認したこと」は、まったく別の話です。社内連絡で起きている3つの問題1.勤務時間が違う全員が同じ時間に出勤する会社ばかりではありません。早番、遅番、夜勤、パート、アルバイト、複数拠点など、働く時間や場所が違えば、朝礼だけですべての人に伝えるのは困難です。その場にいなかった人には、誰かが後から伝える必要があります。そして、その「誰かが伝える」という運用が抜けると、連絡漏れが発生します。2.連絡がほかの情報に埋もれるチャットやグループLINEは手軽ですが、連絡が次々と流れていきます。重要なお知らせのあとに、質問、雑談、写真、別件の連絡が続けば、見落とす人が出るのは不思議ではありません。本人は悪気なく、「あとで確認しよう」と思ったまま忘れてしまいます。送信履歴は残っていても、誰がきちんと確認したのかまでは分かりません。3.未確認者を追いかけられない管理する側にとって特に大変なのが、この問題です。掲示板に貼った。メールも送った。朝礼でも伝えた。しかし、誰が確認済みで、誰がまだ確認していない
0
カバー画像

スプレッドシート等GAS案件について

先日、スプレッドシートの作成についての御相談を受けました。前に利用規約を確認した時に「あれ?スプレッドシートとかのGAS系ってなんか書いてあったような…」と思って改めて確認しました。そうすると以下のような記載がありました。「データのやりとりのためにGoogle Drive[Googleドキュメント/Gooleスプレッドシート/Googleフォームを含む]やOneDriveなどのクラウドストレージサービスを利用する行為」の禁止そして他の人の出品を見るとスプレッドシートに関わる出品が出ててきたりしたので「これはどういうことだろう?」と思って運営に確認のメールを入れてみました。そうすると以下の依頼については許容するということでした。① Googleドライブ内の自動連携ツール② 外部WebAPIとの通信システム③ Googleスプレッドシートを用いないと完了しない役務提供①と②に関してはスプレッドシートを使わないと色々と成立しない部分がありますが、③は結構曖昧な形の回答でした。基本的にスプレッドシートを含むGASは禁止という前提で、その中でもどうしてもGASを使用しないといけないものは禁止ということで、もしそういうのがあったら運営に確認しないとダメな状態みたいです。今回ご相談いただいた内容が表データをスプレッドシートでの作成の相談だったので、運営からの回答だとどうしてもというものに該当しないということですので、Excelで作成してデータを提供し、それをスプレッドシートで開いてもらわないといけないという形でした。Excelで作ってスプレッドシートで確認して…ということで何とか成り立つのは
0
カバー画像

GASとSlack連携でリマインダーbotを作る方法:忘れ物をなくす

こんにちは、GASおじさんだよ。今日は、GASとSlackを使ってリマインダーbotを作るお話をしよう。中小企業の経営者やフリーランスの方々にとっては、日々のタスク管理は重要だよね。でも、専用のリマインダーサービスって結構高い。だから、GASとSlackで自家製のリマインダーbotを作っちゃおう。これで月々1,000円以上のコストを節約できるかもよ!■ GASとSlackでリマインダーbotを作る手順□ ステップ1: Slack APIの設定まず、SlackのAPI設定を行う必要がある。Slack APIのページにアクセスして、新しいアプリを作成しよう。OAuthスコープには、「channels:read」と「chat:write」を設定しておくといいよ。これで、必要な情報にアクセスし、メッセージを送信できるようになるからね。□ ステップ2: GASスクリプトの作成次に、Google Apps Scriptでスクリプトを作成しよう。このスクリプトがリマインダーbotの心臓部だよ。以下にサンプルコードを示すから、参考にしてね。このコードは、指定されたSlackのチャンネルにリマインダーを送信するためのものだよ。実際の業務に合わせて、メッセージをカスタマイズしておこう。□ ステップ3: トリガーの設定最後に、GASのトリガー機能を使って、このスクリプトを毎日一定時間に実行するように設定する。GASのエディタで「時計」アイコンをクリックして、トリガーを追加しよう。実行するスクリプトはsendReminderにして、好みの時間に設定するんだ。■ 経済効果さて、経営者の皆さんが一番気にな
0
カバー画像

検索で上位表示されているのにクリックされない…その原因、意外なところにありました

「ブログ記事が検索で上の方に出ているのに、なぜかお問い合わせにつながらない」先日ご相談いただいた店舗オーナーさんから、まさにこんなお悩みをいただきました。調べてみると、たしかに検索結果の1ページ目に表示されている記事がいくつもある。でも、表示された回数に対して、実際にクリックされている割合がとても低かったんです。---## 検索順位が高い=読まれている、とは限らないこれは店舗ブログでよくあるパターンなのですが、「順位が高いから大丈夫」と思い込んでしまい、**実際にクリックされているかどうか**を確認していないケースが意外と多いんです。今回のケースでは、まずデータを正しく取得できる状態に戻すところからスタートしました。計測の仕組みが古い設定のまま止まっていたので、そこを直さないと何が問題なのかもわからない状態だったんですね。美容室でいうと、予約台帳を見ずにメニューの改善を議論しているようなもの。まずは現状を正しく把握することが、すべての出発点です。---## 36記事の「紹介文」を見直しただけで変わったことデータを見られるようになって浮かび上がったのが、**検索結果に表示される紹介文が空っぽ、または記事の内容とズレている**という問題でした。検索結果でタイトルの下に表示される短い説明文。これがきちんと書かれていないと、見た人は「この記事に自分の知りたいことがあるかどうか」を判断できません。今回は36記事すべてについて、「この記事を検索する人は、何を解決したくて検索しているのか?」という視点で説明文を書き直しました。たとえば「美容室 開業 届出」で検索する人は、届出の一覧が知りたい
0
カバー画像

「ビルドは成功したのにサイトが真っ白…」Claude Codeが設定ファイルの1行を即発見

コンサルタントのしおかぜです。ちなみにこの記事も私の情報をもとにClaude codeが私のライターとなり制作してくれています。---先日、あるサンプルサイトを公開しようとしたとき、不思議な現象に遭遇しました。制作ツール上では「ビルド成功」と表示されている。エラーも出ていない。なのに、実際のURLにアクセスすると**画面が真っ白**。「壊れた?」と一瞬焦りましたが、原因を調べてみると、設定ファイルのたった1行が抜けていただけでした。今回は、この経験をもとに「完成したはずのサイトが表示されないときの確認ポイント」と、店舗サイトやLPを安く・速く・安全に公開するためのヒントをお伝えします。---## 「作り置き型」のサイトが中小企業・個人事業のビジネスに向いている理由私がこの課題に取り組む際に活用しているのが **Claude Code** です。日々の作業ログや設定ファイルの確認、記事の構成案まで、Claude Codeに相談しながら進めることで、一人でも高速に質の高いアウトプットを出せるようになりました。まず、今回制作したサイトは「静的サイト」と呼ばれるタイプです。飲食店で例えるなら、**注文が入ってから調理するのではなく、あらかじめ作り置きした惣菜を並べておく**ようなイメージ。お客さまがページを開くたびにサーバーが処理をするのではなく、完成済みのページをそのまま表示するので、表示がとても速いのが特徴です。この方式が中小企業・個人事業主や中小企業・個人事業主のサイトに向いている理由は3つあります。- **表示が速い**:スマホでもサクサク開くので、予約ページへの離脱が減ります
0
カバー画像

「アクセスはあるのに問い合わせゼロ」Claude活用で気づいた記事の出口不足という盲点

コンサルタントのしおかぜです。ちなみにこの記事も私の情報をもとにClaude codeが私のライターとなり制作してくれています。---ブログを書いて、検索でも上位に表示されている。それなのに予約や問い合わせが増えない——そんなお悩みはありませんか?先日、あるメディアサイトの運用データを詳しく分析したところ、驚くべき事実が見つかりました。**月に200回以上読まれている記事が、収益にまったくつながっていなかった**のです。しかも、そういった記事が19本もありました。原因はとてもシンプルでした。記事を読み終わった人が「次に何をすればいいか」分からない状態だったのです。---## 「読まれて終わり」になっていませんか?私がこの課題に取り組む際に活用しているのが **Claude Code** です。日々の作業ログや設定ファイルの確認、記事の構成案まで、Claude Codeに相談しながら進めることで、一人でも高速に質の高いアウトプットを出せるようになりました。中小企業・個人事業主や中小企業・個人事業主のブログでよく見かけるのが、こんなパターンです。- ヘアケアのコツを丁寧に解説している- 検索でも上位に表示されている- でも、記事の最後に予約ボタンがないこれでは、せっかく「このサロン良さそう」と思ってくれた読者も、そのままページを閉じて終わりです。WEBの世界では、この「次にやってほしいこと」への案内を**CTA(行動を促すボタンやリンク)**と呼びます。予約ページへのリンク、電話番号、LINE登録ボタンなど、形はさまざまです。今回分析したサイトでは、検索順位1位の記事にすらこのCT
0
カバー画像

AdSense収益通知を自動化!欲しいデータだけを選んで毎日確認できる方法

ブロガー便利ツールのご紹介毎日AdSenseの収益を確認するのに時間を割くのは大変ですよね。特に、業務が忙しいときや、複数のウェブサイトを管理している場合、ログインして確認するだけでも手間がかかります。そんな悩みを解決してくれるのが、Google Apps Script(GAS)を使ったAdSense収益の自動通知機能です。GASを使えば、毎日の収益状況を自動でメールで報告してもらうことができます。この記事では、そのメリットと実際にどう活用できるのかを紹介します。スクリプト構成の流れGoogle Apps Scriptを使って、AdSenseの収益状況を毎日メールで通知する仕組みは、以下のように構成されています。初期設定スクリプトの最初に、Google AdSense APIと連携するためのパブリッシャーIDや、収益データの出力先(スプレッドシートやメール)を設定します。この部分で、メール通知の設定も含めることができます。収益データの取得GASを使ってAdSense APIから収益データを取得します。ここでは、昨日の収益や直近のトレンドデータを自動で引き出し、特定の項目(推定収益、クリック数、インプレッションなど)を取得します。データの整理取得した収益データはスプレッドシートに自動で保存され、既存データと重複しないように管理されます。これにより、データの整合性を保ちながら最新の情報だけが表示されるようにします。メール通知機能ここが今回の目玉機能です。収益データを取得した後、毎日自動的にメールで通知することが可能です。たとえば、朝8時に「昨日のAdSense収益は〇〇円でした」と
0
カバー画像

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

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

Tasker、Google Apps Script、Switchbotロックで実現する手ぶらで自宅のカギを開けるスマートな仕組み

スマホアプリのTaskerとGoogle Apps Script、そしてSwitchbotロックを利用して、外出先から帰ってきたときに手ぶらで自宅のカギを開ける仕組みを試してみました。この仕組みを使うと、自宅に帰る際に鍵を取り出して開錠する手間が省け、便利さを実感できます。 Taskerは、スマホ上の状態や時刻などのイベントをトリガーにして、様々なアクションを実行するアプリです。Switchbotロックは、スマートロックの製品で、自宅のカギを遠隔から操作したり、指紋認証で開錠したり、様々な利用方法で制御可能な製品です。手ぶら開錠の仕組みまず、処理の流れは非常にシンプルです。スマホが自宅のWifiに接続したとき、それがトリガーとなりHTTPリクエストがGoogle Apps Scriptに送信されます。Google Apps Scriptは受け付けたリクエストをもとに、SwitchbotのAPIにHTTPリクエストを送信し、Switchbotのロックが開錠される仕組みです。 ただし、Switchbotのスマートロックを制御するには、事前にトークンを発行し、いくつかの準備を整える必要があります。これにより、Google Apps ScriptからSwitchbotを操作できるようになります。実装結果Wifi接続を検知してから若干のタイムラグが発生することはありますが、全体としては良好に機能しています。スマホを再起動した場合でも、今回の処理が動作しますが、在宅時に開錠されることに関しては特に問題ありません。Wifiの接続が切れた場合、施錠するといった使い方もできますが、施錠が確実に実
0
カバー画像

【GAS】セル範囲の保護と、解除について

■はじめに久しぶりの投稿はセル範囲の保護と、解除についてです。セル範囲の保護はちょいちょいネット上でも記事書いてあったんですが、セル範囲の解除についてはほとんど記事がなかったので、備忘録も兼ねて書いてみる事にしました。■セル範囲の保護セル範囲の保護をする場合は、割と情報でてるので書くの恐縮なんですが、以下の様なソースで対応可能です。const book = SpreadsheetApp.getActiveSpreadsheet();const sheet = book.getActivesheet();const protect = sheet.getRange(row,col,row2,col2).protect();//オーナーは必ず権限を持つので注意protect.addEditor(email);     //単一ユーザー登録時protect.addEditors(emailarry);   //複数ユーザー登録時、配列を渡すprotect.setDomainEdit(true);   //GWでドメインユーザーを許可する場合■セル範囲の保護の解除セルを解除する場合には以下の様なソースを使います。const book = SpreadsheetApp.getActiveSpreadsheet();const sheet = book.getActiveSheet();const pType = SpreadsheetApp.ProtectionType;const protect = sheet.getProtections(pType.RANGE);for(let i
0
カバー画像

【GAS】Discordへ通知する為の関数

■はじめに前回はDiscord通知BOTを作る為の事前準備を実施しました(*'ω'*)今回は、実際にBot通知する為の関数について説明していきたいと思います。■ソースコードまずはソースを見てみましょう(´ω`*)function subDiscordBotPost(strWebhock_URL, strUserName, strContent) {  const payload = {    username : strUserName,    content : strContent  };  UrlFetchApp.fetch(strWebhock_URL, {    method: "post",    contentType: "application/json",    payload: JSON.stringify(payload)  });}実はもうこれこのままコピペすれば、ほぼそのまま利用できますw■関数の簡単な説明まずは引数について。strWebhock_URL>前回のDiscord側でコピーしておいた、>WebhockURLを渡します。strUserName>BOTのDiscordに通知されるユーザー名です。>好きなキャラとかにすると、なかなかエモくなります(´ω`*)strContent>発言内容です。>事前にSpreadsheetや、Googleカレンダー、Gmail等から>条件に合う内容をメッセージ整形しておいて、値を引き渡します。■実際に発送してみるとこんな感じDiscordでプロジェクトとか、サークル利用している方は、こんな機能を追加できると、スケ
0
カバー画像

新しいサービスを出品しました!Googleユーザーは必見です!

僕はこれまでMicrosoft傘下の大手IT企業で勤めており、その後ベンチャー系インフルエンサー会社の経営企画室として社長に引き抜かれて勤務をしていました。このホワイト→ブラックに移った大きい落差・環境の中でベンチャーならではのむちゃぶり対応や、サービス内容変更の調整など怒涛の毎日をサバイブできた理由の1つに、「ITによる自動化」がありました。・時間管理・メールチェック:送信・資料作成・顧客管理など、ありとあらゆる場面で、プログラミングやITのスキルが活用することができました。そして周りを見渡せば、そのスキルを持っているのはこのベンチャー企業では僕だけだったと言うことに気が付きました。そこで、職場のいろんな人にワークフローの自動化や効率化のツールの使い方等を教えていく中で、「自分はこれが向いている」と感じたり、その教えたことで役に立っている人を見るのが好きになっていきました。もっと誰かの役に立ちたいと思い、今回、サービスとして出品してみることにしました。Googleのサービス間であれば、GoogleAppScriptは超優秀に働きます。例えば、Gmailから届いたお問い合わせ内容をもとに、スプレッドシートにクライアント情報入力し、営業担当のGoogleカレンダーにクライアントデータシートを連携します。同時に、クライアントデータをスプレッドシートのテンプレート或いはテンプレドキュメントみたいなものがあれば参照し、新規作成の上データを反映、Googleドライブ内の営業担当のフォルダの中にクライアント名ファイルとして格納することなども可能で、実際に作成していました。こういった作業は意
0
カバー画像

相談を受けて開発したツイッターbotについてご紹介

以前、GASでツイッターbotの作成が可能かという相談を直接受けまして対応した際に作成したクラス図の紹介となります。私の対応のスタンスとしては、その場限りではなく、「長く使ってもらいたい」、「利用していくうちに新しいアイディアが湧いてくる」、「利用中に見えてきた改善点」などに対して、ある程度柔軟に対応できるよう、メンテナンス性を意識してほぼ必ずクラス設計を行います(完璧ではないですが、メモ書き程度に)。今回の場合は以下のような感じで検討いたしました。これからツイッターbotを作ろうとう考えている出品者の方の参考に少しでもなれば幸いです。スプレッドシートはこんな感じになっております。合わせて見ればどこでどんなことをやっているか何となく分かるかなとは思っております。ここまで記事を読んでくださり、ありがとうございました。質問・相談はいつでも受付ておりますので、気軽にお声掛けください。
0
カバー画像

安価で自動化プログラムを依頼する方法

こんにちは。ココナラで自動化プログラムの作成・販売を行っているPman00(ピーマン)です。▼プロフィールはこちらhttps://coconala.com/users/977677スプレットシートやExcel操作の自動化をココナラで依頼したい。けど…・自動化は高額なイメージがして、なかなか踏み出せない。・相談したけど予算より高額になって断念した。と言う方へ「安価で自動化プログラムを依頼する方法」を伝授します。その前に、1問だけ問題です。Q:プログラム作成の過程で最も作業工数がかかる工程はどこでしょう?次の3つから1つを選択してください。 A:プログラミング工程(コードを打ち込む工程) B:テスト工程(成果物の動作確認の工程) C:仕様検討工程(ツールの動作を決める工程)ほとんどのお客様が勘違いされているのですが、一番“カンタン”な工程は「A:プログラミング工程」なんです。そして、最も工数がかかる工程は「C:仕様検討工程」です。本題:安く自動化プログラムを作ってもらう依頼方法さて、本題に入っていきます。我々プログラマーに作業を依頼する際は「何をどうして欲しいのか具体的に説明する」事で、代金を安くする事が可能です。次のような依頼をしてください。お客様:以下のスプレットシートからGoogleカレンダーに情報を登録して頂きたいです。▼スプレットシートURLhttp://xxxxxxカレンダーの登録情報は以下を希望します。・カレンダー登録日:A列の日付・カレンダータイトル:B列+C列の内容・カレンダーの内容:D列〜F列の内容こちらでご検討可能でしょうか?プログラマ:内容を確認させて頂きま
0
カバー画像

GASでスプレッドシートを指定のフォルダに新規作成する

お久しぶりのブログです。体調崩したり大き目案件頂いててんやわんやでした。さて、今回はGASを使ったスプレッドシートの新規作成について書いてみます。GASでスプレッドシートを単純に新規作成する場合、以下の様に記述します。SpreadsheetApp.create(`テストシート`);ただ、この方法だと、GoogleDriveのRootフォルダであるマイドライブ直下に作成されてしまいます。特定のフォルダにファイルを新規作成したい場合、createメソッドだけでは実現できないので、以下の様な手順を通ります。1)スプレッドシートを新規作成2)新規作成したシートのIDを取得3)フォルダの場所を取得 4)取得したシートIDを指定したフォルダへ移動するGASの場合、スプレッドシートの新規作成と、シートIDの取得は同時に行う必要があるので、以下の様に記述します。const bookId = SpreadsheetApp.create(`テストシート`).getId();次に個別に保存先のフォルダを取得しますconst dir = DriveApp.getFolderById(`フォルダID`);最後に移動処理を行います。DriveApp.getFileById(bookId).moveTo(dir);これをひとまとめにして記述すると次の様になりますconst bookId = SpreadsheetApp.create(`テストシート`).getId(); const dir = DriveApp.getFolderById(`フォルダID`);DriveApp.getFileById(boo
0
カバー画像

Google Apps Script の承認について

拡張機能付き Google スプレッドシートを使用する際に最初の1回だけ承認作業を行う必要があります。以下の手順に従って、承認をしてください。手順1.メニュー「拡張機能」から「承認(初回のみ)」をクリックしてください。手順2.「承認が必要」というポップアップが表示されます。「続行」をクリックしてください。手順3.「アカウントの選択」画面が表示されます。使用するアカウントを選択してください。手順4.(無料の Google アカウントのみ)「このアプリは Google で確認されていません」という画面が表示されます。⚠ マークが表示されているのでビックリするかもしれませんが、「Google が作った拡張機能ではないですよ」意味で表示されています。左下に小さく表示されている「詳細」をクリックしてください。詳細が表示されます。スクロールして一番下に表示されている「(安全ではないページ)に移動」をクリックしてください。「安全ではないページ」と書かれているのは、「Google 自身が作ったものではないので保証しませんよ」という意味です。手順5.「Google アカウントへのアクセスをリクエストしています」という画面が表示されます。一番下までスクロールして「許可」を押してください。以上で承認が完了となりました!
0
カバー画像

GASでDriveフォルダに自動で色を設定

GASでDriveフォルダに自動で色を設定■ はじめにこんにちは、GASおじです。今回はGoogle Driveのフォルダに自動で色を設定する方法を紹介するよ。中小企業の経営者やフリーランスの皆さん、ファイル管理は効率化の肝だ。特にフォルダの色分けは視認性アップに効果絶大だが、手動でやると意外と面倒くさいよね。そこでGoogle Apps Script(以下、GAS)を使って自動化しよう。しかも既存のデータを壊さずに安全に処理する方法を解説するから安心してほしい。SaaSの課金はおじさんも大嫌いなので、Googleアカウントの利用枠内で追加費用なしでできるやり方だ。■ Driveフォルダの色設定とは?Google Driveのフォルダは、Web UIで右クリック→「色を変更」から色を設定できる。これ、GASのDrive APIを使ってプログラムから色を指定できるんだ。ただし、GASの標準のDriveAppクラスには色を変えるメソッドはない。そこでDrive APIを直接呼び出す必要がある。今回はDrive API v3のfiles.updateメソッドを使ってフォルダのfolderColorRgbプロパティを更新する方法を紹介する。■ 初期設定と必要権限・Google Cloud PlatformのAPI有効化 Google Apps Scriptエディタの「サービス」から「Drive API」を追加する(Drive API v2ではなくv3を使う)。・Google Cloud Consoleで「Drive API」を有効化しておく。・必要な認可スコープスクリプトのappssc
0
カバー画像

複数のシートの数字を、関数だけで1枚にまとめる

毎週月曜、店舗ごとのシートを開いて、コピーして貼り付けて。それを店舗の数だけくり返していませんか。ご相談で一番多いのが、この作業です。シートは部署ごと・店舗ごと・月ごとに分かれていて、それを1枚にまとめるところだけが手作業で残っている。■ 手でやると、何が起きるか・見落とし。シートが5枚あると、1枚飛ばしても気づきません・貼り間違い。行がずれても、合計そのものは出てしまいます・元の数字が直ると、また最初からとくに3つ目がつらいところです。集計し終わったあとに「先週の数字が違っていた」と言われると、もう一度おなじ作業をすることになります。■ 関数だけで、ここまでできますプログラムを書かなくても、スプレッドシートの関数だけでかなりのところまでいけます。まず、シートを縦に積む書き方があります。={渋谷店!A2:C;新宿店!A2:C;池袋店!A2:C}波カッコで囲んで、セミコロンで区切ると下に積み上がります。カンマで区切ると横に並びます。これに集計をかぶせると、1つの数式で終わります。=QUERY({渋谷店!A2:C;新宿店!A2:C;池袋店!A2:C},"select Col1, sum(Col3) where Col1 is not null group by Col1 order by sum(Col3) desc label Col1 '商品', sum(Col3) '合計数量'",0)長く見えますが、やっていることは3つだけです。・波カッコで囲んだ部分 … 3つのシートを縦に積む・group by Col1 … 1列目(商品)ごとにまとめる・sum(Col3) … 3列目(数
0
カバー画像

Gmailのメールを条件で自動アーカイブ

Gmailのメールを条件で自動アーカイブする方法を、GASおじがわかりやすく解説するぜ。中小企業の経営者やフリーランスの皆さん、メール管理で時間を取られていないか?おじさんが紹介するGoogle Apps Script(GAS)を使えば、条件に合うメールを自動でアーカイブして、スッキリ管理できる。もちろん、既存のメールデータを消さずに安全にバックアップを取りながら処理するので安心してくれ。■ なぜGASでGmailの自動アーカイブ?メールは仕事の重要な情報源だけど、不要な通知や広告メールが溜まると見落としやすくなる。手動でアーカイブするのは時間のムダだし、業務効率が下がる。GASならGoogleアカウントの利用枠内で追加の専用SaaS料金なしで自動化できる(ただし、Apps Scriptのquotaや実行上限はあるので注意)。おじさんも課金には厳しいから、コストゼロで効率化できるのは嬉しいところだ。■ 初期設定と必要な権限このスクリプトを動かすには、Gmailの読み取りと操作権限が必要だ。初回実行時に認証を求められるので、指示に従って許可してほしい。さらに、定期的に自動実行させたい場合はインストール型トリガーを設定すると便利だ。・Google スプレッドシートを新規作成(バックアップ用)・スクリプトエディタにコードを貼り付け・Gmailの読み取りと管理権限を付与・installable triggerで定期実行(例:1日1回)■ メールアーカイブの条件設定と処理の流れ今回は「件名に特定のキーワードが含まれる」「受信から7日以上経過している」メールを対象にする。処理手順はこうだ。
0
カバー画像

Googleフォームのクイズ採点をGASで自動化

Googleフォームのクイズ採点をGASで自動化こんにちは、GASおじです。今回はGoogleフォームのクイズ機能を使っている中小企業の経営者やフリーランスの皆さん向けに、「採点作業をGoogle Apps Script(GAS)で自動化する方法」を解説していくよ。手作業の見直しは時間もコストもかかるけど、GASならGoogleアカウントの利用枠内で追加の専用SaaS料金なし(※Apps Scriptのquota・実行上限はあるので注意)で効率化できる。おじさん自身、SaaS課金には厳しいので、できるだけ既存データを消さずに安全に処理する方法を重視している。実は採点結果は新しい日時付きシートに書き出す形にして、元データはそのままキープ。バックアップやロールバックにも対応しているから安心して使ってほしい。■ 初期設定と必要権限まずはGoogleフォームの回答が自動でスプレッドシートに集まる状態にしておこう。Googleフォームの「回答」タブから「スプレッドシートにリンク」を設定すればOK。次に、GASでスクリプトを作成し、以下の権限を付与する必要がある。・スプレッドシートの読み書き権限・Googleフォームの読み取り権限(必要に応じて)また、採点処理を自動化したいなら「トリガー」から「時間主導型トリガー」や「フォーム送信時トリガー(installable trigger)」を設定しよう。installable triggerは手動で設定しないと動かないから注意してね。■ 入力検証とバッチ書き込みのポイント採点の自動化でありがちなミスは「誤ったデータに対して処理をしてしまうこと」。
0
カバー画像

GASで作る予算管理スプレッドシート

こんにちは、GASおじです。中小企業の経営者さんやフリーランスの皆さん、毎月の予算管理で頭を悩ませていませんか?SaaSの予算管理ツールは便利だけど、月額料金が積み重なると結構なコストに…。そこで、Google Apps Script(以下GAS)を使って、Googleスプレッドシート上でシンプルかつ安全に予算管理ができる仕組みを作る方法をおじさん流に解説します。今回のポイントは、・既存データを直接上書きしない(安全第一!)・入力データの検証をしっかり行う・バッチ処理で効率よく書き込む・バックアップとロールバック機能を備える・追加のSaaS料金は発生せず、Googleアカウントの利用枠内で運用可能というところ。では早速いきましょう。■ 予算管理スプレッドシートの構成イメージおじさんが考える予算管理シートは以下のような構成です。・予算入力シート:経費項目ごとに予算額を入力。ここは経営者や担当者が直接編集。・支出記録シート:実際に発生した支出を日付・項目・金額で記録。・集計シート(自動生成):最新のデータを元に月次で予算対実績を集計。こちらはスクリプトで新規作成・更新。この中で、支出記録は日々追加されるため、既存データを壊さずに新しいシート(日時付き)へ集計結果を保存していく形が安全です。そうすれば万が一トラブルがあっても過去データはそのまま残るし、復元も容易です。■ 初期設定と必要権限このスクリプトを動かすには、以下の点を確認してください。・Googleスプレッドシートの編集権限が必要です。・スクリプトエディタでGoogle Apps Scriptのプロジェクトを作成。・スクリプ
0
カバー画像

DriveのファイルをGASで自動変換&整理

■ DriveのファイルをGASで自動変換&整理みなさん、GASおじです。中小企業の経営者やフリーランスの皆さん、Google Driveに溜まったファイル、どう整理してますか?放置すると検索性も悪くなるし、ファイル形式がバラバラで扱いにくいですよね。そこで今日は、Google Apps Script(以下GAS)を使ってDrive内のファイルを自動で変換&整理する方法を紹介します。GASはGoogleアカウントの利用枠内で使えるので、追加の専用SaaS料金は不要。ただし、Apps Scriptのクォータや実行上限があるので大量処理は注意してください。おじさんの経験から言うと、事前のバックアップや入力検証をしっかりやることがトラブル回避のポイントです。■ 初期設定と必要な権限このスクリプトを動かすには、Googleアカウントで以下の権限が必要です。・Driveのファイル一覧取得とコピー権限・スプレッドシートの新規作成権限また、installable trigger(時間主導型トリガー)を設定すれば、定期的に自動実行も可能です。トリガーはGASの「編集」メニュー → 「現在のプロジェクトのトリガー」から設定してください。個人情報の取り扱いには十分注意し、スクリプト実行前に必ずバックアップを取りましょう。もし誤った操作があっても、元ファイルは手を付けず新規ファイルに結果を書き出すので安心です。■ コード例:DriveのGoogleドキュメントをPDFに変換して日時付きフォルダに保存以下は、Drive内の指定フォルダにあるGoogleドキュメントをPDF化し、変換結果を新規日時付きフ
0
カバー画像

GASで作るスプレッドシート承認ワークフロー

GASで作るスプレッドシート承認ワークフロー中小企業の経営者やフリーランスの皆さん、こんにちは。GASおじです。このブログでは、Google Apps Script(以下GAS)を使ってスプレッドシートでの承認ワークフローを自作する方法を解説します。SaaSの月額課金は痛いけど、業務の効率化はしたい…そんなあなたにぴったりの内容ですよ。■ なぜGASで承認ワークフローを作るのか?承認ワークフローと言えば、専用のSaaSツールが思い浮かびますね。しかしこれらは、毎月のサブスク料金が経営を圧迫することも。GASならGoogleアカウントの利用枠内で動かせるので、追加の専用SaaS料金は発生しません(ただしApps Scriptのquotaや実行上限はあります)。おじさんが提案するのは、既存データを壊さずに新規シートやファイルに承認結果を書き出す運用。これならデータの安全性が高いし、バックアップやトラブル時の復元もスムーズです。■ 承認ワークフローの設計ポイント・入力検証 承認前に申請データの必須項目チェックを行い、誤入力を防ぎます。・バッチ書き込み 複数行のデータがある場合はまとめて書き込み処理し、API呼び出し回数を削減。これでスクリプト実行時間も短縮できます。・バックアップとロールバック 承認結果を新しい日時付きシートや新ファイルに出力し、元データは触らない。失敗しても過去のデータから復元可能です。・初期設定と必要権限 スクリプトはスプレッドシートの編集権限とGoogleドライブのファイル作成権限を要求します。 また、承認処理はInstallable Trigger(例:時間主
0
カバー画像

家賃管理のチェック、まだ毎月2時間かけていませんか?——「手作業」を疑うところから始まる業務改善

不動産の仕事をしていると、月初は決まって同じ作業に追われます。入金確認、家賃台帳との突き合わせ、未入金者への連絡リストづくり。オーナー業を兼ねている方なら、複数の管理会社から届く明細をExcelにまとめ直す作業も加わります。私自身、不動産営業を20年やってきて、この手の「地味だけど絶対に外せない作業」がどれだけ時間を食うかを痛感してきました。1件1件は数分でも、物件数が増えれば増えるほど、月末月初の数時間がまるごと消えていきます。しかも間違えられない作業なので、集中力も削られます。去年からプログラミングを学び始めて感じたのは、こうした「決まった手順を、決まったタイミングで、正確に繰り返す」作業は、実は自動化ととても相性がいいということです。たとえば以下のようなことは、今のExcelマクロ(VBA)やGoogle Apps Script(GAS)、スプレッドシートの仕組みだけで十分に実現できます。・複数の管理会社から届くExcel明細を、指定のフォーマットに自動で集計する・入金予定額と実際の入金額を突き合わせて、差異だけをリストアップする・毎月決まった日に、未入金者への確認メールの下書きを自動作成する「エンジニアに発注するほどではないけれど、毎月地味にしんどい」——このくらいの規模の作業こそ、自動化の費用対効果が一番大きい領域だと感じています。大掛かりなシステムを入れる必要はなく、今使っているExcelやスプレッドシートの延長線上で、月に数時間分の作業を仕組み化できることがほとんどです。もし「これはうちの作業でもできそうか」と気になる工程があれば、一度整理して相談してみるだけでも
0
カバー画像

GASでフォーム入力候補をスプレッドシートから自動補完

こんにちは、GASおじです。今回は、Googleフォームの入力候補をスプレッドシートのデータから自動で補完する方法について解説するよ。中小企業の経営者さんやフリーランスの方々にとって、手間を減らしつつコストを抑えるアイデアとして参考になればうれしいね。フォームの入力候補って、手動で設定すると意外と面倒だし、データが増えるたびに更新しないといけない。そこで、GAS(Google Apps Script)を使ってスプレッドシートの最新データを元にフォームの選択肢を自動でアップデートする方法を紹介するよ。この仕組みはGoogleアカウントの利用枠内で追加の専用SaaS料金なしで使えるけど、Apps Scriptのquotaや実行上限には注意してね。■ 仕組みの概要とメリットGoogleフォームの選択肢は「リストから選択」「チェックボックス」「プルダウン」などで設定できるけど、これを手動で編集するのは面倒だ。スプレッドシートに候補データがあるなら、それを直接フォームに反映させることで、・データの一元管理ができる・更新の手間を減らせる・入力ミスや誤記を減らせるといったメリットがある。GASで自動化すれば、スプレッドシートのデータを編集するだけでフォームの選択肢が更新されるから、運用がラクになるぜ。■ 初期設定と必要権限まずは準備するものと設定手順を確認しよう。・Googleフォームを作成し、選択肢を入れたい項目(例:プルダウン)を用意する・候補データを管理するスプレッドシートを作成し、候補リストを1列にまとめておく(例:A列に「候補リスト」)・GASでフォームとスプレッドシート双方にアク
0
カバー画像

カスタムなカレンダーリマインダーをGASで作成

カスタムなカレンダーリマインダーをGASで作成こんにちは、GASおじです。Googleカレンダーの標準通知だけでは「毎朝、24時間以内の予定を一覧で確認したい」といった運用に合わせにくいことがあるよね。この記事では、Google Apps Script(GAS)でデフォルトカレンダーの予定を読み取り、指定したメールアドレスへ一覧を送るリマインダーを作る。この仕組みはカレンダーの予定を変更・削除しない。読み取った予定をメール本文へ整形し、時間主導型トリガーで毎日実行する構成だ。ただし、メール本文には予定名・時刻・場所が含まれるため、通知先は必ず自分で管理できるアドレスを指定しよう。■ このリマインダーが行うこと今回のコードは、実行時刻から24時間以内に始まる予定をデフォルトカレンダーから取得する。予定が1件以上あれば、件数・予定名・開始終了時刻・場所を1通のメールにまとめて送信する。予定がなければメールは送らず、実行ログだけを残す。公式のCalendarAppでは、利用者のデフォルトカレンダーへ直接アクセスする方法としてgetDefaultCalendar()が用意されている。メール送信には、受信箱へアクセスせず送信だけを行うMailAppを使う。毎日の自動実行はClockTriggerBuilderのatHour()とeveryDays()で設定する。・CalendarApp公式リファレンス・MailApp公式リファレンス・ClockTriggerBuilder公式リファレンス■ 実装コードApps Scriptで新しいプロジェクトを作り、次のコードを貼り付ける。最初にCONF
0
365 件中 1 - 60