ChatGPTの実務活用イメージ:VBAでExcel業務効率化
はじめに
こんにちは、SHIFTのERPサービスグループに所属しているSUGIです。
私が、ChatGPTに興味を持ち始めたのは数ヶ月前です。そのため、「プロンプトエンジニア」といった立派な肩書きなど無いChatGPT初心者です。そんな初心者ですが、ChatGPTを活用することで業務効率化が簡単にできる手応えを感じ始めました。
今回は、ChatGPTにVBAコードを生成してもらい、Excel業務を効率化するイメージを紹介します。
ChatGPTによるVBAコードの生成から実行までの手順
手順は3つです。
自分がやりたいことをChatGPTに入力する
ChatGPTが生成したVBAコードをエクセルにコピペする
マクロを実行する
各手順の具体例
手順1.自分がやりたいことをChatGPTに入力する
ChatGPTは、とても優秀です。そのため、どのようなプロンプトを入力すれば回答を得られるのかと考えずに、身近にいる話しかけやすい優秀なエンジニアに相談する感覚で入力すればOKです。
<プロンプト例>
複数のエクセルブックにある、「テスト仕様書」というシートを1つのブックにコピーするVBAコードを作ってください。なお、コピー先のエクセルファイル名とフォルダは実行の度に指定したいです。
<Tips>
ChatGPTを学び始めると、より適切な回答を得るためには「役割を与える(例 あなたは、プロのITエンジニアです)」とか「プロンプトを構造化する(例 #などを使う )」という説明を目にすると思います。
私のようなChatGPT初心者は、”より適切な回答”を得ることを考えすぎてプロンプト入力で手が止まることは避ける。適切な回答が返って来なかったら、「期待した動作と違いました。XXXXとなるように、VBAコードを変更してください。」とすれば新しいVBAコードを生成してくれると考えましょう。
つまり、「どのようなプロンプトを入力したら良いのだろうか?」で手を止めないことがChatGPT活用で一番大事なことではないかと私は考えます。
※イメージ_プロンプト入力
※イメージ_ChatGPTからの返信抜粋
※ChatGPTが生成したVBAコード
Sub CopyTestSheetToSingleWorkbook()
Dim SourceFolder As String
Dim FileDialog As FileDialog
Dim TargetFileName As String
Dim TargetWorkbook As Workbook
Dim SourceWorkbook As Workbook
Dim SourceSheet As Worksheet
Dim FileName As String
' コピー元フォルダを選択
Set FileDialog = Application.FileDialog(msoFileDialogFolderPicker)
FileDialog.Title = "コピー元フォルダを選択してください"
If FileDialog.Show <> -1 Then Exit Sub
SourceFolder = FileDialog.SelectedItems(1) & "\"
' コピー先のファイル名と保存場所を指定
TargetFileName = Application.GetSaveAsFilename(FileFilter:="Excel Files (*.xlsx), *.xlsx")
If TargetFileName = "False" Then Exit Sub ' キャンセルされた場合
' 新しいワークブックを作成し、コピー先に設定
Set TargetWorkbook = Workbooks.Add
TargetWorkbook.SaveAs Filename:=TargetFileName
' コピー元フォルダ内のすべてのExcelファイルを対象に処理
FileName = Dir(SourceFolder & "*.xls*")
Do While FileName <> ""
Set SourceWorkbook = Workbooks.Open(SourceFolder & FileName)
On Error Resume Next
Set SourceSheet = SourceWorkbook.Worksheets("テスト仕様書")
On Error GoTo 0
' 「テスト仕様書」シートが存在する場合にコピー
If Not SourceSheet Is Nothing Then
SourceSheet.Copy After:=TargetWorkbook.Sheets(TargetWorkbook.Sheets.Count)
Set SourceSheet = Nothing
End If
SourceWorkbook.Close SaveChanges:=False
FileName = Dir
Loop
' メッセージを表示
MsgBox "すべての「テスト仕様書」シートを " & TargetFileName & " にコピーしました。"
End Sub
手順2.ChatGPTが生成したVBAコードをエクセルにコピペする
下記手順でエクセルに貼り付ける。
1.マクロを貼り付けるエクセルを用意する
新しいブックを作成し、「名前を付けて保存」時に、ファイルの種類を「.xlsm」とする
※イメージ_デスクトップに「業務効率化マクロ」というファイルを用意
2.「開発」タブから「Visiual Basic」をクリックする
※「開発」タブが表示されていない場合、Excelのオプションから「リボンのユーザー設定>開発」にチェックを入れる
3.「挿入>標準モジュール」をクリック
※イメージ_標準モジュール挿入後の画面
4.挿入した標準モジュールにChatGPTが生成したコードを貼り付け保存して閉じる
手順3.STEP3.マクロを実行する
「開発」タブから「マクロ」をクリックし、作成したマクロを選択して実行する。
おわりに
ChatGPTを使えば数秒で動くVBAコードを生成してくれるので、VBA未経験者でも簡単にExcel作業の業務効率化を行うことができます。また、VBA熟練者であっても、ゼロからコードを書き始める必要が無くなることから、ChatGPTを活用することで業務効率化の恩恵を受けることができると思います。
なお、VBA未経験者の場合、生成した各コードが何をやっているのかを詳しく知りたくなると思います。その時は「私はVBA未経験者です。生成したコードを分かりやすく説明してください」とプロンプトを入力してみてください。驚くほど丁寧に説明してくれますよ。
※イメージ_ChatGPTによるコード説明
最後まで読んでいただきありがとうございました!
この記事が皆さんの業務効率化の一助になれば幸いです。
お問合せはお気軽に
SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/
SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/
SHIFTの導入事例
https://service.shiftinc.jp/case/
お役立ち資料はこちら
https://service.shiftinc.jp/resources/
SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/
PHOTO:UnsplashのMarkus Spiske