業務自動化で脱・手作業!一人事務のDX活用術 | RPA・自動化ツール

業務自動化で脱・手作業!一人事務のDX活用ブログ|RPA・自動化ツールで業務をもっとラクに、もっとスマートに

ChatGPT×Googleフォームで簡単レコーディングダイエット|食事&体重管理をやさしく継続

ゴールデンウィークなどの連休中、ついつい食べすぎてしまった……という方は多いのではないでしょうか。

ダイエットアプリやAI連携の体重計も便利ですが、「記録が面倒」「継続できない」という理由で挫折してしまうこともあるでしょう。筆者もその一人です。

そこで今回は、GoogleフォームとChatGPTを組み合わせて、手軽に続けられる「レコーディングダイエット支援ツール」を自作してみました。
ポイントは、「AIがやさしく寄り添ってくれる」こと。厳しい言葉ではなく、“ちょっとした気づき”をくれるアドバイスなら、日々の記録も負担になりません。


Googleフォーム×ChatGPTでつくる!ダイエット記録システム

以下の手順で誰でも簡単に始められます。

Googleフォームを作成

Googleドライブから「+新規」→「Googleフォーム」を選択。

② 質問項目を設定

  • 【種別】朝・昼・晩・体重記録のみのプルダウン

  • 【内容】食べたものを自由記述

  • 【体重】任意回答欄(kg)

Googleスプレッドシートと連携

フォームの「回答」タブからスプレッドシートを生成。

④ GAS(Google Apps Script)を記述

スプレッドシートより拡張機能→Apps Scriptを開き、ChatGPT APIと連携するコードを記述します(※ブログの一番下部に記載しています)。

⑥ トリガー設定

「フォーム送信時」にGASを動かすようにトリガーを設定します。


実際のChatGPTアドバイス

最初のプロンプトは以下のように設定しました。

あなたはダイエットと栄養の専門家です。
以下の食事内容について、ダイエットおよび栄養学の観点からアドバイスを出してください。
できれば前向きな表現や励ましの言葉も含めてください。

結果はこちら👇

……うん、正論だけどちょっと厳しい😢
そもそも朝にジャムパン食べるような人間は、もう確信犯なんですよ(笑)。


プロンプトを調整して“やさしいAI”に育てる

というわけで、プロンプトを以下のように変更しました。

以下の食事内容に対して、ダイエットの視点を含みつつ、やさしい気づきや提案を1〜2文で伝えてください。
上から目線にならず、否定的にならず、前向きで寄り添う言い方をしてください。
「わかっていてもできない日もある前提」でお願いします。

このくらいなら素直に受け入れられますよね。「怒られてる感」がないのが継続のコツです。

なお、gpt-3.5-turboよりもgpt-4の方がやさしい傾向があり、プロンプトの意図を汲んでくれやすい印象でした。ただし、今回はコストを抑えたいという理由で、今回はgpt-3.5-turboを調教(笑)して使用しています。


体重記録機能も追加!

フォームの「種別」で「体重記録」を選び、体重記録欄に体重を入力(スプレッドシート体重記入欄(F列))に基づいて以下のようなメッセージも自動送信されます。

こちらはChatGPTではなく、GAS内で差分を計算し、固定文言を分岐で送信しています。体重管理をもっと柔軟にしたい場合は、GPTでその日の流れや傾向を分析させるよう拡張も可能です。


まとめ:ゆるっと続けられる仕組みが最強!

「ちゃんとやらなきゃ」と思うほど、続かないのがダイエット。
でも、“少し寄り添ってくれるAI”がいるだけで、不思議と記録したくなるんです。

GoogleフォームとChatGPTを組み合わせれば、コストも低く、自分に合った“ゆるいダイエット記録”が実現できます。

まずは朝ごはん1つから。
あなたも、AIと一緒にゆるっと記録、始めてみませんか?

▼GASとChatGPTの連携でさらなるカスタマイズをしたい方はこちらの書籍もおすすめです。

ChatGPT APIをGoogleスプレッドシートで関数化!=GPT()で要約・分類が一発|AI関数で正規表現不要な時代へ

Google Apps Script × ChatGPTのツボとコツがゼッタイにわかる本

新品価格
¥1,960から
(2025/4/5 11:45時点)

▼ 役に立ったらブックマークお願いします!

ChatGPT APIをGoogleスプレッドシートで関数化!=GPT()で要約・分類が一発|AI関数で正規表現不要な時代へ

ChatGPT APIをGoogleスプレッドシートで関数化!=GPT()で要約・分類が一発|AI関数で正規表現不要な時代へ
人気ブログランキング

<gascode>

const OPENAI_API_KEY = 'sk-*********************'; // ← OpenAIのAPIキーを入力
const GOAL_WEIGHT = 50.0; // ← ご自身の目標体重(kg)を設定

function onFormSubmit(e) {
  const email = e.values[1];
  const mealType = e.values[2]; // あさ・昼・晩・体重記録
  const mealContent = e.values[3]; // 食べたもの
  const weight = e.values[5]; // 体重(任意)

  let messageParts = [];

  // 食事記録がある場合(体重記録でなく、かつ記入あり)
  if (mealType !== '体重記録' && mealContent) {
    const prompt = `
あなたはダイエットと栄養の専門家です。
以下の食事内容に対して、ダイエットの視点を含みつつ、やさしい気づきや提案を1〜2文で伝えてください。
上から目線にならず、「次に活かせそうなちょっとしたヒント」を伝えるようにしてください。
改善点があっても否定的にならず、前向きで寄り添う言い方をしてください。
わかっていてもできない日もある前提で、寄り添いながらアドバイスしてください。

■食事の種別: ${mealType}
■内容: ${mealContent}
    `;
    const advice = getGPTResponse(prompt);
    messageParts.push(`【${mealType}の記録】\n${mealContent}\nアドバイス:\n${advice}`);
  }

  // 体重記録がある場合(数値が入っているか)
  if (weight && !isNaN(parseFloat(weight))) {
    const weightNum = parseFloat(weight);
    const diff = (weightNum - GOAL_WEIGHT).toFixed(1);
    const weightMessage = generateWeightMessage(weightNum, diff);
    messageParts.push(`【体重記録】\n現在の体重: ${weightNum}kg\nコメント:\n${weightMessage}`);
  }

  // どちらか記録があったらメール送信
  if (messageParts.length > 0) {
    const fullMessage = messageParts.join('\n\n');
    sendAdviceEmail(email, '今日の記録', '', fullMessage);
  }
}

function generateWeightMessage(currentWeight, diff) {
  if (diff > 0) {
    return `目標体重まであと${diff}kgですね。少しずつでも続けていけば、ちゃんと近づいていきますよ!応援しています!`;
  } else if (diff < 0) {
    return `目標より${Math.abs(diff)}kg軽くなっています!すごいですね!維持できるように無理せず過ごしていきましょう!`;
  } else {
    return `目標体重ちょうどですね!おめでとうございます!この調子でバランスよく続けていきましょう!`;
  }
}

function getGPTResponse(prompt) {

  const payload = {
    model: 'gpt-3.5-turbo', // 必要に応じて gpt-4 に変更可
    messages: [{ role: 'user', content: prompt }],
    temperature: 0.7
  };

  const options = {
    method: 'post',
    contentType: 'application/json',
    headers: {
      Authorization: `Bearer ${OPENAI_API_KEY}`
    },
    payload: JSON.stringify(payload),
    muteHttpExceptions: true
  };

  const response = UrlFetchApp.fetch(url, options);
  const json = JSON.parse(response.getContentText());
  return json.choices[0].message.content.trim();
}

function sendAdviceEmail(email, type, content, advice) {
  const subject = `【アドバイス${type}`;
  const body = `
こんにちは!
ご記入いただいた内容について、コメントをお届けします。

${advice}

記録、おつかれさまです!明日もゆるっとがんばっていきましょう!
`;

  GmailApp.sendEmail(email, subject, body);
}

ChatGPT本体とGPTs(カスタムGPT)の違いとは?業務効率化での使い分けポイントも解説!

ChatGPTを日常的に活用している方の中には、画面に表示される「GPTs」タブが気になっている方も多いのではないでしょうか?

「本体と何が違うの?」「GPTsって何に使うの?」と思いつつ、そのまま本体だけでやりくりしている方も少なくないはず。

今回は、ChatGPT本体とGPTs(カスタムGPT)の違いと、それぞれの得意分野・活用シーンを、業務効率化の視点からわかりやすくまとめてみました。


GPTsとは?簡単にいうと「専属部下」AI

GPTsとは、ChatGPT本体をベースに「特定の指示」「目的」「性格」などをカスタマイズして作られた専用AIです。 「履歴書作成に特化したGPT」「お悩み相談専用のGPT」など、目的別に“専属の部下”を用意するようなイメージです。

OpenAI公式や他のユーザーが作成したGPTsを使うこともできますし、自分でカスタムGPTを作ることも可能です(特別なスキルは不要)。

▼サイドバーのGPTを探すから必要なGPTsを探して使うことができます

Excel関数に特化したGPTs、履歴書作成用GPTsなど様々なGPTsが存在しています。

▼マイGPTの+GPTを作成するから新しいGPTsを作成できます。


ChatGPT本体との違い

項目 ChatGPT本体 GPTs(カスタムGPT)
使い方 なんでも聞ける万能型 特定用途に特化(ルール・口調など固定)
柔軟性 高い(対話や空気を読んでくれる) 固定されたプロンプトに従う傾向が強い
記憶の使い方 会話全体を柔軟に覚える(Plus版) 会話内の行動範囲が決まっている
カスタマイズ 都度指示する あらかじめ設定できる(キャラ、口調など)
外部連携 APIやGAS連携が可能 API非対応(連携性は低い)

要するにどうなの?

プロンプト固定でガチガチにやりたい(例:EXCELデータをアップロードして勘定科目を割り当てるなど、業務の流れが統一されている定型業務)場合や、

キャラや社内情報などをあらかじめ設定しておきたい場合(例:会社情報に基づく接客対応)にはGPTsが向いています。

そうではなく、幅広い用途で柔軟に使いたい場合や、「ふわっとした相談」などには本体の方が適しています。


GPTsを使う・作る際の注意点

GPTsは便利ですが、利用・作成時にはいくつかの注意点があります。特に業務用途では以下の点に注意しましょう。

✅ 一度「公開」したGPTsは削除できない(2025年現在)

公開設定にしたGPTsは後から取り消せません。URLを知っていれば誰でもアクセス可能になるため、機密情報や個人情報は含めないよう注意が必要です。

(※非公開設定でGPTsを使うことももちろん可能です。公開する場合はくれぐれも注意。)

API連携やWebhookは(まだ)使えない

GPTsはChatGPT本体と異なり、外部ツールとのAPI連携ができません。GASやRPAとの組み合わせは現状難しいですが、将来的な拡張には期待できます。

✅ 記憶の仕組みはChatGPT本体とは分離

GPTsはプロンプトによる行動規定が強く、ChatGPT本体のような会話履歴を通じた学習・記憶とは異なります。

✅ 精度・柔軟性はプロンプト次第

GPTsは「こう出力してね」とプロンプトで決め打ちする分、自由な発想やふんわりした質問には弱い傾向があります。


筆者の個人的な意見(妄想含む)

筆者自身はまだGPTsを自作したことがありません。その理由は大きく2つです。

1つは、以前SEOブログライティングに特化したGPTsを使ったところ、「プロンプト通りに出力」するあまり、文章がガチガチで使いづらく感じたこと。

もう1つは、現時点では「プロンプト固定で処理する必要がある業務」が少なく、汎用性の高いChatGPT本体で十分に感じているためです。

ただし、将来的にGPTsがAPIに対応すれば非常におもしろい展開になると感じています。

  • 長文プロンプトをGPTs側に固定し、AI関数側は =AI("実行") レベルに抑えればコスト効率UP。以前の記事でコストの懸念が強かったAIによる経理自動仕訳についても実現性の高いものとなりうる(しかもノーコードで汎用性が高い!)

    keiridx.net

     

  • 非公開GPTsにAPI連携を通じて、プロンプトを見せずに実行可能

  • キャラ別にGTPsを用意すれば、用途に応じて人格切り替えが可能

このような観点から、GPTsのAPI連携については非常~~~に期待しています。(あとできればVisionAPI連携してほしい……OpenAIさん、対応お願いします!🥺笑)


まとめ

ChatGPT本体とGPTsは「万能型と専門型」の関係です。 業務効率化を目指すなら、この違いを理解して目的ごとにうまく使い分けるのがコツです。

今後の進化にも期待しつつ、自分に合った使い方を見つけていきましょう。

▼関連記事

keiridx.net

▼ChatGPT活用なら書籍もおすすめ!

ChatGPT Plusに預金通帳を読ませて経理自動仕訳に挑戦してみた【AI×Excelで実務検証】高機能OCRが確定申告にも使える

はじめての生成AI ChatGPT「超」活用術

新品価格
¥1,940から
(2025/4/21 15:18時点)

▼ 役に立ったらブックマークお願いします!

ChatGPT Plusに預金通帳を読ませて経理自動仕訳に挑戦してみた【AI×Excelで実務検証】高機能OCRが確定申告にも使える

ChatGPT Plusに預金通帳を読ませて経理自動仕訳に挑戦してみた【AI×Excelで実務検証】高機能OCRが確定申告にも使える
人気ブログランキング

【初心者向け】Power Automateで土日祝を除いて営業日だけフローを実行する方法

【初心者向け】Power Automateで土日祝を除いて営業日だけフローを実行する方法

業務を自動化したいけれど、土日祝を除く営業日のみフローを動かしたいと考えたことはありませんか?
Power Automate(パワーオートメート)には便利な機能が揃っていますが、いざ土日祝を除く設定をしようとすると、検索結果には難しそうなフローばかりが並び、どれを参考にすればいいのかわからなくなってしまうことも多いですよね。

そこで今回は、初心者でもすぐにできる!超簡単な「土日祝を除外してフローを動かす方法」をご紹介します。


手順①:スケジュール実行で「土日を除く」設定をする

まず、土日の除外からスタートします。

  1. Power Automateで「+作成」→「スケジュール済みクラウドフロー」を選択。

    【初心者向け】Power Automateで土日祝を除いて営業日だけフローを実行する方法

  2. 「繰り返しの間隔」を「週間」に設定します。

  3. 曜日選択ができるので、月~金曜日のみにチェックを入れ、土日は除外しておきます。

    【初心者向け】Power Automateで土日祝を除いて営業日だけフローを実行する方法

これでまず、土日は動かない基本設定ができました!


手順②:現在の時刻を取得する

次に、祝日判定に必要な準備をします。

  1. スケジュールトリガー(Recurrence)の下にある「+」ボタンをクリックし、アクションを追加します。

    【初心者向け】Power Automateで土日祝を除いて営業日だけフローを実行する方法

  2. 「日時」カテゴリから「現在の時刻」を選びます。

    【初心者向け】Power Automateで土日祝を除いて営業日だけフローを実行する方法

これで、フロー実行時の正確な日時が取得できるようになりました。


手順③:空の配列を作っておく

次に、祝日判定のために使う「空の配列」を作ります。

  1. 「変数を初期化する」アクションを追加。

  2. 名前はわかりやすく「空配列」などにし、TypeをArray(配列)に設定。

  3. 値はそのまま空(入力なし)にして保存します。

    【初心者向け】Power Automateで土日祝を除いて営業日だけフローを実行する方法

これは後で、「祝日かどうか」を判定するときに使う大事な仕込みです!


手順④:「日本の祝日」カレンダーから祝日情報を取得する

いよいよ祝日判定に入ります。

  1. アクションで「イベントカレンダービューの取得(V3)」を追加。

  2. 「カレンダーID」には「日本の祝日」を選択。

  3. 開始時刻と終了時刻には、②で取得した現在の時刻(Current time)を設定します。

    • 「/」と入力すると出力される、「動的コンテンツを挿入する」をクリック→「Current time」を選びましょう。

      【初心者向け】Power Automateで土日祝を除いて営業日だけフローを実行する方法

      【初心者向け】Power Automateで土日祝を除いて営業日だけフローを実行する方法

これで、今日が祝日かどうかを自動的に判別できるようになります!

【初心者向け】Power Automateで土日祝を除いて営業日だけフローを実行する方法


手順⑤:祝日かどうか条件分岐を作る

最後に、実際に処理を分岐させましょう。

  1. 「条件」アクションを追加します。

  2. 条件には、先ほど取得した「イベントカレンダービューのBody/value」を設定。

  3. 比較対象に、③で作った「空の配列」を指定します。

    【初心者向け】Power Automateで土日祝を除いて営業日だけフローを実行する方法

判定結果は以下の通りです。

  • Body/value が空白 → 祝日ではない=処理を続行

  • Body/value に祝日名(例:昭和の日)が入っている → 祝日=処理しない

これで、土日だけでなく、祝日もちゃんと除外できるフローが完成しました!

▼全体フロー

【初心者向け】Power Automateで土日祝を除いて営業日だけフローを実行する方法


実際にテストしてみた!

この記事を執筆している本日(4月29日・昭和の日)に、実際にこのフローをテストしてみたところ…

  • Body/valueに「昭和の日」としっかり表示されました!

    【初心者向け】Power Automateで土日祝を除いて営業日だけフローを実行する方法

  • そして、フローは「祝日判定でSTOP」され、処理は行われませんでした!

実際に祝日除外が動いているのを見ると、かなり感動しますよ!


まとめ|Power Automateで土日祝を除外するのは簡単!

Power Automateで土日祝を除外する方法はいろいろ紹介されていますが、難しい式や複雑な設定をしなくても、今回ご紹介した方法で十分対応できます。

  • 土日除外はスケジュール設定だけ

  • 祝日判定は「日本の祝日」カレンダーでシンプルに

  • 条件分岐は空配列との比較だけ

初心者でもすぐにできるので、ぜひ一度試してみてください!

▼Power Automateを学ぶには書籍もおすすめ🌱

 初心者にもわかりやすいものを厳選してまとめています。

keiridx.net

▼関連記事

Power Automateで土日を自動判定し直前の平日に「前倒し処理」する方法 

keiridx.net

 

▼ 役に立ったらブックマークお願いします!

【初心者向け】Power Automateで土日祝を除いて営業日だけフローを実行する方法

【初心者向け】Power Automateで土日祝を除いて営業日だけフローを実行する方法
人気ブログランキング

音声で返してくれるAI秘書を作ってみたけど…実用性はどうなの?しゃべるアシスピーの実験レポート

音声で返してくれるAI秘書を作ってみたけど…実用性はどうなの?しゃべるアシスピーの実験レポート

朝、パソコンを立ち上げたら「おはようございます。今日は10時から会議、午後は曇りの予報です」としゃべってくれるAI秘書。
そんな未来、ちょっと便利そうじゃないですか?

今回はそんな妄想からはじまり、「しゃべるAI秘書(アシスピー)」を自作してみました。
果たして実用になるのか?どんな技術を使ってどう実装したのか?試してみた結果と感想をまとめます。

▼以前作成した毎朝の情報収集をAIが行ってくれる秘書アシスピーはこちら

keiridx.net


思いついたきっかけ:OK Googleみたいな秘書がほしい!

このアイデアの出発点は、「OK Google」や「Alexa」のような音声アシスタントが、もっとパーソナルな情報を話してくれたら便利かも?という妄想でした。

たとえば…

  • 手が離せない朝の時間帯に

  • 今日の予定や天気、ニュースを自動でしゃべってくれたら

  • スマホやカレンダーを見る手間が省けてラク

そう思ったのがきっかけで、「じゃあ、自分で作ってみよう」と思い立ったのです。


作った仕組み:GAS×ChatGPT×音声APIで構成

構成はざっくり以下の通りです。

  • Googleカレンダー、天気API、ニュースRSSから情報を取得(GAS)

  • ChatGPT APIで、朝のあいさつ&要約文を自動生成

  • OpenAIの音声API(TTS)で、mp3音声に変換

  • GASでmp3ファイルをGoogleドライブに保存 → HTMLから再生

たとえば「明日の予定教えて」とフォームから送信すると、
カレンダーの予定をChatGPTが自然な口調に整形し、音声で返してくれるという流れです。

音声入力は技術的にまだ厳しかったため、送信はテキスト、返信は音声というスタイルで対応しました。

▼テキストボックスに入力して送信

音声で返してくれるAI秘書を作ってみたけど…実用性はどうなの?しゃべるアシスピーの実験レポート


動かしてみた感想:正直、遅い&ぎこちない

実際に動かしてみると、まず感じたのがレスポンスの遅さです。

  • ChatGPTの生成に数秒

  • 音声変換に数秒

  • mp3保存&再生にさらに数秒

結果、ボタンを押してから再生まで10秒前後かかることもありました。
また、音声の日本語がカタコトで、「日本語がうまい外国人」感が出てしまうのも気になりました。

イメージしていた「ちょっと予定教えて!」「軽く雑談して!」というような会話的な使い方には、まだほど遠く、実用性としては厳しいかな、という印象でした。


改良版:ポチっと押すと延々しゃべるアシスピー!

そこで、思い切って方向転換。

「ユーザーから話しかける形式」ではなく、
「ボタンをポチするとAI秘書が勝手に朝の情報をしゃべってくれる」構成にしてみました。

実装のポイントは以下の通りです。

元のコードを少し調整し、(元のコードはこちら↓)

  • GASの sendMorningDigest()(メール送信用)を getMorningSpeech() に変更し、テキスト出力専用に

  • doGet() でフォーム(HTML)を表示し、GAS関数を実行可能に

  • ブラウザ側では SpeechSynthesis API を使って、mp3なしで即読み上げ

読み上げの流れは…

「おはようございます。今日は○○」→予定→タスク→天気→ニュース→主婦向けのひとことアドバイス

という、アシスピーによる“朝の読み上げラジオ”のような雰囲気になりました。

音声で返してくれるAI秘書を作ってみたけど…実用性はどうなの?しゃべるアシスピーの実験レポート


結果:これは“わりと良かった”…が、惜しい点も

この改良版、反応速度はかなり改善されました!
mp3ファイルを生成しないため、再生までの待ち時間が大幅に短縮されたのは大きなメリットです。

しかしながら、以下の点は引き続き課題でした。

  • ブラウザの読み上げがゆっくり実況っぽい(自然な会話感はまだ遠い)

  • モバイルでは再生されないことがある

  • 音声に感情がなく、あくまで「読み上げているだけ」感が残る


結論:AI秘書をしゃべらせる夢は、もう少し先

今回の「しゃべるアシスピー」実験は、自分としては一区切り。

ただ、試してみたからこそわかった可能性もあります。
たとえば…

  • スプレッドシートのレポートを読み上げる秘書

  • Gmailの未読メールを音声で確認できる機能

  • 高齢者や視覚に制限のある方への「読み上げ支援」用途

など、工夫しだいでまだまだ活用の余地はありそうです。

私は今回の構成では使わないかな…という感じですが、(このレベルの読み上げであれば今のところメールで十分)
こうしたAI秘書の試作を通して、「未来にちょっと近づいた」気がしました。

▼GASとChatGPTの連携でAI秘書を自作してみたい!という方は、こちらの書籍も参考になります

音声で返してくれるAI秘書を作ってみたけど…実用性はどうなの?しゃべるアシスピーの実験レポート

Google Apps Script × ChatGPTのツボとコツがゼッタイにわかる本

新品価格
¥1,960から
(2025/4/5 11:45時点)

▼ 役に立ったらブックマークお願いします!

音声で返してくれるAI秘書を作ってみたけど…実用性はどうなの?しゃべるアシスピーの実験レポート

音声で返してくれるAI秘書を作ってみたけど…実用性はどうなの?しゃべるアシスピーの実験レポート
人気ブログランキング

Power Automate DesktopでGoogleカレンダー情報を自動取得&条件分岐する方法

Power Automate DesktopでGoogleカレンダー情報を取得&条件分岐!在宅勤務か出社かを自動判断する方法|GoogleAppsScript(GAS)×PAD

業務自動化の第一歩として「Power Automate Desktop(PAD)」を使っている方も多いのではないでしょうか。

中でも「今日の予定に応じて処理を分けたい」というニーズは非常に多いです。

たとえば、在宅勤務の日はリモート用のアプリを起動、出社日はメールチェックや印刷処理をスタート……といった自動化ができたら、朝のひと手間がかなり楽になりますよね。

本記事では、Googleカレンダーの予定内容に応じてPADのフローを分岐させる方法をご紹介します。

PAD単体ではGoogleカレンダーと直接連携するのが難しいため、GAS(Google Apps Script)+スプレッドシートを中継する方法で実現します。


【STEP1】Googleカレンダースプレッドシートに出力する(GAS)

まずはGoogleカレンダーの予定情報をGoogleスプレッドシートに書き出します。以下の手順でGASを設定しましょう。

■手順

  1. Googleドライブを開く
     👉  https://drive.google.com/drive/home

  2. +新規 → Googleスプレッドシートを作成

  3. 拡張機能」→「Apps Script」を開く

  4. 以下のコードを貼り付けて保存・実行

function exportCalendarToSheet() {
  const calendarId = 'primary'; // もしくは特定のカレンダーID(例: example@gmail.com
  const calendar = CalendarApp.getCalendarById(calendarId);

  const startDate = new Date(); // 今日
  const endDate = new Date();
  endDate.setMonth(endDate.getMonth() + 1); // 1ヶ月後まで

  const events = calendar.getEvents(startDate, endDate);

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.clear(); // 古い内容を削除
  sheet.appendRow(['タイトル', '開始日時', '終了日時', '場所', '説明']);

  events.forEach(event => {
    sheet.appendRow([
      event.getTitle(),
      event.getStartTime(),
      event.getEndTime(),
      event.getLocation(),
      event.getDescription()
    ]);
  });
}
 
※毎日自動更新したい場合は「トリガー」から時間ベースの定期実行設定がおすすめです。
GASの導入方法

keiridx.net

 ▼このようなGoogleカレンダーの予定情報がスプレッドシートに記録されます。

Power Automate DesktopでGoogleカレンダー情報を取得&条件分岐!在宅勤務か出社かを自動判断する方法|GoogleAppsScript(GAS)×PAD

Power Automate DesktopでGoogleカレンダー情報を取得&条件分岐!在宅勤務か出社かを自動判断する方法|GoogleAppsScript(GAS)×PAD

【STEP2】Power Automate Desktopでスプレッドシートからデータを取得

次に、PAD側でスプレッドシートの情報を読み取り、内容に応じた分岐処理を作成します。

■処理フロー概要

  1. Chromeスプレッドシートを開く

    Power Automate DesktopでGoogleカレンダー情報を取得&条件分岐!在宅勤務か出社かを自動判断する方法|GoogleAppsScript(GAS)×PAD

  2. ウィンドウにフォーカス→全選択&コピー

    Power Automate DesktopでGoogleカレンダー情報を取得&条件分岐!在宅勤務か出社かを自動判断する方法|GoogleAppsScript(GAS)×PAD

  3. Excelを起動し、貼り付け→全データを読み取り

    Power Automate DesktopでGoogleカレンダー情報を取得&条件分岐!在宅勤務か出社かを自動判断する方法|GoogleAppsScript(GAS)×PAD

  4. 現在日時を取得し、テキスト形式に変換

    Power Automate DesktopでGoogleカレンダー情報を取得&条件分岐!在宅勤務か出社かを自動判断する方法|GoogleAppsScript(GAS)×PAD

  5. Excelデータをループし、日付と一致する行を探す

    Power Automate DesktopでGoogleカレンダー情報を取得&条件分岐!在宅勤務か出社かを自動判断する方法|GoogleAppsScript(GAS)×PAD

  6. 「タイトル」や「場所」に応じて在宅勤務/出社を判定

    Power Automate DesktopでGoogleカレンダー情報を取得&条件分岐!在宅勤務か出社かを自動判断する方法|GoogleAppsScript(GAS)×PAD

  7. 分岐ごとに任意のアクション(アプリ起動・通知など)を実行

この流れで「今日の予定」に合わせたフロー分岐が可能になります。

▼全体フロー

Power Automate DesktopでGoogleカレンダー情報を取得&条件分岐!在宅勤務か出社かを自動判断する方法|GoogleAppsScript(GAS)×PAD

Power Automate DesktopでGoogleカレンダー情報を取得&条件分岐!在宅勤務か出社かを自動判断する方法|GoogleAppsScript(GAS)×PAD

※メッセージボックスのアクションが入っているところにお好きなアクションを追加してください。


【応用編】祝日や年間スケジュールにも対応!

この方法を応用すれば、Googleカレンダーに登録している祝日や会社の年間休日カレンダーを元に、休業日かどうかを自動判定することもできます。

予定の読み上げやSlack通知と組み合わせれば、AI秘書のような仕組みにも発展可能です。

▼Power Automate Desktopを使ってニュースを音声読み上げ

keiridx.net


おわりに

Power Automate DesktopとGoogleカレンダーは直接連携しにくいものの、GAS+スプレッドシートを活用することで柔軟な自動化が実現できます。
「今日は何の予定だったっけ?」と毎朝確認する手間も省けて、生産性もグッとアップ!ぜひ一度試してみてくださいね。

▼月末や月初の日付を取得して別の処理をしたい方はこちら

keiridx.net

▼Power Automate Desktopをより深く学びたい方は書籍の活用もおすすめです。

keiridx.net

▼この記事が役に立ったらブックマークをお願いします

 Power Automate Desktopで曜日・特定日付・時間ごとに異なるフローを実行する方法

Power Automate Desktopで曜日・特定日付・時間ごとに異なるフローを実行する方法
人気ブログランキング

AI活用は効率化?それとも手抜き?感情と伝わる文章の境界線を考える

AI活用は効率化?それとも手抜き?感情と伝わる文章の境界線を考える

最近よく見かける議論のひとつに「AIで作成された資料や文章は手抜きでは?」という声があります。

大学ではAIの使用が禁止されている例も多く、特にAI生成のレポートをそのまま提出するのはNGとされています。

企業でも、AIで作ったことを隠すような“バレない工夫”がされていることもあります。

では、AIを使うのは本当に“サボり”なのでしょうか?

今回は、筆者の視点から「AIと効率化」「手抜きの境界線」について考えてみます。


結論:私は“サボり”だとは思いません

筆者個人としては、AIの活用は“サボり”ではなく、効率化の手段のひとつだと考えています。
なぜなら、AIを使うかどうかに関わらず、文章の出発点には必ず「伝えたいこと」があるからです。

当ブログでも、記事の執筆にAIを活用していますが、これはあくまで「伝えたい中身を、どうすればより伝わりやすくなるか?」という観点から使っているものであり、AIの出力をそのまま使っているわけではありません。

そもそも当ブログの目的は、
なるべく低コストで業務を効率化するお手伝いをしたい
DXを使えばこんなに便利になる!
便利なツールを活用することで、より人間らしい仕事に集中できるようになってほしい
という想いを伝えたいというところから運営しています。

そのため、ライティングそのものへのこだわりは強くありません。
ただし、「伝える」ための工夫はもちろん大切にしており、文章の構成や表現の見直し、画像や見出しの配置、他の記事との関連づけなど、本当に力を注ぎたい部分に時間を割くための工夫をしています。


AIを使っても“中身のない文章”は伝わらない

どれだけ滑らかで読みやすくても、AIが書いた文章に「伝えたい熱量」が乗っていなければ、読み手には届きません。

筆者もたまにSNSやブログなどで「きれいだけど、なんか薄い…」と感じる記事に出会うことがあります。情報としては正しくても、気持ちが見えてこない文章は、読んでいても残らないのです。

これは、「感情を伝える場面」で特に顕著です。

たとえば、夫婦喧嘩のあとにAIに謝罪文を作ってもらったとしたら……

どれだけ完璧な敬語で、言葉遣いが丁寧でも、相手が「本当に反省してるの?」と感じてしまえば意味がありません。

むしろ、「うまく言えないけど…」と自分の言葉で絞り出した文章の方が、ずっと伝わるのではないでしょうか。

人が求めているのは、上手な言葉よりも、“あなたの気持ち”なのです。


「読み手を意識して使っている」時点で、真剣さはある

AIを使う=ラクしてる、というイメージも根強いですが、 実際にAIを使っている人の多くは、相手に伝わりやすくするために使っています。

  • メールの文章を整える

  • SNSの投稿前に表現をチェックする

  • 提案書の要点をまとめ直す

これらはどれも、「相手にとって読みやすく、気持ちよく伝えるにはどうすればいいか?」という視点があるからこその使い方です。

言いかえれば、AIを使っている時点で、受け取る相手の立場や感情など、“人の目”を前提にしている=手抜きではないのです。


学業と業務で目的が違うからこそ、判断も変わる

学生のレポートや論文などでは、「文章や構成を自力で考えること」自体が学習の目的となります。そこにAIが介入するのは目的にそぐわないため、使用を制限されるのは自然な流れでしょう。

ただし、ビジネスや日常の場面では、「何を伝えるか」が重要になる場面がほとんどです。

伝えたい内容が明確で、その内容を効率よく、読み手にとってわかりやすく届けるためにAIを使うのは、決して手抜きではないと思います。


AI漫画家は手抜きなのか?

絵を描くことが好きな人にとって、「AIに描かせるなんて手抜き」と思う気持ちはとてもよくわかります。

こちとら魂込めて一本一本、線を引いとるんじゃ!と思うのも当然でしょう。

でも一方で、

「頭の中に素晴らしい物語とキャラクターがいる。でも絵が描けない」

という人にとって、AIは夢を形にする最高のパートナーになります。

AIを使うから手を抜いている、のではなく、別の手法で“届けたいもの”を実現しているだけなのかもしれません。


まとめ:AIは、余白を作るための道具

AIを使うことは、決して「手抜き」ではなく、 「大事なところに集中するための効率化」だと私は思います。

もちろん、すべての場面でAIが有効というわけではなく、 人間だからこそ伝わる言葉、人間の感情だからこそ届く表現もたくさんあります。

大切なのは、「何を、誰に、どう伝えたいのか?」という気持ちです。

その目的に対して、AIが本当に役に立つなら、堂々と使っていい。

そして筆者は、伝えたい熱量があるなら、ちゃんと“伝わる”文章になると信じています。

▼それでもAI文章バレが気になる…という方には、逆GPTチェッカーもおすすめ

keiridx.net

▼関連記事

keiridx.net

▼ChatGPT活用なら書籍もおすすめ!

AI活用は効率化?それとも手抜き?感情と伝わる文章の境界線を考える

はじめての生成AI ChatGPT「超」活用術

新品価格
¥1,940から
(2025/4/21 15:18時点)

▼ 役に立ったらブックマークお願いします!

AI活用は効率化?それとも手抜き?感情と伝わる文章の境界線を考える

AI活用は効率化?それとも手抜き?感情と伝わる文章の境界線を考える
人気ブログランキング

Power Automateで土日を自動判定し直前の平日に「前倒し処理」する方法【初心者OK】

Power Automateで土日を自動判定し直前の平日に「前倒し」または「後倒し」する方法【初心者OK】

Power Automateを活用して「土日には作業しない」ように設定するのは比較的かんたんですが、実務では「毎月5日の振込処理や支払処理」が土日と重なったときに、自動で3日または4日に前倒し実行したいといったニーズも多いのではないでしょうか。

特に振込や支払い処理のような日付が固定された業務では、5日が休日の場合、事前に処理しておく必要があります。

今回は、そんな現場で役立つ「Power Automateクラウド版で、土日の場合に処理を前倒しする方法」をご紹介します。


🔰前提:このフローでやりたいこと

  • 毎日フローを実行

  • 5日が土日だったら → 3日 or 4日の平日に実行

  • 5日が平日だったら → 5日に実行

  • それ以外の日は何もしない


📝実装ステップ詳細

1. スケジュール済みクラウドフローを作成

  1. Power Automateクラウドフローを開き、「作成」→「スケジュール済みクラウドフロー」を選択

    Power Automateで土日を自動判定し直前の平日に「前倒し」または「後倒し」する方法【初心者OK】

  2. フロー名を入力し、繰り返し間隔「1日」に設定して作成

    Power Automateで土日を自動判定し直前の平日に「前倒し」または「後倒し」する方法【初心者OK】

    Power Automateで土日を自動判定し直前の平日に「前倒し」または「後倒し」する方法【初心者OK】

    +からアクションを追加していきます。

    Power Automateで土日を自動判定し直前の平日に「前倒し」または「後倒し」する方法【初心者OK】

2. 5日が何曜日かを取得

  1. アクション「変数の初期化」を追加

    Power Automateで土日を自動判定し直前の平日に「前倒し」または「後倒し」する方法【初心者OK】

     - Name:weekdayOf5th
     - Type:Integer

  2. アクション「変数の設定」を追加し、以下の式を入力:

dayOfWeek(concat(formatDateTime(utcNow(), 'yyyy-MM'), '-5'))

Power Automateで土日を自動判定し直前の平日に「前倒し」または「後倒し」する方法【初心者OK】

Value欄で「/」と入力すると式の入力ができるようになります。

(fxボタンを押して式モードに切り替えることができるのでそこで入力してもOKです)

これで「今月の5日が何曜日か」を取得できます。


3. 今日の日付と曜日を取得

  1. 変数todayDayを初期化(型はInteger)し、以下の式で設定:

int(formatDateTime(utcNow(), 'dd'))
これで、今日の日付(日のみ)を取得しています。
  1. 変数todayWeekdayを初期化(型はInteger)し、以下の式で設定:

dayOfWeek(utcNow())
これで、今日が何曜日かを取得しています。

4. 条件分岐の構築

A. 5日が土日だった場合の前倒し処理

条件アクションを追加し、以下のOR条件を設定:

Power Automateで土日を自動判定し直前の平日に「前倒し」または「後倒し」する方法【初心者OK】

もし、5日が土日だったら、前倒しの処理を行いたいので、5日が土日かどうかを判定します。

曜日の数値は以下の通りです:

曜日 数値
日曜日 0
月曜日 1
火曜日 2
水曜日 3
木曜日 4
金曜日 5
土曜日 6

つまり、5日が「0(日曜)」または「6(土曜)」だったら土日ということです。

OR
weekdayOf5th is equal to 0
weekdayOf5th is equal to 6

この条件が真(True)だった場合、さらに今日が「3日 or 4日」で、かつ「平日」だったら前倒しで処理を実行します。

Power Automateで土日を自動判定し直前の平日に「前倒し」または「後倒し」する方法【初心者OK】

 
AND
  OR
    todayDay == 3
    todayDay == 4
  OR
    todayWeekday == 1
    todayWeekday == 2
    todayWeekday == 3
    todayWeekday == 4
    todayWeekday == 5

→ Trueなら、前倒しでアクション(例:メール送信)を実行


B. 5日が平日だった場合の通常処理

「5日が土日だったら」のFalse側に条件を追加:

Power Automateで土日を自動判定し直前の平日に「前倒し」または「後倒し」する方法【初心者OK】

todayDay == 5

→ これが真(True)なら、通常通り5日にアクションを実行

▼全体フロー

Power Automateで土日を自動判定し直前の平日に「前倒し」または「後倒し」する方法【初心者OK】

Power Automateで土日を自動判定し直前の平日に「前倒し」または「後倒し」する方法【初心者OK】


✅ 実行パターンの整理

状況 実行日 処理
5日が土日 3日または4日(平日) 前倒しで実行
5日が平日 5日 通常実行
その他の日 - 実行しない

📝注意点:祝日は別対応が必要

今回の方法では「土日判定」はできますが、祝日は含まれていません。祝日対応を行うには、祝日カレンダー(たとえばGoogleカレンダーSharePointリスト等)と連携し、追加の条件判定が必要になります。

今後は祝日判定を含めたフローもご紹介予定ですので、続報をお待ちください!


🔚まとめ

Power Automateクラウド版で「土日だったら前倒しで実行する」フローは、条件式をうまく使うことで意外とシンプルに構築できます。日次で実行されるように設定すれば、振込処理やルーチン業務の自動化にも大活躍します。

日付ロジックに関するフロー設計は少し複雑ですが、一度組んでしまえば再利用もしやすくなりますので、ぜひ試してみてくださいね!

▼Power Automateを学ぶには書籍もおすすめ🌱

 初心者にもわかりやすいものを厳選してまとめています。

keiridx.net

▼土日祝を除く営業日だけフローを実行したい方はこちら

keiridx.net

▼One Driveのファイルを添付しメール送信

keiridx.net

▼ 役に立ったらブックマークお願いします!

Power Automateで土日を自動判定し直前の平日に「前倒し」または「後倒し」する方法【初心者OK】

Power Automateで土日を自動判定し直前の平日に「前倒し」または「後倒し」する方法【初心者OK】
人気ブログランキング