LoginSignup
5
1
100万人に伝えたい!失敗を乗り超えた話を共有しよう

組み分け帽子のような一瞬でチーム分けができる機能が欲しい!!ChatGPTにチーム分けのマクロのコードを考えてもらった

Last updated at Posted at 2023-08-16

皆さん、こんにちは。
私は小売業の人事部で働いています。

先日話題のChatGPTを学ぶ機会がありました。
色々と会話をして楽しむツールだと思っていたのですが、自分一人ではできないプログラミングのコードなども作成してくれることを知りました。

そこで日々の業務で楽にできないかな~と思ってる業務をお手伝いしてもらいました。

従業員同士の会話を生みたい

私の会社はテレワークを推奨しており従業員の7割が自宅で業務をしています。
出社していればなんてことない雑談をする機会もありますが、1日誰とも会話をせずに終わるという声も聞きます。
個人的な意見としては、たまにはテレワークも良いですが同じ状態が1か月続くと寂しいなぁと思います。
特に転職したての方は会社のことも分からないので孤立してしまいがちです。

従業員が生き生きと働ける環境を整えるのが人事部のミッションです。
一時だけでも業務から離れ、従業員同士が会話をできるミーティングを開催しようということになりました。

地味に大変なチーム分け作業

参加者を募り開催日時を設定しますが、意外と時間のかかる作業が参加者のチーム分けです。

「あれ、この人とこの人は同じ部署だ」
「前回も同じ組み合わせだった気がする」
「チーム分けの優先順位ってなんだ?」と作業するうちにプチパニックです。

そこで、まずはChatGPTにグループ分けに必要な概念を聞いてみました。

image.png

なるほど、なるほど。
スキルや専門知識が乖離しすぎず、メンバー同士の相性やコミュニケーションのとりやすさを考慮してチームを組む必要があるわけですね。

それではここからはChatGPTに手伝ってもらいVBAを作成してみます。

使用ツール

ChatGPT
Excel

やりたかったこと

ミーティングの参加申し込みは、MicrosoftのFormsを利用します。
話したいテーマを決め、参加できる日時を選択するスタイルです。
今回は「①住まいについて(賃貸・購入/マンション・戸建て)こだわりポイントなど」
「②夏休みの過ごし方」「③夏バテ予防」の3テーマでした。

申し込み画面
image.png

アンケートの集計データを抽出するとこんな感じです。
image.png

作成したもの

ChatGPTへのお願い文章(プロンプト)

ChatGPTにお願いしてみました。

image.png

このときChatGPTに基本データとなるExcelの状態を描写するとうまく理解してくれました。
(社員名簿のデータであることを伝えたり、項目名や数を伝えると学習してくれます)

ChatGPTが作ってくれたVBAのコード

Sub CopyData()
    Dim srcSheet As Worksheet
    Dim destSheet As Worksheet
    Dim srcLastRow As Long
    Dim destLastRow As Long
    Dim i As Long

    ' ソースシートとデスティネーション(コピー先)シートを設定
    Set srcSheet = ThisWorkbook.Sheets("Sheet1") ' Sheet1 を適切なシート名に変更する必要があります
    Set destSheet = ThisWorkbook.Sheets.Add ' 新しいシートを作成します

    srcLastRow = srcSheet.Cells(srcSheet.Rows.Count, "A").End(xlUp).Row

    destLastRow = 1 ' コピー先の行番号を初期化

    ' 項目行をコピー
    srcSheet.Rows(1).Copy Destination:=destSheet.Cells(1, 1)
    destLastRow = destLastRow + 1

    ' データをコピーしていく
    For i = 2 To srcLastRow ' 2行目から開始(1行目はヘッダー)
        If srcSheet.Cells(i, 6).Value <> "不参加" Then ' F列の値が「不参加」でない場合にコピー
            srcSheet.Rows(i).Copy Destination:=destSheet.Cells(destLastRow, 1)
            destLastRow = destLastRow + 1 ' コピー先行番号を更新
        End If
    Next i
End Sub

データ上のノイズになる不参加という言葉を取り除くVBAを作成してもらいました。

ちなみにVBAをどのように起動させるかもChatGPTが教えてくれました!
image.png

今回できなかったこと

今回の目的はチームの組み分けを行うVBAを作成することです。
上記のノイズ(データ上の不要要素)を取り除くところまでは順調でしたが、
肝心のチーム分けをお願いすると、予想とは違うデータが作成されてしまいました。
エラーの内容について質問して、再度作成してくれたVBAを試しても上手くいかない・・・。

image.png

最終的にはプロフェッショナルな開発者に相談することをおすすめされてしまいました。
ここまで頑張ってくれたのに、力を発揮させてあげられなかったことに胸が痛みます・・・。
image.png

まとめ

今回は、データの加工の過程で不要要素を取り除くコードは作成できましたが、本来の目的であるチーム分けまではたどり着くことができませんでした。
どのような文章を入力すると的確な動きをしてくれやすいのかが掴みきれなかったことが原因だと思います。
今後は指示する言葉の語彙やパターンを増やしたいと思います。

しかし、希望する内容を文章で理解してくれて、瞬時にコードに落とし込んでくれるChatGPTは文系の強い味方ですね!
使い方さえ覚えればもっと精度が高まると思います。
もっとChatGPTと仲良くなるために研究を続けます。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1