🔄 アップデート情報
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の出力精度の違いを漫才ネタで比較してみました!
2024年5月13日よりChatGPTのGPT-4oモデルの提供が開始されました!
- GPT-4o(オムニ)ではテキスト、音声、画像、映像をシームレスに扱い、自然なテンポでのリアルタイム音声会話が可能になりました。
- 特に、視覚と音声の理解力が際立ち、多言語対応や複雑な対話の要素を理解できるようになったと言われています。
- さらに、既存モデルや競合モデルを上回る性能でありながら、制限はありますが、無料ユーザーも利用可能となっています。
2024年4月1日よりChatGPTがログイン不要で利用できるようになりました!
- 「まずはお試しください」をクリックすると利用できます。
- 米OpenAIは4月1日、ログインやアカウント作成なしでもChatGPTが利用可能になったと発表しました。
- これまでは、ChatGPTの利用にはアカウント作成が必須でしたが、今回の更新でアカウントを作成せずにChatGPTを試せるようになりました。ただし、モデルはGPT3.5、過去のチャット履歴の保存や確認、チャットの共有、音声対話やカスタム指示などの追加機能は利用できないようです。
- 早速試してみましたが、GPT3.5モデルでも十分な精度だと感じました!
試しにマクロの記録をリファクタリングしてみました!
- ChatGPTのモデルGPT-4oを使ったスクショVBA動画の視聴回数が20,000回を突破しました!
たくさんのコメント、ご質問もいただきました。ありがとうございます!
ChatGPTの最新モデルGPT-4oが登場!Excelシートのスクリーンショットから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で生成したマスタデータをもとにして、ダミーデータを生成可能なVBAコードを作成していきます。
- ChatGPTを使えば簡単にダミーデータを生成することも可能ですが、出力可能な文字数に制限があるため、VBAと組み合わせることでダミーデータを量産できるようにします!
- それでは早速、動画で生成方法を確認していきましょう!
2️⃣ 10,000行の売上表の生成
- まずはベースとなるマスタデータを生成していきます。
🪄
「6列10行のマスタデータを作成してください。列の構成はNo.、企業名、商品部門、商品コード、商品名、単価です。」
- 企業名の列が
株式会社A、株式会社B…
となってしまったため、修正していきます。
🪄
「企業名は日本によくある名字を使用した架空のものを生成するようにしてください」
- 作成したマスタデータをベースに日付、数量をランダムとして、任意の行数出力可能なVBAコードを生成していきます。
🪄
「上記のマスタデータをもとに任意の行数量産可能な売上表を作成するVBAコードを生成してください。
- マスタデータの配列をVBA内で定義してください。
- 任意の行数を入力可能なインプットボックスを用意してください。
- 列の構成は日付、企業名、商品部門、商品コード、商品名、単価、数量、売上金額です。
- 日付はyyyy/mm/dd形式で2023年のランダムな日付を生成するようにしてください。
- integer型は使わずにlong型としてください。
- コードが生成されていきます。もし途中でコードの生成が途切れてしまった場合は、「コードの続きを書いてください」と入力します。
🪄
「コードの続きを書いてください」
- 売上表データを生成するVBAコードが生成されましたら、こちらをVBEに貼り付けてマクロの動きを確認していきます。
- VBEはExcelの画面でAlt + F11と入力すると起動できます。
3️⃣ VBAコードの実行
- F5キーでVBAを実行します。InputBoxが表示され、任意の行数を入力します。
- 10,000行の売上表が生成されました。
4️⃣ 生成されたVBAコード
Option Explicit
Sub GenerateSalesData()
' マスターデータの配列を定義
Dim masterData As Variant
masterData = Array(Array(1, "佐藤商事", "食品", "F001", "チョコレート", 150), _
Array(2, "田中電機", "家電", "E022", "スマートフォン", 80000), _
Array(3, "山田化粧品", "化粧品", "C003", "リップスティック", 2000), _
Array(4, "加藤衣料品", "衣料品", "A010", "ファッションTシャツ", 500), _
Array(5, "伊藤エンターテイメント", "エンターテイメント", "M007", "映画「スパイダーマン」", 1800), _
Array(6, "木村日用品", "日用品", "H031", "バスタオル", 1200), _
Array(7, "渡辺薬品", "医薬品", "P005", "風邪薬", 800), _
Array(8, "小林スポーツ用品", "スポーツ用品", "S019", "バスケットボール", 2500), _
Array(9, "鈴木書店", "書籍", "B006", "小説「夏目漱石」", 1200), _
Array(10, "高橋家具", "家具", "F055", "ベッド", 35000))
' 行数を取得
Dim numRows As Long
numRows = InputBox("何行の売上表を生成しますか?", "行数の入力")
' ヘッダー行を作成
Range("A1").Value = "日付"
Range("B1").Value = "企業名"
Range("C1").Value = "商品部門"
Range("D1").Value = "商品コード"
Range("E1").Value = "商品名"
Range("F1").Value = "単価"
Range("G1").Value = "数量"
Range("H1").Value = "売上金額"
' ランダムな日付の範囲を指定
Dim startDate As Date
startDate = DateSerial(2023, 1, 1)
Dim endDate As Date
endDate = DateSerial(2023, 12, 31)
' データ行を生成
Dim i As Long
For i = 1 To numRows
' ランダムな日付を生成
Dim randomDate As Date
randomDate = Int((endDate - startDate + 1) * Rnd + startDate)
' 企業名、商品部門、商品コード、商品名、単価をランダムに選択
Dim randomIndex As Long
randomIndex = Int((UBound(masterData) - LBound(masterData) + 1) * Rnd + LBound(masterData))
Dim company As String
company = masterData(randomIndex)(1)
Dim department As String
department = masterData(randomIndex)(2)
Dim productCode As String
productCode = masterData(randomIndex)(3)
Dim productName As String
productName = masterData(randomIndex)(4)
Dim unitPrice As Long
unitPrice = masterData(randomIndex)(5)
' 数量をランダムに生成
Dim quantity As Long
quantity = Int((10 - 1 + 1) * Rnd + 1)
' 売上金額を計算
Dim salesAmount As Long
salesAmount = unitPrice * quantity
' データを出力
Range("A" & i + 1).Value = Format(randomDate, "yyyy/mm/dd")
Range("B" & i + 1).Value = company
Range("C" & i + 1).Value = department
Range("D" & i + 1).Value = productCode
Range("E" & i + 1).Value = productName
Range("F" & i + 1).Value = unitPrice
Range("G" & i + 1).Value = quantity
Range("H" & i + 1).Value = salesAmount
Next i
End Sub
5️⃣ さいごに
- 最後までご覧いただきありがとうございました!
- ベースとなるマスタデータの行数、列数、項目などをカスタマイズしていただければ、さまざまなダミーデータが生成できますので、ぜひプログラミング学習にお役立てください!
- この動画がためになった、参考になったという方はぜひチャンネル登録、Goodボタンを押していただけると今後の動画投稿の励みになります。
- またTwitterでもVBA、Pythonに関するアウトプットをしていますので、概要欄からフォローいただけますと幸いです。