皆さん、こんにちは。
私は小売業の人事部で働いています。
先日話題のChatGPTを学ぶ機会がありました。
色々と会話をして楽しむツールだと思っていたのですが、自分一人ではできないプログラミングのコードなども作成してくれることを知りました。
そこで日々の業務で楽にできないかな~と思ってる業務をお手伝いしてもらいました。
従業員同士の会話を生みたい
私の会社はテレワークを推奨しており従業員の7割が自宅で業務をしています。
出社していればなんてことない雑談をする機会もありますが、1日誰とも会話をせずに終わるという声も聞きます。
個人的な意見としては、たまにはテレワークも良いですが同じ状態が1か月続くと寂しいなぁと思います。
特に転職したての方は会社のことも分からないので孤立してしまいがちです。
従業員が生き生きと働ける環境を整えるのが人事部のミッションです。
一時だけでも業務から離れ、従業員同士が会話をできるミーティングを開催しようということになりました。
地味に大変なチーム分け作業
参加者を募り開催日時を設定しますが、意外と時間のかかる作業が参加者のチーム分けです。
「あれ、この人とこの人は同じ部署だ」
「前回も同じ組み合わせだった気がする」
「チーム分けの優先順位ってなんだ?」と作業するうちにプチパニックです。
そこで、まずはChatGPTにグループ分けに必要な概念を聞いてみました。
なるほど、なるほど。
スキルや専門知識が乖離しすぎず、メンバー同士の相性やコミュニケーションのとりやすさを考慮してチームを組む必要があるわけですね。
それではここからはChatGPTに手伝ってもらいVBAを作成してみます。
使用ツール
ChatGPT
Excel
やりたかったこと
ミーティングの参加申し込みは、MicrosoftのFormsを利用します。
話したいテーマを決め、参加できる日時を選択するスタイルです。
今回は「①住まいについて(賃貸・購入/マンション・戸建て)こだわりポイントなど」
「②夏休みの過ごし方」「③夏バテ予防」の3テーマでした。
作成したもの
ChatGPTへのお願い文章(プロンプト)
ChatGPTにお願いしてみました。
このとき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を作成することです。
上記のノイズ(データ上の不要要素)を取り除くところまでは順調でしたが、
肝心のチーム分けをお願いすると、予想とは違うデータが作成されてしまいました。
エラーの内容について質問して、再度作成してくれたVBAを試しても上手くいかない・・・。
最終的にはプロフェッショナルな開発者に相談することをおすすめされてしまいました。
ここまで頑張ってくれたのに、力を発揮させてあげられなかったことに胸が痛みます・・・。
まとめ
今回は、データの加工の過程で不要要素を取り除くコードは作成できましたが、本来の目的であるチーム分けまではたどり着くことができませんでした。
どのような文章を入力すると的確な動きをしてくれやすいのかが掴みきれなかったことが原因だと思います。
今後は指示する言葉の語彙やパターンを増やしたいと思います。
しかし、希望する内容を文章で理解してくれて、瞬時にコードに落とし込んでくれるChatGPTは文系の強い味方ですね!
使い方さえ覚えればもっと精度が高まると思います。
もっとChatGPTと仲良くなるために研究を続けます。