AIによるコードの書き換え実験(VBA→JavaScript)

ファイルを整理していたら、入力した数値の九九を作るVBAを見つけました。

↓こんな感じ

f:id:cAmErA:20240422143620j:image

 

いらないので消そうかなぁと思ったのですが、せっかくならと思い実験してみました。

 

Bingが提供しているCopilotというAIで、プログラムの書き換えをやってもらいました。

 

↓Copilotにお願いした内容

JavaScriptとhtmlに書き換えてPrivate Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B2:B2")) Is Nothing Then
Exit Sub
Else
n = Range("B2:B2")

'数字であれば
If IsNumeric(n) = True Then
'1~9の範囲内か
If n >= 1 And n <= 9 Then
'掛け算
For i = 1 To 9 Step 1
ans = n * i
Cells(3 + i, 2).Value = n & "×" & i & "=" & ans
Next i
'範囲外なら
Else
MsgBox "1~9の数字を入力して下さい"
Exit Sub
End If
'数字でなければ
Else
MsgBox "1~9の数字を入力して下さい"
Exit Sub
End If

End If
End Sub

 

↓Copilotからの回答

VBAのコードをJavaScriptとHTMLに変換することは可能です。以下に、指定されたVBAコードに相当する機能を持つJavaScriptとHTMLのコードを示します。このコードは、ユーザーがHTMLページ上の特定のフィールドに数字を入力すると、その数字の九九の表を生成します。

```html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>九九の表</title>
<script>
document.addEventListener('DOMContentLoaded', function() {
var input = document.getElementById('inputNumber');
var result = document.getElementById('result');

input.addEventListener('input', function() {
var n = parseInt(input.value, 10);
result.innerHTML = '';

if (!isNaN(n) && n >= 1 && n <= 9) {
for (var i = 1; i <= 9; i++) {
var ans = n * i;
result.innerHTML += n + " × " + i + " = " + ans + "<br>";
}
} else {
alert("1~9の数字を入力して下さい");
}
});
});
</script>
</head>
<body>
<p>数字を入力(1~9):</p>
<input type="number" id="inputNumber" min="1" max="9">
<div id="result"></div>
</body>
</html>
```

このHTMLファイルをブラウザで開くと、ユーザーは数字を入力するフィールドを見ることができます。1から9までの数字を入力すると、その数字の九九の表が下に表示されます。範囲外の数字や数字でない値を入力した場合、アラートが表示されます。

このコードは、VBAイベントハンドラーに相当する機能をJavaScriptで実装しており、HTMLはユーザーインターフェースを提供します。VBAの `Worksheet_Change` イベントに対応するために、HTMLの `input` イベ

 

HTMLを実行してみたら、おおかた想定通りの動きをしました。

 

↓実行画面

f:id:cAmErA:20240422143325j:image

 

すごいっすねぇ〜。

プログラミングの勉強しても、AIには追いつけないかもしれないですねぇ…。