62歳パソコン教師の日記 NO.075 (2000.3.10)


一昨日の「WSH]に対し、かなりの反響がありました。実は、No.55 の [スタンバイショートカット] も「WSH」なのです。 [HTML] とは違って、[VBScript] を記述して作成すると、プログラマーになった気分がしますね。

その、No.73 の記述に間違いがありました。 お詫びして訂正いたします。スクリプトの中の下記の部分の [Case 2] の [2] が欠落していました。

Case 2
objIE.Navigate2 "http://www.yahoo.co.jp/"

作成したスクリプトを私の2台目のパソコンで実行したところ、日本語が文字化けしました。また、インプットボックスを空欄にして [OK] ボタンをクリックすると、[実効エラー] が表示されてしまいます。

マイクロソフトに電話で問い合わせて1時間も話したのですが、マイクロソフトでも原因が解りませんでした。このような質問は初めてだそうです。同じような現象が起きた方がいらっしゃいましたら、ご連絡頂きたいと思っています。原因を解明してマイクロソフトに教えるなんて痛快ですね。

今日も「WSH」で簡単なプログラムを作ってみましょう。下記のスクリプトを [メモ帳] に貼り付けて、拡張子.vbs を付けて保存して下さい。

これは、10進数を16進数に変換するものです。[ペイント] で [色] →[色の編集] とクリック、→[色の編集] で [色の作成] ボタンをクリック →出来た色の三原色の各色が10進数で右端に表示されます。これを16進数に変換すればホームページで使うのに便利ですよ。



Dim myDec, myHex

Do
myDec = InputBox("10進数を入力してください。")
If myDec = "" Then WScript.Quit

myHex = Hex(myDec)

WScript.Echo "10進数 => " & myDec & vbCR & vbCR &_
"16進数 => " & myHex
Loop



使い方は、ダブルクリックで起動して、入力欄に10進数の数値を入力して [OK] ボタンをクリックすると、→16進数が表示されます。

では、上記のスクリプトの説明をしましょう。

[Dim] 変数を宣言するステートメントです。
[myDec] 変数です。 他の名でも構いませんが、アルファベットを使う。ピリオドは使用出来ない。などの決まりがあります。
"Dec" は "decimal"(十進数)の意味です。
[InputBox] ダイアログボックスにメッセージを表示します。
テキストボックスを表示します。
[OK]、[キャンセル] ボタンを表示、[OK] がクリックされた場合は、テキストボックスに入力された内容を返します。
[If〜Then] 条件分岐のステートメントです。
「もし、テキストボックスに何も入力されなかったら("の間に何も入力されていない")、プログラムを終了する [quit] ということです。
この "If〜Then" 文を記述しておかないとエラーになります。
[Hex] 10進数を16進数に変換する「関数」です。
[Echo] 引数として指定した値を表示します。
[& vbCR & vbCR &_] [Echo] で表示される文字の改行です。
[Do〜Loop] 何度でも繰り返します。