chatGPT/AIWindows関連

Windows Copilot(ChatGPT)にExcelマクロ(VBAコード)の簡単自動化実例紹介!

※記事内に広告を含む場合があります

windows11_copilot_aiアシスタント搭載

日々の業務に欠かせないExcel。ITエンジニアの私も仕様書やエビデンス等々で毎日必ず触っているExcel。ふっとこんなことを思ったことはありませんか?

「同じような作業は自動化したい!」
「自動化はしたいけどマクロを考えるのもしんどい」
「そもそもExcelマクロの使い方自体知らない!」
私はプログラミングを生業としているので例えばデータ移行ツールやCSV取込ツール等、必要であれば独自でコード生成しマクロを組んだりします。他のプログラミング言語と比べ比較的簡単ではありますが、コード作成自体ある程度時間がかかったりするため一般的にも少しハードルは高いですよね。
しかし、ChatGPTはプログラミングもできるのでマクロなんて扱ったことのない初心者でも比較的簡単な仕様であればマクロ(VBAコード)生成もすぐにできてしまいます
今回はMicrosoft社が提供している「Windows in Copilot」(GPT-4)を使えば無料でできるので、マクロの組み込み方を含めて試してみることにしました。
Microsoft社ではAIチャットをBingAI,Bing Chatの様に様々ありますが呼び方の総表として「Copilot」に統合されました。
有効化の方法や使い方については以下記事を参考にしてみてください。
マクロでは無くhtml/css/javascriptでプログラミング生成を検証してみた記事はこちらです↓
Bing Chat(ChatGPT4)でプログラミング生成を試してみた
複数CSVファイルをExcel内の各シートへテーブル形式で読み込むマクロ(VBA)をCopilot(Chat-GTP)に依頼してみた↓
Copilot(ChatGTP)で複数CSVファイル取込用のExcelマクロを簡単作成!

Copilot(ChatGPT)にExcelマクロの実行までの流れを聞いてみた

■プロンプト
Excelでマクロを実行する方法を教えて
■回答
プログラム上で実行する場合:
Excelに付属しているVBE(Visual Basic Editor)を使います。Excelファイルを開き、Alt+F11でVBEが開きます。プログラム上の Sub meisai から End Sub までの間にカーソルを置き、F5を押すと実行できます。Excel上で実行する場合:
ExcelでAlt+F8を押してください。meisai というマクロが選択されていることを確認し、Enterキーまたは 実行 をクリックすると、マクロが実行されます。ショートカットキーで実行する場合:
特定のキーの組み合わせ、つまり、ショートカットキーで、マクロを実行することもできます。ExcelでAlt+F8を押し、今度は、 オプション をクリックします。ここでショートカットキーを設定できます。

ボタンを作成して実行する場合:
Excelのオプション(Alt、T、Oを順番に押す)で、 リボンのユーザー設定 の右側の 開発 にチェックを入れます。設定すると、 開発 というタブが表示されるので、 挿入 → フォームコントロール の左上のボタンをクリックします。そのままカーソルをExcelのセル上に持ってくると、カーソルが+字にかわるので、マウスでドラッグしてボタンを描いてください。

注意点として、マクロはCtrl+Z(元に戻す)ができません。実行前に上書き保存(Ctrl+S)をするのが無難です。また、マクロを実行して止まらない(いつまでたっても完了しない)場合は、ESCキーを押すか、Ctrl+Shift+ESCを押し、Excelを強制終了するしかありません。これらの手順を試す前に、必ず重要なデータのバックアップを取ってください。

 実行方法としては4パターンで網羅されています!注意事項としてCtrl + Zで戻ることができない!なんて事前情報としてはありがたい情報まで教えてくれました。
マクロを開発する上で足りない情報があったので事前準備についても聞いてみることにしました。

Copilot(ChatGPT)にExcelマクロ作成の事前準備を聞いてみた

■プロンプト
マクロ実行する際の事前準備はある?
■回答
Excelでマクロを実行する前に、以下の事前準備が必要です。開発タブの表示:
Excelのリボンに「開発」タブを追加します。このタブには、マクロを開発するために必要なアイコンが並んでいます。Excelの「ファイル」から「オプション」を選択し、「リボンのユーザー設定」で「開発」にチェックを入れます。VBAの設定:
VBA(Visual Basic Editor)を起動し、必要な設定変更を行います。

セキュリティ設定の確認:
マクロが実行できる環境にするために、Excelのセキュリティ設定を確認します。

以上の手順を踏むことで、Excelでマクロをスムーズに実行するための環境を整えることができます。ただし、マクロの実行は元に戻すことができないため、実行前にデータのバックアップを取ることをお勧めします1。また、マクロの実行中に問題が発生した場合は、ESCキーを押すか、Ctrl+Shift+ESCを押してExcelを強制終了することができます1。これらの手順を試す前に、必ず重要なデータのバックアップを取ってください。

大きく分けて2点赤色マーカー箇所について触れられているのでこちらも網羅性はありますが、セキュリティについてもう少し詳しく教えてくれても良かったかなと個人的感想を持ちました。(Copilotでは参照元リンクがあるので詳細を知りたい場合はリンク先を辿ることも可能)

Copilot(ChatGPT)のExcelシートをPDFファイル生成するマクロ

具体的はExcelファイル内に複数シートがあり、1シートにつき1ファイルのPDFに分割してファイル作成するマクロ生成を依頼しました。ファイル名はシート名とし、印刷範囲設定等は事前に設定された状態を想定しているため仕様には含めていません。

■プロンプト
以下の条件でExcelのマクロを作成して
# 条件
・複数シートに対し1シート1ファイルとなるPDFを作成
・PDFのファイル名はシート名
・ファイル保存先はカレントディレクトリ配下のoutフォルダ内に保存
■回答
こんにちは、これはBingです。エクセルのマクロに関するお問い合わせありがとうございます。😊エクセルのマクロを使って、複数シートを1シート1ファイルとなるPDFに変換する方法をご紹介します。以下の手順に従ってください。

  1. 開発タブを表示します。開発タブが表示されていない場合は、ファイルタブを選択し、オプションをクリックし、リボンのユーザー設定を選択し、「開発」にチェックを入れてOKボタンを押します。
  2. 開発タブの中のVisual Basicをクリックします。Visual Basicエディターが開きます。
  3. 挿入タブを選択し、モジュールをクリックします。モジュール1という名前の新しいモジュールが作成されます。
  4. モジュール1をダブルクリックし、以下のコードを貼り付けます。
Sub PDF出力()
    Dim ws As Worksheet
    Dim outPath As String
    outPath = ActiveWorkbook.Path & "\out\" 'PDFの保存先を指定
    If Dir(outPath, vbDirectory) = "" Then 'outフォルダが存在しない場合
        MkDir outPath 'outフォルダを作成
    End If
    For Each ws In Worksheets 'すべてのシートに対して繰り返し
        ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=outPath & ws.Name & ".pdf" 'シート名でPDFを保存
    Next ws
End Sub
  1. 実行タブを選択し、マクロをクリックします。「マクロ」ダイアログボックスが表示されます。
  2. PDF出力という名前のマクロを選択し、実行ボタンを押します。マクロが実行され、カレントディレクトリ配下のoutフォルダに、各シートのPDFが保存されます。

以上で、エクセルのマクロを使って、複数シートを1シート1ファイルとなるPDFに変換する方法の説明を終わります。この方法でお役に立てれば幸いです。😊

もし、エクセルのマクロに関する他の質問がありましたら、お気軽にお尋ねください。私はエクセルのマクロについて多くのことを知っていますので、お答えできるかもしれません。😊

また、エクセルのマクロ以外にも、私は様々な話題についてお話できます。私は詩や物語、コードやエッセイ、歌やセレブのパロディなど、想像力豊かで創造的なコンテンツを自分の言葉と知識で作成することができます。もし興味がありましたら、私に挑戦してみてください。😊

それでは、またお会いしましょう。これはBingでした

早速コード生成してくれましたね!コード生成だけでなく手順まで教えてくれたので流れに沿って実行までしていきたいと思います。

ファイルとフォルダ構成は上記の通りです。実行後は「out」フォルダ内にPDFが3ファイル保存された状態を想定しています。

Excelマクロ_VBA11. 開発タブを表示します。開発タブが表示されていない場合は、ファイルタブを選択し、オプションをクリックし、リボンのユーザー設定を選択し、「開発」にチェックを入れてOKボタンを押します
2. 開発タブの中のVisual Basicをクリックします。Visual Basicエディターが開きます。

Excelファイルはテスト用ですがシート名「1枚目」「2枚目」「3枚目」としそれぞれA1セルに「1ページ」「2ページ」「3ページ」と入力したファイルを作成しました。

開発タブを表示します。開発タブが表示されていない場合は、ファイルタブを選択し、オプションをクリックし、リボンのユーザー設定を選択し、「開発」にチェックを入れてOKボタンを押します。 開発タブの中のVisual Basicをクリックします。Visual Basicエディターが開きます。

3. 挿入タブを選択し、モジュールをクリックします。モジュール1という名前の新しいモジュールが作成されます。
4. モジュール1をダブルクリックし、以下のコードを貼り付けます。

5. 実行タブを選択し、マクロをクリックします。「マクロ」ダイアログボックスが表示されます。

6. PDF出力という名前のマクロを選択し、実行ボタンを押します。マクロが実行され、カレントディレクトリ配下のoutフォルダに、各シートのPDFが保存されます。

実行結果↓

なんと一発合格~~~~~!

簡単なマクロとは言え一発合格はさすがGPT-4さん!html/css/JavaScriptやPytonと言った他のプログラミングもいくつか試しましたが一回で成功は今回が初めてでした(笑)

MicrosoftがOpenAIに多額の出資をしているだけあって、Office系との親和性の高さも伺えます!

Copilot(ChatGPT)でExcelマクロ(VBAコード)生成を試してみた感想

  • 一回で成功したことに驚きを隠せない!
  • コードのみならず実行手順まで案内してくれる優れもの!
  • 今後もどんどんマクロ生成してもらおうと心に誓った!

例外処理等も無く非常にシンプルな仕様で今回依頼してみましたが、
プログラミングを経験された方ならあるあるですが、意図した仕様通りに実行して1回で成功した時の快感ってありますよねw

今回はある意味AIチャットツールにプログラミング生成を依頼したことの醍醐味を味わうことができました。

今後は例外処理やもう少し複雑な仕様(CSVを取込→シートへ反映→加工→CSV出力等)のマクロを作って貰い、どんな結果となるのか検証していこうと思います。

BingAI(GPT4)の使い方は?Chat-GPTと比較!根本的に違うのはここ!

コメント