こんにちは。
デジタルツールを使用して業務改善をしようと悪戦苦闘している小売業従事者です。
今回覚えたてのChatGPTを使って、これまでやりたくても出来なかったエクセルのマクロに挑戦しました。
実際に書いてもらったソースコードがこちらです。
Sub VlookupSalesData()
Dim ws1 As Worksheet ' 実績管理表のワークシート
Dim ws2 As Worksheet ' 売上実績のCSVファイルのワークシート
Dim lastRow1 As Long ' 実績管理表の最終行
Dim lastRow2 As Long ' 売上実績のCSVファイルの最終行
Dim i As Long
' シートを指定
Set ws1 = ThisWorkbook.Sheets("実績管理表") ' "実績管理表" シート名に変更してください
' CSVファイルを開く
On Error Resume Next
Workbooks.Open Filename:=ThisWorkbook.Path & "\売上実績.csv" ' ファイルパスに合わせて変更してください
On Error GoTo 0
If Workbooks.Count = 0 Then
MsgBox "売上実績.csv ファイルが見つかりません。ファイルのパスを確認してください。", vbExclamation
Exit Sub
End If
Set ws2 = Workbooks("売上実績.csv").Sheets("売上実績") ' シート名に合わせて変更してください
' 実績管理表の最終行を取得
lastRow1 = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row
' 売上実績のCSVファイルの最終行を取得
lastRow2 = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row
' VLOOKUPを実行
For i = 5 To lastRow1 ' A列の5行目からスタート
Dim lookupValue As Variant
lookupValue = ws1.Cells(i, 1).Value
Dim result As Variant
result = Application.VLookup(lookupValue, ws2.Range("A:B"), 2, False)
' #N/Aまたは空白を0に置換
If IsError(result) Then
ws1.Cells(i, 2).Value = 0
ElseIf IsEmpty(result) Then
ws1.Cells(i, 2).Value = 0
Else
ws1.Cells(i, 2).Value = result
End If
Next i
' 売上実績のCSVファイルを閉じる
Workbooks("売上実績.csv").Close SaveChanges:=False ' ファイル名に合わせて変更してください
End Sub
何故マクロ(VBA)か
私は小売業従事者であることは先に書いた通りですが、今は店頭業務(お店の店員さん)ではなく、裏方的な業務として、倉庫の在庫管理などをしています。
在庫管理のために毎週商品の販売数量と在庫数量をチェックしながら、足りる・足りないまたは多いといった確認をするために、社内データベースから必要なデータを抽出し、手元のエクセルファイルへ転記する業務が非常に多く発生します。週初めの月曜日は1日ほぼデータ収集作業に明け暮れています。
過去にチャレンジはしたものの
過去に書籍などでマクロ(VBA)にチャレンジしたことはありましたが、残念ながら挫折・・・
しかし今回こそはChatGPTの手を借りながら!と改めてのチャレンジです!
###いざChatGPT
いざChatGPTにマクロを書いてもらおうと色々質問してみましたが、正直悪戦苦闘でした。
深津式、YouTubeなど色々調べてみましたが、正直自分の手を動かした方が早いんじゃないかと思うくらいうまく行きませんでした。
特に1回目のプロンプトが思い通りの回答出ないときに、修正するためのプロンプトは「かみ合わない」と感じ、何度もはじめからやり直しました。
ChatGPTに出したプロンプトとやり取りは以下の通りです。
うまくデータは反映しましたが、#N/Aの表示がじゃまなので、ゼロに置換するように依頼しました。
うまく行きましたが、何故か一番上のデータが反映しません。
再度5行目(一番上)にデータが入らないことを伝えてコードの修正を依頼します。
ようやくデータ転記が出来ました。
しかし翌週のデータ転記が出来るコードを書いてもらいましたがまだうまく出来ていません。
産みの苦しみを乗り越えて
今回書いてもらうことができたマクロは自分の業務の2割くらいで、時間を捻出できたレベルには到達できておりません。しかし組み合わせて行くことで最終全てをマクロ化出来れば30分程度かかっている作業が5分程度に短縮できるかなという手応えです。
今後もChatGPTと仲良くなって実現してきたいと思っています。
今後目指していくこと
今回試したことは実際業務からするとほんの一部に過ぎません。
全てのデータの抽出から転記、配信までは概ね毎週1時間半程度の時間を費やしており、この時間をいかに短縮し、分析の時間を捻出するかが到達目標です。
最終到達目標としては並行して学習中のPower Automateと組み合わせしていいとこどりしたいと考えています。