見出し画像

ChatGPTの実務活用イメージ:VBAでExcel業務効率化

🎄こちらは公式アドベントカレンダー2024_B 仕事術・キャリア・やってみた系 Day.13 の記事です。

公式アドベントカレンダー2024_A IT技術関連トピック も毎日記事を公開していますので、ぜひあわせてご覧下さい。

★ひとつ前のアドベントカレンダー記事
タロットカード・コンサルティング


はじめに

こんにちは、SHIFTのERPサービスグループに所属しているSUGIです。
私が、ChatGPTに興味を持ち始めたのは数ヶ月前です。そのため、「プロンプトエンジニア」といった立派な肩書きなど無いChatGPT初心者です。そんな初心者ですが、ChatGPTを活用することで業務効率化が簡単にできる手応えを感じ始めました。

今回は、ChatGPTにVBAコードを生成してもらい、Excel業務を効率化するイメージを紹介します。


ChatGPTによるVBAコードの生成から実行までの手順


手順は3つです。

  1. 自分がやりたいことをChatGPTに入力する

  2. ChatGPTが生成したVBAコードをエクセルにコピペする

  3. マクロを実行する

各手順の具体例


手順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によるコード説明

最後まで読んでいただきありがとうございました!
この記事が皆さんの業務効率化の一助になれば幸いです。


執筆者プロフィール:SUGI
勤怠システムと給与システムのパッケージ導入(要件定義~保守)を20年位やってます。SHIFTには2021年に入社。
ChatGPTの魅力にはまってます。プライベートでは英検準2級ライティングの過去問をインプットし、予想問題を作成してもらいました。そのかいあってか、小学生の我が子達は見事に一発合格!
趣味はサウナとラグビー観戦(推しは横浜キャノンイーグルス)、好きなビールはインドの青鬼です。

🎁次のアドベントカレンダーは
外販講座を部内活用してみた件

お問合せはお気軽に

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:UnsplashMarkus Spiske