
📺 この記事は、YouTube動画「Excel × GAS × Dify で作る!目標設定 AI コーチ 構築手順」と合わせてご覧いただくと、より理解しやすくなります。
画面操作の手順など、文章では伝わりにくい部分は動画で補足していますので、ぜひあわせてご活用ください。
▶ [動画はこちら]
人事・総務の担当者の方、こんな悩みはありませんか?
「目標設定のシートを配っても、書き方がバラバラで品質が揃わない」
「社員一人ひとりに丁寧にフィードバックしたいけど、人数が多くて時間が足りない」
そんな課題を、AIが対話しながら自動でサポートしてくれる仕組みを、この記事ではゼロから解説します。プログラミングの知識がなくても大丈夫です。順番に一緒に進めていきましょう。
この記事でできるようになること
Excelのボタンをクリックするだけで、AIコーチが起動します。
「あなたの職種・等級と、今期の担当業務を教えてください」とAIが話しかけ、対話を重ねながら目標を一緒にブラッシュアップし、最終的に目標管理シートへ自動で書き込んでくれる――そんな仕組みを構築します。
- 目標の書き方が統一され、レベルも揃う
- 目標が明確になり、達成率の向上につながる
- 何日もかかっていた目標設定の作業が、対話だけでスムーズに完了する
社員の負担も、上長の修正作業も、人事担当者の確認工数も、大幅に削減できます。
システムの全体構成

このシステムは、3つのレイヤーで構成されています。
| レイヤー | 役割 | 使用ツール |
|---|---|---|
| ① AIの頭脳 | 社内ルールを学習し、対話形式で目標設定を支援する | Dify |
| ② 安全な中継地点 | ExcelとDifyの間でAPIキーを隠して通信を仲介する | Google Apps Script(GAS) |
| ③ ユーザーインターフェース | 社員が実際に操作する画面 | Excel VBA |
それぞれの役割を、もう少し具体的に見ていきましょう。
第1章:Difyの設定(AIの頭脳を作る)

Difyとは
Dify は、プログラミングの知識がなくてもAIアプリを作れるノーコードサービスです。今回は無料プランで構築できます。
アカウントをお持ちでない方は、Difyのサイトから「Get Started」を選び、メールアドレスで登録してください。
RAG(ラグ)という考え方

ナレッジの設定に入る前に、一つ大事な概念を説明します。「RAG(Retrieval-Augmented Generation)」という考え方です。
少し難しい言葉ですが、仕組みはとてもシンプルです。
たとえば、新入社員が入ってきたとします。どんなに優秀な社員でも、会社独自のルールや制度は最初から知りません。そこで、業務マニュアルを渡して「これを読んで仕事してね」と伝えますよね。
RAGはまさにこれと同じです。AIは最初から会社の評価制度や目標設定のルールを知りません。そこで「社内ルールが書かれた資料」をAIに渡して、「これを参考に回答してね」と指示するのがRAGの考え方です。
Difyでは、この「渡す資料」のことを「ナレッジ」と呼びます。
必要な4つのナレッジ

今回の目標設定AIコーチには、以下の4つのナレッジを用意します。全文は記事末尾の配布ファイル一覧から取得できます。
ナレッジ① 制度・ルールナレッジ
評価サイクル・スケジュール、目標数とウェイト配分ルール、5段階評価スケールの定義と分布ガイドライン、禁止事項、AIへの動作指示を収録。
特に重要なのがウェイト基準表です。ウェイトは「目標の難易度」と「等級(役職)」の両方で決まる、という考え方を採用しています。
部長と係長が同じ目標を掲げた場合、難易度は同じであっても等級が異なるため、係長のほうがウェイトは高くなります。部長がその目標で高いウェイトを得るためには、部長の役割等級基準に見合った、より高い水準の目標にチャレンジする必要があります。
これにより、「同じ目標でも、より高い等級の人ほど高いウェイトを得るには、より高いレベルの目標が求められる」という、役割等級に応じた公平な評価設計が可能になります。
ナレッジ② 目標品質基準ナレッジ
SMARTの原則(自社解釈版)、目標文の構造テンプレート、良い目標・悪い目標の比較例、NGパターン集と修正指針、10項目の品質チェックリストを収録。
AIがこのナレッジを参照することで、単に目標を書くだけでなく「質の高い目標かどうか」を判定し、改善提案を行えるようになります。
ナレッジ③ 職種・等級別ナレッジ
G1〜M3の等級体系と期待役割定義、営業・開発・管理部門・マーケティングの等級別目標例集、管理職の特別ルール(チーム目標・育成目標の必須要件)を収録。
社員の等級・職種に応じて、適切な水準の目標例を提示できるようになります。
ナレッジ④ 会社戦略・方針ナレッジ
中期経営計画・年度スローガン、全社4テーマの重点施策、部門別施策と個人目標への反映例、経営キーワード(DX・LTV・心理的安全性など)を収録。
これにより、個人の目標が会社の方向性と整合しているかをAIが確認できるようになります。
ナレッジ登録の手順
- Difyにログインし、上部の「ナレッジ」タブをクリック
- 「知識を作成」をクリックし、4つのファイルをアップロード
- 検索設定は必ず「高品質(High Quality)」+「ハイブリッド検索(Hybrid Search)」を選択
⚠️ つまずきポイント:検索設定はデフォルトのままだと精度が落ちます。「高品質」と「ハイブリッド検索」の2つを必ず選んでください。これだけで回答の精度が大きく向上します。
チャンク分けについて
Difyはナレッジを登録するとき、文書をいくつかの「塊(チャンク)」に分割して保管します。ユーザーが質問すると、その質問に関係しそうなチャンクだけを取り出してAIに渡す、という仕組みになっています。
このチャンクの分け方が適切でないと、必要な情報がうまく取り出せず、AIが的外れな回答をしてしまいます。
今回のナレッジはMarkdownの見出し(H2)単位で内容が整理されているため、Difyの「自動」設定でも適切にチャンク分割されます。もし回答の精度に違和感がある場合は、チャンク設定を見直してみてください。
チャットフローの作成
「スタジオ」タブから「チャットフロー」を新規作成し、以下の順にノードをつないでいきます。
| ステップ | ノード | 設定内容 |
|---|---|---|
| ① | 開始ノード | 入力変数 を割り当て |
| ② | 知識検索ノード | ①で作成した4つのナレッジを割り当て |
| ③ | LLMノード | コンテキストに知識検索ノードの出力を割り当て、システムプロンプトを貼り付け |
| ④ | 回答ノード | LLMノードの出力(text)を割り当て |
ナレッジとシステムプロンプトの関係

このシステムの山場とも言えるのが、ナレッジとシステムプロンプトの2つです。
新入社員にたとえると、ナレッジは「業務マニュアル・規定集」=「何を知っているか」、システムプロンプトは「上司からの指示書」=「どう動くか」にあたります。
マニュアルだけ渡しても、人は動けません。「あなたの役割はこうです。こういう順番で進めてください。ゴールはこれです」という指示があって、はじめて動けます。この2つが揃って、はじめてAIコーチが完成します。
システムプロンプト
プロンプトを、LLMノードのSYSTEM欄に貼り付けてください。システムプロンプトは記事末尾の配布ファイル一覧から取得できます。
公開とAPIキーの取得
チャットフローが完成したら、右上の「公開する」をクリックし、「APIリファレンス」から APIキー と エンドポイントURL をメモしておきます。次の章で使用します。
第2章:GASの設定(安全な中継地点)
なぜGASが必要なのか

少し寄り道して、なぜGASが必要なのかを説明します。
Excelファイルは、社内で複数の人が使ったり、メールで送ったりしますよね。もしExcelの中にAPIキーを直接書いてしまうと、ファイルを受け取った人が中身を見て、キーを悪用してしまう可能性があります。
しかも、Excelシートは例えば従業員が100人いれば100人に配布することになります。VBAのマクロコードは、Excelを開いた人なら誰でも見ることができるため、APIキーを直接書き込んでしまうと、100人にAPIキーをばらまくことになってしまうのです。
そこで、APIキーを「Google Apps Script(GAS)」というGoogleのサービスの中に隠します。Excelは「GASのURL」だけを持てばよくなるので、GASを挟むことでAPIキーを1か所に集約して管理でき、何人に配布しても漏洩リスクはゼロになります。
GASプロジェクトの作成
- Googleドライブを開く
- 「+新規」→「その他」→「Google Apps Script」をクリック
- プロジェクト名をわかりやすい名前に変更(例:「Dify中継」)
コードの貼り付け
エディタにデフォルトで書かれているコードをすべて削除し、以下のコードを貼り付けます。GASコードは記事末尾の配布ファイル一覧から取得できます。
コード内にある
「●●●●●●●●●●●●●●●●●●●」の箇所に第1章の最後にメモした、DifyのAPIキーを入力
「▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼」の箇所に、DifyURLを入力してください。
デプロイ(Webアプリとして公開)
- 右上の「デプロイ」→「新しいデプロイ」をクリック
- 種類の選択(歯車マーク)で「ウェブアプリ」を選択
- 「実行するユーザー」を自分、「アクセスできるユーザー」を全員にしてデプロイ
- 表示されたウェブアプリのURLをメモする(これがExcelの通信先になります)
⚠️ つまずきポイント:コードを修正した場合は、必ず「新しいデプロイ」を選び直すか、デプロイの「編集」から「新バージョン」を選んでください。上書き保存だけでは変更が反映されません。
第3章:Excel VBAの設定(ユーザーインターフェース)

なぜExcelと連携するのか
ここまでで目標設定支援AIは完成しました。しかし、このアプリを公開しただけでは、従業員に使ってもらえない可能性があります。
AIだけを公開した場合、わざわざ別のアプリを開く手間がかかり、結果を自分でシートにコピーする必要があり、「面倒くさい」と感じて使われなくなってしまいます。
そこで、実際の目標設定に使われているExcelシートからAIを呼び出し、結果を直接シートに書き込むことで、従業員が普段使いのExcelのボタンを押すだけでAIコーチを利用できる環境を作ります。これが、Excel連携の最大のねらいです。
事前準備(ライブラリの導入)
- Excelで「開発」タブ→「Visual Basic」を開く
- メニュー「ツール」→「参照設定」を開き、以下2つにチェックを入れる
- VBA-JSONのGitHubから
JsonConverter.basをダウンロードし、「ファイル」→「ファイルのインポート」で読み込む
1.標準モジュール(通信と書き込みロジック)
「挿入」→「標準モジュール」でModule1を作成し、module1.basを貼り付けます。module1.basは記事末尾の配布ファイル一覧から取得できます。
コード内にある「URL」 の部分は、第2章の最後にデプロイで取得したGASのウェブアプリURLに書き換えてください。
2.ユーザーフォーム(UI)の作成
- 「挿入」→「ユーザーフォーム」でユーザーフォームを作成
- 以下のコントロールを配置
| オブジェクト名 | 用途 | プロパティ |
|---|---|---|
txtQuestion | AIの回答欄 | - |
txtAnswer | ユーザーの入力欄 | - |
btnNext | 送信ボタン | caption=送信 |
btnRetry | 再送信ボタン | caption=再送信 |
btnReset | リセットボタン | caption=リセット |
btnCancel | キャンセルボタン | caption=キャンセル |
フォームのコード画面にuserform.frmを貼り付けます。userform.frmは記事末尾の配布ファイル一覧から取得できます。
3.目標設定シートレイアウト作成と起動ボタンの設定
まずは、シートを2つ作り、シート名を「目標管理シート」と「設定」に変更します。
目標設定シートのレイアウトを作成します。今回はAIからシートに直接データを飛ばすので、次の通り作ってください。

標準モジュールに起動用マクロを追加し、シートのボタンに登録すれば完成です。
シートの「開発」→「挿入」→「ボタン(フォームコントロール)」でボタンを配置し、StartForm を登録してください。
うまく動かないときの対処法
思うように動かないときは、次の順番で試してください。
- プロンプトを修正する:動きがおかしいときの原因の大半はここにあります。「2つ質問してくる」「途中でJSONが出る」といった症状はプロンプトで直せることがほとんどです。
- ナレッジを見直す:回答の内容がズレているときは、ナレッジに必要な情報が不足しているか、ノイズが混ざっているケースが多いです。
- LLMを変える:同じプロンプトでも使用するモデルによって精度や日本語の自然さが変わります。Claude、GPT-4o、Geminiなどを試してみてください。
利用規模の目安と制限について

このシステムを職場で運用する前に、GASとDifyの使用制限を把握しておきましょう。
1.GASの制限
GASの無料版(Gmailアカウント)は、1日の合計実行時間が90分までという制限があります。今回のシステムでは、1人が4つの目標を設定するのに約15分かかる計算なので、無料版では1日6人までが目安です。Google Workspaceに切り替えると上限が6時間(360分)に拡大され、1日24人まで対応できます。
2.Difyの制限
Difyの無料プラン(Sandbox)には、初回限り200クレジットが付与されます。1人あたり約60クレジット消費するため、そのままでは3人分しか使えません。ただし、自社のAPIキー(ClaudeやGPT-4oなど)をDifyに登録すると話が変わります。自社APIキーを使う場合はDifyのクレジットを消費しないため、無料プランでも月5,000回のAPIリクエストが使え、83人分/月まで対応できます。有料のProプランに切り替えると、自社APIキーとの組み合わせで制限がなくなります。
3.構成の選び方
まず試してみたいだけなら、GAS無料+Dify Sandbox(無料)の組み合わせで始められます。ただし3人分で終わるため、実質的なスタートラインはGAS無料+Dify Sandbox+自社APIキーの構成です。この場合のボトルネックはGASの1日90分制限で、6人/日が上限になります。本番運用を見据えるなら、Google Workspaceへの切り替えが最初の一手です。GWS+Dify Pro+自社APIキーの構成で、1日24人まで安定して対応できます。1日24人まで対応できれば、100人から200人規模の会社であれば対応できると思います。逆にそれ以上の規模になるとこの構成では厳しく、Next.js や Supabase を使った本格的なバックエンド構成が必要になります。
配布ファイル一覧(GitHub)
このシステムの構築に必要なファイル一式を、GitHubリポジトリで無料公開しています。
🔗 GitHubリポジトリ:[**こちらから取得**]
| ファイル | 内容 |
|---|---|
knowledge_01_制度ルールナレッジ.txt | 制度・ルールナレッジ |
knowledge_02_目標品質基準ナレッジ.txt | 目標品質基準ナレッジ |
knowledge_03_職種等級別ナレッジ.txt | 職種・等級別ナレッジ |
knowledge_04_会社戦略方針ナレッジ.txt | 会社戦略・方針ナレッジ |
system_prompt.txt | Dify LLMノード用システムプロンプト全文 |
gas_code.gs | GAS中継コード全文 |
module1.bas | VBA標準モジュール全文 |
userform.frm | VBAユーザーフォームコード全文 |
あわせて読みたい解説動画
この記事の内容は、YouTube動画でも画面操作付きで解説しています。文章だけではわかりにくい操作手順は、動画もあわせてご覧ください。
まとめ
- 第1章:Difyでナレッジを登録し、AIの頭脳を作る
- 第2章:GASでAPIキーを安全に隠す中継役を作る
- 第3章:ExcelのフォームとボタンをつないでUIを完成させる
3つのレイヤーを組み合わせることで、専門知識がなくても、社内のExcelから直接AIコーチを呼び出せる仕組みが作れます。ぜひ実際に手を動かして構築してみてください。
質問や不具合があれば、コメント欄やお問い合わせフォームからお気軽にどうぞ。


