📖
🔄 アップデート情報
2024年9月12日よりChatGPTの最新モデルとしてOpenAI o1の提供が開始されました!
- 高度な推論能力を持つように設計されており、特に科学、数学、コーディングの分野で優れたパフォーマンスを発揮します。
- 応答前に「思考時間」を取るよう訓練されており、複雑な問題に対してより深い分析が可能です。
o1-preview
とo1-mini
の2つのモデルがあります。主な違いを以下の表にまとめました。
特徴 | o1-preview | o1-mini |
---|---|---|
推論能力 | より高度 | o1-previewよりやや劣る |
処理速度 | 標準 | より高速 |
コスト | 高い | o1-previewの約80% |
週間利用制限 | 30メッセージ | 50メッセージ |
最大出力トークン数 | 32,768トークン | 65,536トークン |
主な用途 | 高度な技術開発、 研究プロジェクト | 小規模プロジェクト、 基本的な自動化タスク |
コーディング能力 | 非常に高い | o1-previewと同等 |
リソース消費 | 多い | 少ない(軽量) |
複雑なタスク処理 | 優れている | やや劣る |
🎙️
OpenAI o1とGPT-4oの出力精度の違いを漫才ネタで比較してみました!
VBAコードの実行方法について
- 前回アップした動画にたくさんのコメント、ご質問をいただきました。ありがとうございます!
- ご質問の中にありました、VBAコードの実行方法について詳しくご説明いたします。
1. コードを入力するVBE(Visual Basic Editor)の画面を表示する方法
- まずはコードを入力するVBE(Visual Basic Editor)の画面を表示する方法をご紹介します。
- Excelのツールバーのメニューから「開発」タブを選び、「Visual Basic」をクリックします。
- もし開発タブが表示されていない場合は、リボンの上で右クリック、リボンのユーザー設定を選択します。
- リボンのユーザー設定が選択されていることが確認できたら、「開発」にチェックマークを入れてOKボタンをクリックします。
- また、ショートカットキーで起動することも可能です。Excelが開いている状態で、キーボードの
Alt + F11
を押すことで、直接VBEを起動することができます。
2. VBE(Visual Basic Editor)にコードを貼り付ける方法
- 次にコードの貼り付け方法をご紹介します。
- VBE画面の、左のプロジェクトウィンドウで現在開いているExcelファイルの「VBAProject (現在のファイル名)」を右クリックし、「挿入」→「標準モジュール」を選択します。
- キーボードショートカットで挿入する場合は
Alt ➜ I ➜ Mで挿入できます。
- 標準モジュールを削除する場合は削除するモジュールを選択し、右クリックからモジュールの解放を選択します。
- 「いいえ」を選択することでモジュールを削除することができます。
- 前回記事でご紹介したChatGPTで作成したVBAコードを貼り付けます。
3. VBAコードの実行方法
- 最後にコードの実行方法をご紹介します。
- コードを貼り付けたら、エディタの上部にある「実行」ボタン(緑の再生ボタン)をクリックするか、F5キーを押して実行できます。
1️⃣ はじめに
- 今回は、ChatGPTの最新モデルGPT-4o(オムニ)を利用してスクショした画面からデータ転記を行うVBAコードを生成する方法を紹介していきます。
📖
GPT-4o(オムニ)とは?
OpenAIが開発した最新のマルチモーダルAIモデルです。
- テキスト、音声、画像、映像をシームレスに扱い、自然なテンポでのリアルタイム音声会話が可能になりました。特に、視覚と音声の理解力が際立ち、多言語対応や複雑な対話の要素を理解できるようになったと言われています。
- GPT-4oの「o」は「omni」を意味し、omniとは全て、あまねくという意味を含み、マルチモーダルとなった新たなGPTと、多言語に対応したことを指す意図が推測されます。
- さらに、既存モデルや競合モデルを上回る性能でありながら、制限はありますが、無料ユーザーも利用可能となっています。
- それでは早速、動画で作成方法を確認していきましょう!
2️⃣ 転記したいExcelファイルのスクショを撮る
- 今回は画像認識の能力が強化されたGPT-4oを利用して、こちらの売上データを転記、統合するVBAを作成します。
- 各店の売上データの転記・統合のイメージ
flowchart TD Yokohama[横浜店] -->|データ転記| C[売上集計ファイルに統合] Sapporo[札幌店] -->|データ転記| C Sendai[仙台店] -->|データ転記| C Osaka[大阪店] -->|データ転記| C Tokyo[東京店] -->|データ転記| C Naha[那覇店] -->|データ転記| C Fukuoka[福岡店] -->|データ転記| C Nagoya[名古屋店] -->|データ転記| C
- Excelファイルのデータは店舗ごとに分かれて集計されています。
- 各店舗の入力フォーマットは日付から売上金額までの7項目で共通のものとします。
- 各店舗の売上ファイルは店舗別売上のフォルダに格納されています。
- まずはフォルダの階層構造がわかるようにスクショを撮ります。
- 続いて転記・統合を行うExcelシートのスクショを撮ります。
- こちらのファイルに転記・統合を行います。
- 最後に、どれか1店舗のExcelシートのスクショを撮ります。今回は横浜店のスクショを撮ります。
3️⃣ GPT-4oでスクショからVBAコード生成
- GPT-4oは画面左上のプルダウンメニューから選択することが可能です。
- 4枚のスクリーンショットをChatGPTにアップロードし、プロンプトを記述します。🪄プロンプトの内容
1、2枚目はフォルダの階層構造です。
3枚目は売上表.xlsm
4枚目は横浜.xlsx
各店舗の売上データを売上表に転記、統合するVBAコードを教えてください。
日本語でお願いします。
- VBAコードが出力されました。
VBEに貼り付けてコードを実行します。
4️⃣ VBAコードの実行
- VBEにコードを貼り付けました。
- VBEの起動方法や、標準モジュールへのコードの貼り付け方、VBAの実行方法については前回の動画でご紹介していますのでこちらをご覧ください。
- こちらの記事でご紹介しています。
- F5キーで実行します。
- データの転記・統合が完了しました。
- 以上で、GPT-4oによるスクリーンショットの画面からデータ転記・統合するVBAコード生成が完了しました。
データ転記・統合するVBAコード
Sub ConsolidateSalesData()
Dim folderPath As String
Dim fileName As String
Dim wsMaster As Worksheet
Dim wsStore As Worksheet
Dim lastRowMaster As Long
Dim lastRowStore As Long
Dim currentRow As Long
' 店舗売上ファイルが格納されているフォルダのパスを設定
folderPath = ThisWorkbook.Path & "\店舗別売上\"
' マスターワークシートを設定
Set wsMaster = ThisWorkbook.Sheets("Sheet1") ' マスターシートの名前を適宜変更
' マスターワークシートの既存データをクリア
wsMaster.Cells.ClearContents
' マスターワークシートにヘッダーを追加
wsMaster.Range("A1:G1").Value = Array("日付", "店舗", "商品コード", "商品名", "単価", "数量", "売上金額")
' データ貼り付けの初期行を設定
lastRowMaster = 2
' フォルダ内の各ファイルをループ
fileName = Dir(folderPath & "*.xlsx")
Do While fileName <> ""
' 現在の店舗売上ファイルを開く
Workbooks.Open folderPath & fileName
' 現在の店舗売上ファイルのワークシートを設定
Set wsStore = Workbooks(fileName).Sheets(1) ' データが最初のシートにあると仮定
' 店舗ワークシートの最終行を取得
lastRowStore = wsStore.Cells(wsStore.Rows.Count, "A").End(xlUp).Row
' 店舗ワークシートからマスターワークシートにデータをコピー
wsStore.Range("A2:G" & lastRowStore).Copy Destination:=wsMaster.Range("A" & lastRowMaster)
' マスターワークシートの最終行を更新
lastRowMaster = wsMaster.Cells(wsMaster.Rows.Count, "A").End(xlUp).Row + 1
' 店舗売上ファイルを閉じる
Workbooks(fileName).Close SaveChanges:=False
' 次のファイル名を取得
fileName = Dir
Loop
MsgBox "売上データの統合が完了しました!", vbInformation
End Sub
5️⃣ さいごに
- 最後までお読みいただきありがとうございます!
- この記事へのご質問やアドバイスがありましたら、ぜひコメントもお待ちしております。
- またX(Twitter)でもVBA、Pythonに関するアウトプットをしていますので、🔽フォローいただけますと幸いです😆