はじめに
VBScriptを使う機会が来そうなのですが、以前少し触ったきりで記憶が完全に飛んでしまっていました。
「何から始めればいいんだっけ…」と思い、今回はAI(Gemini)をメンター役にして、対話形式で基礎から学び直してみました。
この記事では、実際にGeminiとどんなやり取りをして、どんな問題を解いたのかをまとめます。
なぜ今、VBScriptなのか
VBScriptは今やレガシーな技術と思われがちですが、Windows環境であれば 「メモ帳ひとつで、環境構築なしですぐ動かせる」 という圧倒的な手軽さがあります。
特に業務効率化のためのVBA(Excelマクロ)とも文法が近いため、事務作業の自動化やテスト工程の補助ツール作成には今でも非常に有用です。
コードは正しいのに動かない?
Geminiに教わりながら、まずは基本のメッセージボックスを出す1行を書きました。
MsgBox "こんにちは!初めてのプログラミングです"
これを .vbs 形式で保存して実行したところ、まさかのコンパイルエラー。
コードは正しいと思うけど…とGeminiに相談したところ、VBScript特有の仕様が原因でした。
解決策
現代のメモ帳は「UTF-8」で保存されますが、VBScriptで日本語(全角文字)を扱う場合は 「ANSI」 形式で保存し直す必要があります。
[ファイル] > [名前を付けて保存] > [エンコード] を ANSI に変更。これで無事に動作しました!
基礎知識のインプット
いきなり演習に入る前に、まずはプログラミングの基礎である「変数」「入力」「条件分岐」を、Geminiといっしょにサクッとおさらいしました。
1. 変数(データを一時的に保存する箱)
まずは「箱を用意して中身を入れる」という概念の確認です。
Dim myName
myName = "yamada"
MsgBox "ようこそ、" & myName & "さん"
Geminiから「"yamada"の部分を自分の名前に書き換えて実行してみましょう」と促され、自分で変更することで変数の役割(代入と結合)を直感的に理解できました。
2. 入力(InputBoxでユーザーと対話する)
次は、一方的に表示するだけでなくユーザーに文字を入力させる機能です。
Dim userName
userName = InputBox("あなたのお名前を教えてください")
MsgBox userName & "さん、初めまして!"
ここで「何も入力せずにOKを押すとどうなるか試してみて」とアドバイスを受けました。
実際に試すと空っぽの挨拶が表示され、プログラムは「書かれた通りにしか動かない(入力がない場合の処理も必要になる)」ということを教わりました。
3. 条件分岐(If文で動きを変える)
最後は、入力された値によって処理を変える簡単なパスワード判定プログラムです。
Dim pass
pass = InputBox("パスワードを入力してください(正解は 1234 です)")
If pass = "1234" Then
MsgBox "正解!ログイン成功です"
Else
MsgBox "違います。出直してきてください!"
End If
こうして1つずつ機能を確認し、「なるほど、こうやって処理を組み立てるのか」と腹落ちしたところで、いよいよ実践演習へ進みます。
実践!AIメンターによるステップアップ演習
ここからは、Geminiに「〇〇を作ってください」という形式で演習問題を出題してもらいました。
単に問題を解くだけでなく、「回答 → 添削 → より良い書き方の提案」 というサイクルで進みます。
演習1:基礎固め(年齢確認システム)
お題: 年齢を入力させ、20以上なら許可、未満なら不可と表示する。
回答
Dim userAge
userAge = InputBox("あなたの年齢を入力してください")
If userAge >= 20 Then
MsgBox "お酒・たばこの購入が可能です"
Else
MsgBox "未成年には販売できません"
End If
まずは基本通りにクリア。先にGeminiとおさらいをしていたことでサクサクと解くことができました。
演習2:計算と最適化(消費税計算機)
お題: 税抜価格を入力し、1.1倍(10%)した価格を表示する。
回答
Dim excludingTax
Dim taxIncluded
excludingTax = InputBox("税抜価格を入力してください")
taxIncluded = excludingTax * 1.1
MsgBox "税込価格は " & taxIncluded & " 円です"
最後のメッセージボックスで表示する文を「数字だけ出すのではなく、ユーザーに分かりやすく伝えていますね」と褒めてくれました!
演習3:文字列判定(首都クイズ)
お題: 自由入力でクイズを出し、正解判定を行う。
回答
Dim quiz
quiz = InputBox("日本の首都はどこですか?")
If quiz = "東京" Then
MsgBox "正解です!おめでとう!"
Else
MsgBox "残念、不正解です…"
End If
ここでは文字列を "" で囲むルールを再確認。
一歩ずつ「仕様通りに動くもの」を積み上げていく感覚があり楽しかったです。
感想
実際に学んでみた感想としては、「非常に分かりやすく、感覚で書ける」 ということです。
特に以下の点がAI学習のメリットだと感じました。
- エラーの即時解決: 文字コードのように、初心者では調べにくいエラーも即座に指摘してくれる
- ちょうど良い難易度: 自分の理解度に合わせて「次はこれを作ってみましょう」とステップアップさせてくれる
- 対話型コードレビュー: 正解を出して終わりではなく、「もっとこう書くと良い」というプラスアルファの教えがある
まだ基礎の基礎ですが、次は「繰り返し処理(For文)」など業務に直結するものにもステップアップしていきたいと思います。
おわりに
VBScriptは古い言語ではありますが、プログラミングの基本思想(変数、分岐、ループ)を学ぶには最高の教材でした。
これからプログラミングを始める方や、「やっていたけど忘れてしまった」という方は、ぜひAIをメンターにして学習してみてください。