🔄 アップデート情報
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️⃣ はじめに
- 今回は、OpenAI(人工知能研究所)が開発した、話題のChatGPTを使用してExcelの機能「マクロの記録」を使って作成したコードを整形する方法を解説していきます。
- ChatGPTは自然言語処理の人工知能モデルです。ユーザーと会話形式で質問の受け答えができるのが特徴で、プログラミングのコードを生成・変換・修正することも可能です。
- 前回の動画で紹介した、総務省のデータ表記方法のチェック項目に従って修正するVBAコードを使用します。
- それでは早速、動画で生成方法を確認していきましょう!
2️⃣ マクロの記録でVBAコードの生成
📖
ChatGPTとは?
OpenAIという人工知能研究所が開発した自然言語処理の人工知能生成AIです。
- 使用するコードは、以前の動画で紹介した総務省のデータ表記方法のチェック項目に従って作成したものをベースに実装していきます。データはこちらからダウンロード可能です。
- 左上が修正前シートです。左下の修正後シートに転記処理を行います。こちらは同じExcelブックの別シートを整列表示させています。
- 右側にはVBE(VBAのコードエディター)を開いています。
- 今回はExcelに備わっているマクロの記録を使用してコードを生成していきます。マクロの記録は、「マクロの記録」ボタンを押してから「記録終了」ボタンを押すまでの、Excelでの作業内容が自動的にマクロ化される機能です。操作した内容がリアルタイムでコードとして生成されていきます。
- ただし、マクロの記録では不要なコードも多く記録されてしまい、処理の内容を人が理解するのは大変です。また、生成されたコードをそのまま使用するだけでは、柔軟なマクロを作ることができないため整形が必要です。
- 今回はこの整形・リファクタリングをChatGPTを使用して行いたいと思います。📖コードのリファクタリングとは?
プログラムの外部動作を変更せずに、不要なコードの削除、重複コードの統合、内部の構造や実装を改善するプロセスのことです。この目的は、コードの可読性を高め、保守性を向上させ、将来の変更や拡張を容易にすることにあります。
graph TD A[コードのレビュー] -->|問題を識別| B[リファクタリングの計画] B --> C{リファクタリングを実施} C -->|はい| D[コードの改善] D --> E[テストの実行] E --> F{テスト成功?} F -->|はい| G[変更をコミット] G --> H[リファクタリング完了] F -->|いいえ| I[バグ修正] I --> E C -->|いいえ| J[他のタスクへ]
- まずはマクロの記録でコードを自動生成していきます。
- マクロの記録はワークシートの左下枠外にある記録ボタンでスタート、ストップすることができます。
- 記録する内容は下記のとおりです。
- 最初に修正前シートの表のデータをコピーし修正後シートに貼り付けます。
- 次に値に余計な空白が含まれているため「ctrl+H」で置換を使って空文字に置き換えます。
- 最後に数値部分に「ctrl+shift+1」で3桁区切りのカンマを設定します。
graph TD A[修正前シートのデータをコピー] --> B[修正後シートに貼り付け] B --> C[ctrl+H で空白を空文字に置換] C --> D[数値部分に ctrl+shift+1 でカンマ設定]
- これでマクロ記録によるコードが完成いたしました。
3️⃣ ChatGPTでVBAコードをリファクタリング
- 完成したコードをChatGPTを使って整形していきます。マクロの記録で作成したVBAコードを整形する指示と、コードを貼り付けていきます。
🪄
「以下のVBAコードを整形してください。」
- コードが整形されました。
- ChatGPTでは回答に対して、さらに深掘りすることや、求める回答になるまで対話を重ねることもできます。生成されたすべてのコードをコードブロックの中に記述するように指示をします。
🪄
「上記のコードをすべてコードブロックとして記述してください」
- 続いて、コードの中で使用していない不要な引数を取り除きます。
🪄
「上記のコードから不要な引数を取り除いてください。
- コードのリファクタリングが完了しました。
4️⃣ VBAコードの実行
- リファクタリングしたVBAコードが問題なく実行出来るか確認していきます。
- 右上がマクロの記録で作成したコードです。
- 右下がChatGPTを使って修正したコードです。
- プロシージャ名とシート名を変更します。
プロシージャ名:
example_4() → example_4_chatgpt()
シート名:
Sheet1 → 修正後4
- コードが完成しました。ステップ実行で確認していきます。F8キーを押すごとに1行ずつコードが実行されます。
- 転記処理が完了しました。
マクロの記録で生成したコード
Option Explicit
Sub example_4()
Range("C4").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("総務省.xlsm").Activate
Range("C4").Select
ActiveSheet.Paste
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
Application.CutCopyMode = False
Selection.NumberFormatLocal = "#,##0"
End Sub
ChatGPTでリファクタリングしたコード
Option Explicit
Sub example_4_chatgpt()
With ThisWorkbook.Worksheets("修正前4")
.Range("C4", .Range("C4").End(xlToRight).End(xlDown)).Copy
End With
With Workbooks("総務省.xlsm").Worksheets("修正後4")
.Range("C4").PasteSpecial xlPasteValues
.Range("C4", .Range("C4").End(xlToRight).End(xlDown)).Replace What:=" ", Replacement:="", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
.Range("C4", .Range("C4").End(xlToRight).End(xlDown)).NumberFormatLocal = "#,##0"
End With
Application.CutCopyMode = False
End Sub
5️⃣ おわりに
- 最後までご覧いただきありがとうございました!
- マクロの記録は初学者にとってコードを簡単に生成できて便利な機能ですが、コードが読みづらいことが難点でした。ChatGPTの力を借りてリファクタリングすることで保守性の高いコードに生まれ変わります!ぜひ日々の業務にお役立てください!
- またTwitterでもVBA、Pythonに関するアウトプットをしていますので、概要欄からフォローいただけますと幸いです。