ChatGPTにコードをレビューしてもらう
ChatGPTにコードレビューをしてもらう
自作MakeUserSickメソッドを改良(?)する
今話題のChatGPTにコードを投げると、コードレビューしてもらえる。
孤独なVBAマンには実にありがたい。
そこで、わが最高傑作(?)、MakeUserSick
メソッドを少し改良(?)して、ChatGPT先生に見てもらうことにした。
……と、ここまでフツーに「ChatGPT」などと表記してきたが、実は「GPT」だったか「GPI」だったか、思い出せなくなっていたので、先に尋ねておいたのである。
MakeUserSickメソッドの改良
元のMakeUserSick
メソッドはコチラ。
早速、改良(?)後のコードをお目に掛けよう。
リスト1
Public Enum MsgBoxStyle mbsOkOnly = vbOKOnly mbsOkCancel = vbOKCancel mbsCritical = vbCritical mbsExclamation = vbExclamation mbsInformation = vbInformation mbsQuestion = vbQuestion mbsYesNo = vbYesNo mbsYesNoCancel = vbYesNoCancel End Enum '///ち~んw用' Private Const MAKE_USER_SICK_2013 As String = _ " _______" & vbCrLf & _ " / \" & vbCrLf & _ "/ /・\ /・\ \" & vbCrLf & _ "|  ̄ ̄  ̄ ̄ | ち~んw" & vbCrLf & _ "| (_人_) |" & vbCrLf & _ "| \ | |" & vbCrLf & _ "\ \_| /" Private Const MAKE_USER_SICK_2010 As String = _ " _______" & vbCrLf & _ " / \ " & vbCrLf & _ "/ /・\ /・\ \" & vbCrLf & _ "|  ̄ ̄  ̄ | ち~んw" & vbCrLf & _ "| (_人_) |" & vbCrLf & _ "| \ | |" & vbCrLf & _ "\ \_| /" '///ユーザーを煽るAAを表示する' Public Function MakeUserSick( _ Optional ByVal a_Message As String, _ Optional ByVal a_Style As MsgBoxStyle, _ Optional ByVal a_Title As String) As VbMsgBoxResult Dim ret As VbMsgBoxResult ret = vbCancel If a_Message = "" Then a_Message = "涙拭けよwww" Dim ver As String ver = Application.Version Dim tmp As String Select Case ver Case "14.0" tmp = MAKE_USER_SICK_2010 Case "15.0" tmp = MAKE_USER_SICK_2013 Case "16.0" tmp = MAKE_USER_SICK_2013 Case Else tmp = MAKE_USER_SICK_2010 End Select ret = MsgBox(prompt:=a_Message & vbCrLf & tmp, _ Buttons:=a_Style, _ Title:=a_Title) MakeUserSick = ret End Function
旧ヴァージョンは、Sub
だったが、今度のやつはFunction
である!
ユーザーを軽く煽った上で、ユーザーの意思を確認することまでできるニクいやつになったのである!
まあ、そんなことはどうでもよろしい。
さっそくChatGPT先生にレビューしてもらおう。
ChatGPT先生にレビューをお願いする
これは実に簡単。
コードを丸ごと貼り付けて、最後に「このコードをレビューしてください。」と付け加えるだけ。
まっ たく 簡 単 だ。
ChatGPT先生のお答え
テキストでも引用しておく。
このコードは、VB.NETで書かれたMsgBox関数を使用したカスタムのメッセージボックス機能を実装しています。以下は、このコードのレビューです。
- 列挙型(Enum)MsgBoxStyleが定義されており、MsgBoxで使用できる定数を指定しています。これにより、MsgBoxの呼び出し時に可読性が向上し、コードの意図を明確にすることができます。
- メッセージボックスに表示するAAアートを定数として定義し、MakeUserSick関数で使用されています。これにより、ユーザーに強烈な印象を与えることができますが、実際のアプリケーションで使用する場合は注意が必要です。ユーザーに不快感を与える可能性があります。
- メッセージ、スタイル、タイトルを引数として取り、MsgBoxを呼び出します。MsgBoxの戻り値は、MakeUserSick関数の戻り値として使用されます。
- MakeUserSick関数の戻り値の型は、VbMsgBoxResultとして指定されています。これは、MsgBox関数の戻り値と同じ型です。
- ユーザーが何も入力しなかった場合に備えて、デフォルトのメッセージが設定されています。
- アプリケーションのバージョンに応じて、異なるAAアートが使用されます。アプリケーションのバージョンが14.0の場合は、2010年のAAアートが使用されます。15.0と16.0の場合は、2013年のAAアートが使用されます。これは、AAアートがバージョンによって異なる可能性があるためです。
このコードは、カスタムのメッセージボックス機能を実装するための簡潔で効果的な方法です。ただし、ユーザーに不快感を与える可能性があるAAアートを使用する場合は、注意が必要です。また、アプリケーションのバージョンに依存する処理が含まれているため、将来的にバージョンアップする場合は、注意してコードを修正する必要があります。
ところどころトンチキなことも言っているが、まあまあ正確なレビューなんではなかろうか。
特に、「ユーザーに不快感を与える」というところなんか、正直すげえなあ、と思う。
おわりに
自作のコードをいろいろ投げてみたら、おもしろいですよ。